Home Navigationspfeil Elektronik Navigationspfeil Lautsprecher am Microkontroller

Lautsprecher am ATMEL AVR

Tonerzeugung mit den Mikrocontrollern von ATMEL kann auf verschiedene Art und Weise durchgeführt werden. Aber bei jeder angewendeten Variante wird eine Treiberstufe für den Lautsprecher benötigt. Hier habe ich mal meine Erfahrungen in einer kurzen Anleitung zusammengefasst. Das Dokument umfasst zudem Hintergrundinformationen zum Sound-Befehl des Bascom AVR Compilers. Als zusätzliches kleines Schmakerl habe ich ein kleines Werkzeug geschrieben mit dem die benötigten Parameter für den Bascom AVR Sound-Befehl berechnet werden können.
Wenn es auch etwas aufwändiger sein darf kann auch der Audioverstärker mit LM386 als Treiberstufe verwendet werden.

Berechnung der Ausgangsstufe

 In der nebenstehenden Schaltung ist der Anschluss eines einfachen Lautsprechers an einen ATMEL AVR Mikrocontroller dargestellt, im folgenden möchte ich beschreiben welche Berechnungen für die Dimensionierung einer solchen Schaltung durchgeführt werden müssen.

Gegebene Werte

Berechnung der Widerstände R2 und R3

