Forum: Mikrocontroller und Digitale Elektronik Kopfhörer oder Cinch an AT91SAM7P256


von Peter P. (uncle-sam7)


Lesenswert?

Hallo NG,

ich würde gerne ein mit 256 Stufen aufgelöstes Signal an einem 
Kopfhörer- oder Cinchanschluss ausgeben (AT91SAM7P256). Also sozusagen 
den Wert eines Bytes auf die Membrane eines Lautsprechers übertragen :-)

Kann mir jemand einen Tip geben, wie man sowas macht. Das Programmieren 
von dem Teil funktioniert ja schon ganz gut. Allerdings hab ich von der 
Elektronik wenig Ahnung.

Kann man vielleicht 8 Pins nehmen, die jeweils verschiedene Spannungen 
im Low-Zustand zu einer zusammen addieren?

Ist die Ansteuerung von einem externen DAC schwierig? Was nimmt man da 
typischerweise?

Muss jetzt nicht eine High-End-Lösung sein. Hauptsache ich kann was 
hören...

MfG
Peter

von -.- (Gast)


Lesenswert?

Ohne viel Worte mal als Denkansatz ;)

http://www.avr-asm-tutorial.net/avr_de/avr_dac.html

von Rooney B. (rooney)


Lesenswert?

Hallo Peter!

Einen DAC anzusteuern ist sicherlich keine Schwierigkeit, sofern du 
überhaupt Erfahrung mit Mikrocontrollern hast...

Die gibt's mit unterschiedlichen Schnittstellen, SPI ist wohl die 
einfachste Möglichkeit. Schau mal bei ti.com rein, vielleicht findest du 
was brauchbares.

Mit einer Gleichspannung wirst am Lautsprecher nicht viel hören, schon 
gar nicht mit 3.3V mit dem der AT91SAM7 versorgt wird.
Erzeuge einen Sinus und je nach Bytewert den du ausgeben möchtest 
veränderst du die Frequenz von deinem Sinus.
Ein Verstärker wäre natürlich auch sinnvoll, soferns nicht nur ein 
Kopfhörer sein sollte.

von Peter P. (uncle-sam7)


Lesenswert?

Hallo,

also der Denkansatz aus
http://www.avr-asm-tutorial.net/avr_de/avr_dac.html
gefällt mir schon mal sehr gut. Hab ich das richtig verstanden, dass ich 
bei dem Beispiel mit den vielen Widerständen dann nur 7 Bit Auflösung 
habe?

Wie sieht es eigentlich mit einer gefilterten PWM aus?
Kann man sowas auch für Sound hernehmen?

- Oder/und geht da keine Auflösung von 8 Bit / 44 KHz?
- Oder/und ist das Ergebnis zu ungenau?
- Oder/und wird da zuviel Rechenzeit verbraten?

MfG
Peter

von ... (Gast)


Lesenswert?

Peter Pippinger schrieb:
> Wie sieht es eigentlich mit einer gefilterten PWM aus?
> Kann man sowas auch für Sound hernehmen?
Bei PWM braucht es dann eine gute Tiefpassfilterung.
PWM nur im Notfall...

Für den R/2R-Wandler:

Wenn man die Widerstände mit einem 4-stelligen Multimeter auf
gleiche letzte Stelle selektiert, sinkt der Fehler drastisch.
Bei z.B. 4,7 kOhm erreicht man damit leicht 0.02 % Fehler.

> - Oder/und geht da keine Auflösung von 8 Bit / 44 KHz?
Mit so selektierten Widerständen machen auch 12 Bit Sinn.
Die Widerstände sollte man dann aber mit einem Buffer schalten
(z.B. HCT541)
Die 44 kHz werden nicht vom Wandler vorgegeben.
Widerstände von 100 kOhm sind aber zu gross (Tiefpass).

> - Oder/und ist das Ergebnis zu ungenau?
Nö. Wem die Ausmesserei zu frickelig ist, kann auch fertige DAs nehmen.

> - Oder/und wird da zuviel Rechenzeit verbraten?
Eine in einem Timer laufende Ausgabe verbrät keine (nennenswerte)
Rechenzeit.

von Peter P. (uncle-sam7)


Lesenswert?

Hallo NG,

nochmal zurück zu dem R/2R-Netzwerk:

Die Version möchte ich gerne umsetzen. Allerdings habe ich nochmal ´ne 
Frage. Ich will eigentlich am Ende einen Audio-Verstärker mit 
Cinch-Eingang anschließen. Gelesen habe ich, dass bei Audio via Cinch 
ca. 0,7 V maximale Spannung anliegen. Brauche ich denn dann überhaupt 
noch den Verstärker-Chip am Ende? Oder reicht es, bei richtig 
dimensionierten Widerständen am Ende eine Cinchbuchse anzuschließen?

