Pinout DIL8 (top view) ---------------------- ATTINY85 ------ /RESET o|1 8|o VCC AUDIO_NEG PB3/ADC3 o|2 7|o PB2 WS28XX_OUT AUDIO_POS PB4/ADC2 o|3 6|o PB1 unused (internal pullup activated) GND o|4 5|o PB0 UART_OUT ------ Fuses ----- L: F1 H: DC E: FF Architektur ----------- Systemtakt: ~16 MHz [int. Oszillator + int. PLL] Samplefrequenz: 38,5 kHz [Systemtakt/(32*13)] Sampleformat: 8 Bit [signed] Die Signalverarbeitung erfolgt dann durchgängig mit mindestens 16 Bit Genauigkeit. Goertzel-Bins im Oktavabstand, native Bandbreite 1/3 der jeweiligen Mittenfrequenz. Alle Bins außer den beiden mit der höchsten Mittenfrequenz arbeiten mit einer verringerten Samplefrequenz. Die Samples werden dafür pro Oktave jeweils über einen Halbbandfilter (Butterworth Tiefpass 3. Ordnung) gefiltert und dann 2:1 reduziert. Alle Bins bekommen ihren Input gefiltert über eine Hamming- Fensterfunktion, um die Nebenmaxima zu unterdrücken. Die tatsächliche Bandbreite der Bins steigt dadurch auf ca. 1/2 der jeweiligen Mittenfrequenz. Nur die Bins bis herunter zu 50Hz Mittenfrequenz werden mit voller Ausgabe-Framerate gemessen. Der 25Hz-Bin wird nur in jedem 2. Frame aktualisiert, der 12,5Hz-Bin (sofern im Layout vorhanden) nur in jedem 4. Frame. LED-Display ----------- Display-Refreshrate: 16,7 Hz [Systemtakt/(32*13*9*256)] UART-Ausgabe ------------ Bitrate: 4,8 kbps [Systemtakt/(16*208)] Wortformat: 8N2 [Empfänger sollte 8N1 verwenden] Messageframe: 60 ms [entspricht exakt einem Display-Frame] Messagestartlücke: >32 ms Flankenjitter: <1 µs Nach der Lücke startet die Ausgabe mit dem Bin mit der geringsten Mittenfrequenz (12,5 bzw. 25 Hz, je nach gewähltem Layout), gefolgt von den restlichen Bins in aufsteigender Reihenfolge ihrer Mittenfrequenzen. Die UART-Ausgabe ist außer bezüglich der Zahl der Bins vom LED-Layout vollkommen unabhängig, es werden also auch bei Layouts mit nur 7 LEDs immer 8 Bit geliefert. Sie ist auch vollkommen unbhängig von sämtlichen "Behaviour"-Einstellungen, es werden immer nur die Rohdaten der Signalverarbeitung gesendet. "RS232"-Levels sind nicht wirklich solche. Es werden einfach nur invertierte CMOS-Level ausgegeben. Resourcennutzung ---------------- Die Resourcennutzung variiert etwas, abhängig vom gewählten Layout. Flash: 64..79% SRAM: 71..76% MCU: 94..95%