Der Kollektorwiderstand besteht aus dem Widerstand R2||R3 plus dem Widerstand des Lautsprechers. Da der Widerstandswert des Lautsprechers feststeht können nur die Werte von R2||R3 verändert werden, um diese nun zu berechnen hilft ein Blick in das Datenblatt des Transistors BC547, oder des Transistors der verwendet werden soll. In diesem Fall können wir dem Datenblatt entnehmen das der maximale Strom für IC mit 100 mA angegeben ist (siehe auch Gegebene Werte). Somit ergibt sich für die Berechnung des Widerstands R2||R3 die folgende Formel (Ohm'sches Gesetz)

`R = U / I`

`R_2 || R_3 = {+UB} /{ I_C} = {5 V} / {100mA} = 50 Omega`

Wie bereits erwähnt besteht der Kollektorwiderstand aus R_2 || R_3 und dem Widerstand des Lautsprechers, also muss vom errechneten Widerstandswert für R_2 || R_3 dieser Wert abgezogen werden, wir erhalten also

`R_2 || R_3 = R_2 || R_3 - R_{"Lautsprecher"} = 50Omega - 8Omega = 42Omega`

Dieser Wert findet sich nur in der Widerstandsreihe E48 (iii) und die hat sicherlich nicht jeder griffbereit, aus diesem Grund habe ich eine Parallelschaltung für diesen Wert verwendet. Der Gesamtwert der Parallelschaltung von zwei Widerständen berechnet sich nach der folgen Formel

`R_{"ges"} = {R_1 * R_2} / {R_1 + R_2} ` da der Gesamtwiderstand bekannt ist benötigen wir noch einen zweiten Wert um die Formel aufzulösen. Wir erinnern uns „Rges einer Parallelschaltung von zwei Widerständen ist immer kleiner als der kleinste Einzelwiderstand“. Die Wahl des 75 Ohm Widerstands war eine willkürliche Entscheidung, da ich diesen Wert halt zur Hand hatte. Die Formel wird also nach R3 umgestellt und wir erhalten

`R_3 = {R_2 * R_{"ges"}} / {R_2 - R_{"ges"}} = {75Omega * 42Omega} / {75Omega + 42Omega} = 95,45Omega ~~ 100Omega`

Rechnen wir jetzt zur Probe noch einmal Rges aus

`R_"ges" = {R_1 * R_2} / {R_1 + R_2} = {75Omega * 100Omega} / {75Omega + 100Omega} = 42,86Omega`

und wir sehen, das Rges mit den gewählten Werten für R2 und R3 sehr nahe am gewünschten Wert von 42 Ohm liegt.

Der tatsächliche KollektorStrom IC

Nun berechnen wir den tatsächlich Kollektorstrom IC mit dem zuvor ermittelten Widerstand von R2||R3

`I_c = U / R_"ges" = {5 "Volt"} / {42,86Omega + 8Omega} = 98 "mA"`

der Wert geht in Ordnung und stresst den Transistor nicht übermäßig. Zur Sicherheit berechnen wir auch noch die Verlustleistung die der Transistor verkraften muss, die Leistung errechnet sich mit `P = U * I` im Datenblatt zum BC547 ist eine maximale Verlustleistung Ptot = 500mW angegeben, diese sollte natürlich nicht überschritten werden um den Transistor vor Beschädigung zu schützen. Setzen wir unsere Werte in die Formel ein so erhalten wir, `P = 5 "Volt" * 98 "mA" ~~ 490 "mW"` also auch hier alles im erlaubten Rahmen.

Basisstrom und Basisvorwiderstand

Im Datenblatt zum BC547 findet sich in der Kennlinie für VCEsat (iv) ein Wert für B von 20 in Sättigung, dieser Wert wird für die Berechnung des Basisstrom benötigt, es ergibt sich somit die folgende Berechnungsformel `I_B = I_c / B = {98 "mA"} / 20 = 0,49 mA`.

Hinweis: Findet sich keine Angabe zur Verstärkung (B) in Sättigung ist es kein Fehler generell mit einem Wert von 20 bis 30 zu rechnen.

Als nächstes muss die Höhe der Eingangsspannung ermittelt werden. Dazu ziehen wir zuerst das Datenblatt zum BC547 zu rate. Dort ist der Spannungsabfall der BE-Strecke in Sättigung UBEsat von VBEsat = 900 mV angegeben.
Die Ausgangsspannung des Mikrocontroller liegt typisch bei etwa 5 Volt von dieser Spannung werden sicherheitshalber noch ca. 5% abgezogen. Somit ergibt sich für die Eingangsspannung der Treiberstufe der folgende Spannungswert `U_"Eingang" = 5 V - (5"%" + U_"BEstat") = 5 V - (0,25 V + 900 "mV") = 3,85 V`

Wir möchten den Ausgang des Mikrocontrollers mit 2 mA belasten somit ergibt sich für den Basisvorwiderstand die folgende Berechnung

`R_"vor" = U_"BE" / (2 "mA" - I_B) = {900 "mV"} / (2 "mA" - 0,49 "mA") = 596,02Omega ~~ 596Omega`

Ich habe für den Basisvorwiderstand eine Parallelschaltung aus zwei 1K2 Widerständen verwendet, also `~~ 600Omega`, damit steuert der BC547 sicher durch.

Die mit dieser Treiberstufe erzeugte Lautstärke der Tonausgabe ist, nach meiner Meinung, für einen einfachen Signalgeber durchaus ausreichend. Wird mehr Leistung benötigt so kann ein Audioverstärker IC wie z.B. der Schaltkreis TD7052 mit einer Leistung von 1 Watt, oder eine Halbbrücke anstelle der hier beschriebenen Treiberstufe verwendet werden.

Im zweiten Teil befassen wir uns dann mit dem Sound->Befehl von Bascom AVR.

i Datenblatt zum BC547, Diotec
ii Datenblatt zum BC547, MOTOROLA,Dokumentnummer: BC546/D; REV 1, 1996
iii Wikipedia – E-Reihe
iv Datenblatt zum BC547, PHILIPS,Dokumentnummer: BC847_BC547_SER_7, 10.12.2008

Da die dargestellten Schaltungen und Programme nur dem Grundverständnis dienen sollen, kann ich für die Funktion keine Gewähr übernehmen.
Wie üblich kann ich für Schäden die durch die Verwendung der hier veröffentlichten Schaltungen und Programme entstehen keine Haftung übernehmen.

Alle genannten und durch Dritte geschützten Marken- und Warenzeichen unterliegen uneingeschränkt den Bestimmungen des jeweils gültigen Kennzeichenrechts und den Besitzrechten der jeweiligen eingetragenen Eigentümer. Allein aufgrund der bloßen Nennung ist nicht der Schluss zu ziehen, dass Markenzeichen nicht durch Rechte Dritter geschützt sind!