Spectrum analyzer PGA2311 hangerőszabályozó távirányító vezérléssel
A projekt hangerőszabályozónak indult, de hogy legyen valami extra a kijelzőn, kapott bele egy spektrum analizátort is.
A távirányító vevő
Egy univerzális távirányítóra készítettem el a NEC IR szabvány dekódolását. A vivő frequencia 38kHz. A kód felépítése jól látható az alábbi ábrán:
A logikai ‘0’ 562.5µs magas szint majd 562.5µs alacsonyszint, azaz összesen 1.125ms A logikai ‘1’ 562.5µs magas szint majd 1.6875ms alacsonyszint, azaz összesen 2.255ms A következő részekből áll a kód:
- 9ms start kód
- 4,5ms szünet
- 8bit cím
- 8bit inverz cím
- 8bit adat
- 8bit inverz adat
Folyamatos nyomva tartás mellett ismétlődő impulzusok jönnek 108ms-onként.
- 9ms start kód
- 2,25ms szünet
- 562.5µs magas állapot
A mikrokontrollerben az Input Capture modul dekódolja a jelsorozatot ami egy TSOP1736 infra vevőről érkezik. A lefutó élek közötti eltelt időt méri. A távirányító jelei fixen vannak beleprogramozva. Új távirányítónál a 32bit kiküldése után Mplab-ban egy breakpontot kell tenni a programban debuger módban, és megnézni, hogy mit küldött. Ezután át lehet írni fixen a kódot.
A hangerőszabályozó IC
PGA2311 egy digitálisan állítható analóg hangerő szabályozó IC. A vezérlése SPI-n keresztül történik. 8bit jobb, 8 bit bal csatorna hangerő adatával.
Minden egyébb infó az adatlapban benne van. NYÁK készítésekor mindenképpen tartsuk be, hogy az analog és digitális tápokat külön válasszuk, különben csúnya zajokat fogunk hallani!
A Kijelző
Ebay-ról olcsón beszerezhető grafikus kijelző azST7920. SPI-n keresztül is lehet vezérelni a párhuzamos vezérlés helyett, így sok lábat meg lehet sprólni. Grafikák rajzolásához készítettem hozzá egy programot, ami a bele rakott képet egy tömbbe rakja. Hamarosan felteszem a weblapra azt is. A spectrum analyzer vonalait függvénnyel rajzolom, nincs előre letárolva a grafika. Az LCD lassúsága miatt a visszaesés le van lassítva, így látványosabb.
A Spectrum Analyzátor
Az FFT kódot nem én implementáltam, csak felhasználom. A mintavételezés AD koverterrel 40kHz-n történik, így a legmagasabb frequencia 20kHz.