Nachdem der MC ja meines Wissens 3,3 V an den Ausgängen bereitstellt, 
müsste es doch möglich sein, das analoge Signal ohne Verstärker und nur 
durch die Widerstände zu erzeugen, oder? Wenn dem wirklich so wäre, wie 
könnte ich denn dann die Dimensionierung der Widerstände berechnen? Sehe 
ich das richtig, dass 3,3 V durch einen Widerstand auf 0,7 V reduziert 
werden müssten und die Summe aller Widerstände sollte dann die 3,3 V auf 
nahe 0 V reduzieren?

Also tut mir echt leid, wenn sich das alles ultra leihenhaft anhört, 
aber mich interessiert das einfach sehr.

Viele Grüße,
Peter

von Peter P. (uncle-sam7)


Lesenswert?

Hallo,

habe jetzt folgendes Berechnungsprogramm gefunden:
http://www.brischalle.de/JDAC/DAC_R2R_network_calculation.html

Was muss ich da eingeben, wenn ich die oben genannte Konstellation 
erzeugen will? AT91SAM7P256 -> R/2R-Netzwerk -> Cinch -> Stereoanlage 
(wenngleich auch nur auf einem Kanal ;-)

8 Bit, 0,7 V - aber wieviel ist die Ausgangslast bei Cinch-Audio? Ist 
das nicht genormt?

MfG
Peter

von Peter P. (uncle-sam7)


Lesenswert?

Hallo...

ich schon wieder. Ich wollte noch zu meinem Verständnis folgende Frage 
stellen:

Wenn der CA3140 Probleme im "oberen Bereich" hat, warum muss man dann 
das 8te Bit streichen? Wäre es sinnvoller, wenn mann die Widerstände im 
R2R-Netzwerk größer dimensioniert, so dass nicht soviel zum Verstärker 
kommt?

MfG
Peter

von HildeK (Gast)


Lesenswert?

Peter Pippinger schrieb:
> 8 Bit, 0,7 V - aber wieviel ist die Ausgangslast bei Cinch-Audio? Ist
> das nicht genormt?

Nein, ein fester Wert ist nicht definiert. Die Eingangswiderstände 
werden im Bereich 5kΩ ... 50kΩ liegen, je nach angeschlossenem Gerät. 
Schon deshalb empfiehlt sich ein Buffer.

Peter Pippinger schrieb:
> Wenn der CA3140 Probleme im "oberen Bereich" hat, warum muss man dann
> das 8te Bit streichen?
Muss man nicht. Wenn du das obere Bit streichst (dauerhaft auf Null 
lässt), dann kommt er nur noch auf den halben Pegel mit schlechterer 
Auflösung, d.h. noch mehr Rauschen. Dafür kann er aber den ganzen 
Bereich ohne Begrenzung darstellen.

>Wäre es sinnvoller, wenn mann die Widerstände im
> R2R-Netzwerk größer dimensioniert, so dass nicht soviel zum Verstärker
> kommt?
Jein. Du kannst einen Lastwiderstand zuschalten - siehe die Berechnung 
mit JDAC. Dann reduziert sich der Ausgangspegel, die Auflösung bleibt 
aber weitgehend. Aber das Problem existiert auch an der unteren 
Eingangsgrenze, denn der CA3140 kommt am Ausgang weder vollständig an 
die obere noch an die untere Rail.

Alternativen:
* Rail-to-Rail OPA verwenden.
* den OPA mit ±10V versorgen

Übrigens, Audio und 8Bit Auflösung: du wirst eine Menge Rauschen hören, 
Größenordnung 'alter, einfacher Cassettenrecorder'.

Auch der Wert deiner HIGH- und LOW-Spannungen jedes einzelnen Bits wird 
auf das Ausgangssignal Einfluss haben.
Auch deshalb
... schrieb:
> Die Widerstände sollte man dann aber mit einem Buffer schalten
> (z.B. HCT541)

von Peter P. (uncle-sam7)


Lesenswert?

Hallo HildeK,

danke für die ausführliche Antwort.
Das mit den 8 Bit ist denke ich doch echt zu wenig. 7 Bit für Audio kann 
ich auch nicht verstehen.

Habt Ihr vielleicht eine Empfehlung für einen DAC an SPI.
Habe diesen mal kurz überflogen: TLV320AIC23.

Was nimmt man den heutzutage für sowas? Wo kann ich einen DAC als 
Privatperson kaufen?

Von mir aus muss es auch kein SPI sein. Könnte auch 16 Leitungen "frei 
machen" und die Daten direkt ausgeben...

Es sollte halt nur bezahlbar sein, nicht vollkommen schlecht klingen und 
einfach aufzubauen sein.

MfG
Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.