14.01.2019, 10:23 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 14.01.2019, 10:56 PM von voltwide.)
Dazu einige Erläuterungen
Ziel
war ein kleines, simples Gerät zum schnellen Durchchecken von Audio-Verstärkern, Lautsprechern usw. So etwas was man in den Servicekoffer wirft. Auf besondere Verzerrungsarmut wird dabei kein Wert gelegt, wichtig ist vielmehr ein möglichst stromsparender Betrieb für eine lange Batterie-Lebensdauer. Hier spielt der Attiny seine Stärken aus: Bei einem erlaubten Betriebsspannungsbereich von 2,7~5,5V kann man auf eine Vielzahl von Batterietypen zurückgreifen ohne den sonst obligatorischen on-board-Spannungsregler. Am geeignetsten erscheinen da Li-ThionylChlorid Batterien. Bei einer nahezu waagerechten Entladekurve um 3,6V sind im Gehäuse 1/2 AA immerhin 1200mAh zu haben - und das wären beim aktuellen Stromverbrauch um 2mA an die 600 Betriebsstunden mit einer Batterie.
Die Tonerzeugung (DDS)
erfolgt in software hier nach dem DDS-Verfahren, d.h. die Momentanwerte der Ausgangsspannung werden aus einer abgespeicherten Kurvenformtabelle zyklisch ausgegeben. Die jeweilige Frequenz ergibt sich allein aus der Sprungweite des Adresspointers. Wie beim Class-D-amp wird ein "digitales" PWM-Signal ausgegeben. Dies durchläuft ein Tiefpassfilter zur Rekonstruktion der analogen Kurvenform - damit entfällt der Digital-Analog-Wandler. Es wurde die max mögliche PWM-Abtastrate von 16kHz gewählt und dazu passend die höchste Audio-Frequenz auf 1kHz begrenzt. In Verbindung mit dem LC-Ausgangsfilter ist die Signalrekonstruktion recht brauchbar.
Wenn schon nicht mehr als 1kHz drin liegen, möchte man aber wenigstens ein paar tiefere Frequenzen zur Auswahl haben. Das stellt technisch nun kein Problem dar, es stehen die Subharmonischen im Oktavabstand zur Verfügung bis hinab auf 15Hz. Die Auswahl erfolgt mit dem FrequenzPotentiometer dessen Stellung mit Hilfe des internen AD-Wandler abgefragt und digitalisiert wird auf die zur Verfügung stehenden Festfrequenzen.
Der Totmannschalter (watchdog timer)
Vergißt man einmal das Gerät nach Gebrauch ab zu schalten, fährt es nach einer vorgegeben Zeit von selbst herunter. Eingestellt sind derzeit ca 30Minuten. Dieser Wert ist per Programm noch in einem größeren Bereich modifizierbar. Nach dem shutdown muß man zur Wiederbelebung aus- und wieder einschalten. Hierbei ist zu beachten, dass vor dem Einschalten die beiden 100uF Stützelkos entladen sein müssen - andernfalls kommt der erforderliche Reset nicht zustande und der uP bleibt hängen. Bei einem auf <1uA gefallenen Betriebsstrom würde das schon einige Zeit dauern, und deshalb schließt der Einschalter im Aus-Zustand die Betriebsspannung kurz!
Wo hingegen Dauerbetrieb gefordert wird, läßt sich der watchdog timer auch sperren: Ausgelegt für Batteriespannungen < 4V wird er abgeschaltet bei 4-5,5V Betriebsspannung, so dass man mit einer USB-Speisung dieses Problem gar nicht hat. Für Batteriebetrieb hingegen braucht man nur den unteren Teilerwiderstand (R22) am ADC-Eingang (pin2) zu entfernen und gaukelt damit eine hinreichend große Betriebsspannung vor.
Program flashen
erfolgt über das SPI interface. Die SPI-Ports sind bei insgesamt 8pins natürlich nicht frei, aber so beschaltet dass die Programmierung im eingebauten Zustand funktioniert. Die Versorgung kann hierbei sowohl von der Batterie als auch über das Interface erfolgen (jumper stecken). Nach dem FlashVorgang startet das Programm automatisch.
Verzerrungsmessungen am Prototypen mit ARTA:
15Hz/0.48%
30Hz/0.33%
60Hz/0.31%
125Hz/0.52%
250Hz/0.6%
500Hz/0.92%
1000Hz/0.63%
Ziel
war ein kleines, simples Gerät zum schnellen Durchchecken von Audio-Verstärkern, Lautsprechern usw. So etwas was man in den Servicekoffer wirft. Auf besondere Verzerrungsarmut wird dabei kein Wert gelegt, wichtig ist vielmehr ein möglichst stromsparender Betrieb für eine lange Batterie-Lebensdauer. Hier spielt der Attiny seine Stärken aus: Bei einem erlaubten Betriebsspannungsbereich von 2,7~5,5V kann man auf eine Vielzahl von Batterietypen zurückgreifen ohne den sonst obligatorischen on-board-Spannungsregler. Am geeignetsten erscheinen da Li-ThionylChlorid Batterien. Bei einer nahezu waagerechten Entladekurve um 3,6V sind im Gehäuse 1/2 AA immerhin 1200mAh zu haben - und das wären beim aktuellen Stromverbrauch um 2mA an die 600 Betriebsstunden mit einer Batterie.
Die Tonerzeugung (DDS)
erfolgt in software hier nach dem DDS-Verfahren, d.h. die Momentanwerte der Ausgangsspannung werden aus einer abgespeicherten Kurvenformtabelle zyklisch ausgegeben. Die jeweilige Frequenz ergibt sich allein aus der Sprungweite des Adresspointers. Wie beim Class-D-amp wird ein "digitales" PWM-Signal ausgegeben. Dies durchläuft ein Tiefpassfilter zur Rekonstruktion der analogen Kurvenform - damit entfällt der Digital-Analog-Wandler. Es wurde die max mögliche PWM-Abtastrate von 16kHz gewählt und dazu passend die höchste Audio-Frequenz auf 1kHz begrenzt. In Verbindung mit dem LC-Ausgangsfilter ist die Signalrekonstruktion recht brauchbar.
Wenn schon nicht mehr als 1kHz drin liegen, möchte man aber wenigstens ein paar tiefere Frequenzen zur Auswahl haben. Das stellt technisch nun kein Problem dar, es stehen die Subharmonischen im Oktavabstand zur Verfügung bis hinab auf 15Hz. Die Auswahl erfolgt mit dem FrequenzPotentiometer dessen Stellung mit Hilfe des internen AD-Wandler abgefragt und digitalisiert wird auf die zur Verfügung stehenden Festfrequenzen.
Der Totmannschalter (watchdog timer)
Vergißt man einmal das Gerät nach Gebrauch ab zu schalten, fährt es nach einer vorgegeben Zeit von selbst herunter. Eingestellt sind derzeit ca 30Minuten. Dieser Wert ist per Programm noch in einem größeren Bereich modifizierbar. Nach dem shutdown muß man zur Wiederbelebung aus- und wieder einschalten. Hierbei ist zu beachten, dass vor dem Einschalten die beiden 100uF Stützelkos entladen sein müssen - andernfalls kommt der erforderliche Reset nicht zustande und der uP bleibt hängen. Bei einem auf <1uA gefallenen Betriebsstrom würde das schon einige Zeit dauern, und deshalb schließt der Einschalter im Aus-Zustand die Betriebsspannung kurz!
Wo hingegen Dauerbetrieb gefordert wird, läßt sich der watchdog timer auch sperren: Ausgelegt für Batteriespannungen < 4V wird er abgeschaltet bei 4-5,5V Betriebsspannung, so dass man mit einer USB-Speisung dieses Problem gar nicht hat. Für Batteriebetrieb hingegen braucht man nur den unteren Teilerwiderstand (R22) am ADC-Eingang (pin2) zu entfernen und gaukelt damit eine hinreichend große Betriebsspannung vor.
Program flashen
erfolgt über das SPI interface. Die SPI-Ports sind bei insgesamt 8pins natürlich nicht frei, aber so beschaltet dass die Programmierung im eingebauten Zustand funktioniert. Die Versorgung kann hierbei sowohl von der Batterie als auch über das Interface erfolgen (jumper stecken). Nach dem FlashVorgang startet das Programm automatisch.
Verzerrungsmessungen am Prototypen mit ARTA:
15Hz/0.48%
30Hz/0.33%
60Hz/0.31%
125Hz/0.52%
250Hz/0.6%
500Hz/0.92%
1000Hz/0.63%
...mit der Lizenz zum Löten!