- IC PT2258
- Hogyan működik a PT2258 IC
- A sematikus
- Szükséges alkatrészek
- Arduino kód
- A digitális hangerő-szabályozó áramkör tesztelése
- További fejlesztés
A potenciométer egy olyan mechanikus eszköz, amelynek segítségével az ellenállást a kívánt értéknek megfelelően lehet beállítani, megváltoztatva ezzel a rajta áthaladó áramot. Számos alkalmazás létezik egy potenciométer számára, de többnyire egy potenciométert használnak hangerősítőként.
A potenciométer nem szabályozza a jel erősítését, de feszültségosztót képez, és ezért a bemeneti jel csillapodik. Tehát ebben a projektben bemutatom, hogyan lehet a digitális hangerőszabályzót felépíteni az IC PT2258-mal, és összekapcsolni egy Arduino-val az erősítő áramkörének hangerejének szabályozásához. Itt ellenőrizheti a különböző audióval kapcsolatos áramköröket, beleértve a JE mérőt, a hangszabályozó áramkört stb.
IC PT2258
Mint korábban említettem, a PT2258 egy IC, amelyet 6 csatornás elektronikus hangerőszabályozóként használtak, ez az IC CMOS technológiát használ, amelyet kifejezetten többcsatornás audio-video alkalmazásokhoz terveztek.
Ez az IC egy I2C vezérlő interfészt biztosít 0 és -79 dB közötti csillapítási tartományban 1 dB / lépés sebességgel, és 20 tűs DIP vagy SOP csomagban érkezik.
Néhány alapvető funkció a következőket tartalmazza:
- 6 bemeneti és kimeneti csatorna (5.1 otthoni audiorendszerekhez)
- Választható I2C cím (Daisy-chain alkalmazáshoz)
- Magas csatorna elválasztás (alacsony zajszintű alkalmazásokhoz)
- S / N arány> 100dB
- Az üzemi feszültség 5–9 V
Hogyan működik a PT2258 IC
Ez az IC továbbítja és fogadja az adatokat a mikrokontrollertől SCL és SDA vonalakon keresztül. Az SDA és az SCL alkotja a busz interfészt. Ezeket a vezetékeket a 4.7K ellenállással kell magasra húzni a stabil működés érdekében.
Mielőtt rátérnénk a tényleges hardveres működésre, íme az IC részletes funkcionális leírása. ha mindezt nem akarja tudni, kihagyhatja ezt a részt, mert az összes funkcionális részt az Arduino könyvtár kezeli.
Adatok ellenőrzése
- Az SDA vonalon lévő adatok akkor tekinthetők stabilnak, ha az SCL jel HIGH.
- Az SDA vonal HIGH és LOW állapota csak akkor változik, ha az SCL alacsony.
Start és Stop feltétel
A Start feltétel akkor aktiválódik, amikor
- az SCL értéke HIGH és
- Az SDA a HIGH-ról a LOW állapotra vált.
A Stop feltétel akkor aktiválódik, amikor
- Az SCL értéke HIGH és
- Az SDA a LOW szintről a HIGH állapotra vált
Jegyzet! Ez az információ nagyon hasznos a jelek hibakeresésében.
Adatformátum
Az SDA vonalra továbbított minden bájt 8 bitből áll, amelyek bájtot alkotnak. Minden bájtot egy nyugtázó bitnek kell követnie.
Elismerés
Az elismerés biztosítja a stabil és megfelelő működést. Az nyugtázó óra impulzus alatt a mikrovezérlő ebben a pillanatban HIGGEN húzza az SDA tűt, míg a perifériás eszköz (audio processzor) lehúzza (LOW) az SDA vonalat.
A perifériás eszköz (PT2258) most meg van címezve, és a bájt fogadása után nyugtázást kell generálnia, különben az SDA vonal magas szinten marad a kilencedik (9.) óra impulzus alatt. Ha ez megtörténik, a fő adó STOP információt generál az átvitel megszakítása érdekében.
Ez egyértelművé teszi, hogy nincs szükség az érvényes adatátvitelre.
Cím kiválasztása
Ennek az IC-nek az I2C címe a CODE1 (17. sz. Pin) és a CODE2 (4. sz. Pin) állapotától függ.
KÓD1 (PIN-kód: 17) |
KÓD2 (PIN-kód: 4) |
HEX CÍM |
0 |
0 |
0X80 |
0 |
1 |
0X84 |
1 |
0 |
0X88 |
1 |
1 |
0X8C |
Logic High = 1
Logic Low = 0
Interface Protocol
Az interfész protokoll a következőkből áll:
- A Start bit
- A chip cím bájtja
- ACK = nyugtázó bit
- A Data bájt
- Egy Stop bit
Egy kis háztartás
Az IC bekapcsolása után legalább 200 ms-ot kell várnia az első adatbit továbbítása előtt, különben az adatátvitel sikertelen lehet.
A késedelem után az első dolog a regisztráció törlése az I2C vonal „0XC0” vi küldésével, ez biztosítja a megfelelő működést.
A fenti lépés törli a teljes regisztert, most be kell állítanunk egy értéket a regiszterbe, különben a regiszter tárolja a szemét értékét, és szeplős kimenetet kapunk.
A megfelelő hangerő-beállítás érdekében biztosítani kell a 10dB többszörösét, majd egy 1dB kódot a csillapítónak egymás után, különben az IC rendellenesen viselkedhet. Az alábbi ábra jobban tisztázza.
Mindkét fenti módszer megfelelően fog működni.
A megfelelő működés biztosítása érdekében ellenőrizze, hogy az I2C adatátviteli sebesség soha nem haladja-e meg a 100 kHz-et.
Így továbbíthat egy bájtot az IC-re, és csillapíthatja a bemeneti jelet. A fenti szakasz megismeri az IC működését, de mint korábban említettem, Arduino könyvtárat fogunk használni az IC-vel való kommunikációhoz, amely az összes kemény kódot kezeli, és csak néhány függvényhívást kell kezdeményeznünk.
A fenti információk az adatlapból származnak, további információkért kérjük, olvassa el.
A sematikus
A fenti kép a PT2258 alapú hangerőszabályzó áramkör tesztvázlatát mutatja. Az adatlapból veszi és szükség szerint módosítja.
A bemutatáshoz az áramkört forrasztatlan kenyérlemezre építik a fent bemutatott vázlat segítségével.
Jegyzet! Az összes komponenst a lehető legszorosabban helyezzük el, hogy csökkentsük a parazita kapacitás induktivitását és ellenállását.
Szükséges alkatrészek
- PT2258 IC - 1
- Arduino Nano vezérlő - 1
- Általános kenyérlemez - 1
- Csavaros kapocs 5mm x 3 - 1
- Nyomógomb - 1
- 4.7K ellenállás, 5% - 2
- 150K ellenállás, 5% - 4
- 10k ellenállás, 5% - 2
- 10uF kondenzátor - 6
- 0,1 uF kondenzátor - 1
- Jumper huzalok - 10
Arduino kód
Az egyszerűség kedvéért egy PT2258 könyvtárat fogok használni a GitHub-tól, amelyet a sunrutcon készített.
Ez egy nagyon jól megírt könyvtár, ezért döntöttem úgy, hogy használom, de mivel nagyon régi, egy kicsit hibás, és a használat előtt meg kell javítanunk.
Először töltse le és vonja ki a könyvtárat a GitHub adattárból.
Kibontás után megkapja a fenti két fájlt.
#include #include
Ezután nyissa meg a PT2258.cpp fájlt a kedvenc szövegszerkesztőjével, én a Notepad ++ -t használom.
Láthatja, hogy a vezetékkönyvtár „w” -je kis betűkkel van ellátva, ami nem kompatibilis a legújabb Arduino verziókkal, és ki kell cserélnie egy „W” nagybetűvel, ennyi.
A PT2258 hangerőszabályzó teljes kódja e szakasz végén található. Itt ismertetjük a program fontos részeit.
A kódot az összes szükséges könyvtárfájl beillesztésével kezdjük. A Wire könyvtár az Arduino és a PT2258 közötti kommunikációra szolgál. A PT2258 könyvtár tartalmazza az összes kritikus I2C időzítési információt és nyugtázást. Az ezButton könyvtár a nyomógombokkal való interfészre szolgál.
Ahelyett, hogy az alábbi kódképeket használja, másolja az összes kódpéldányt a kódfájlból, és formázza őket, mint más projektekben szoktuk
#include
Ezután készítse el a két gomb objektumait és magát a PT2258 könyvtárat.
PT2258 pt2258; ezButton gomb_1 (2); ezButton gomb_2 (4);
Ezután adja meg a hangerő szintjét. Ez az alapértelmezett hangerőszint, amellyel ez az IC elindul.
Int térfogat = 40;
Ezután indítsa el az UART-ot, és állítsa be az I2C busz órajelfrekvenciáját.
Serial.begin (9600); Wire.setClock (100000);
Nagyon fontos beállítani az I2C órát, különben az IC nem fog működni, mert az IC által támogatott maximális órajel frekvencia 100KHz.
Ezután végezzünk egy kis takarítást egy if else utasítással annak biztosítása érdekében, hogy az IC megfelelően kommunikáljon az I2C busszal.
If (! Pt2258.init ()) Serial.printIn („A PT2258 sikeresen elindítva”); Else Serial.printIn („Nem sikerült elindítani a PT2258-at”);
Ezután a nyomógombok késleltetési késleltetését állítjuk be.
Button_1.setDebounceTime (50); Button_2.setDebounceTime (50);
Végül indítsa el a PT2258 IC-t az alapértelmezett csatorna hangerő és PIN-szám beállításával.
/ * Iniciáló PT alapértelmezett hangerővel és Pin * / Pt2258.setChannelVolume (kötet, 4); Pt2258.setChannelVolume (5. kötet);
Ez a Void Setup () szakasz végét jelenti.
A Loop szakaszban meg kell hívnunk a loop funkciót a gombosztályból; ez egy könyvtári norma.
Button_1.loop (); // Könyvtári normák Button_2.loop (); // Könyvtári normák
Az alábbiakban, ha a szakasz csökkenti a hangerőt.
/ * ha az 1 gombot megnyomják, ha a feltétel igaz * / Ha (gomb_1.lepressed ()) {Volume ++; // A hangerő-számláló növelése. // Ez, ha az utasítás biztosítja, hogy a kötet nem haladja meg a 79-et. Ha (kötet> = 79) {Kötet = 79; } Soros nyomtatás (“kötet:“); // a kötetszint nyomtatása Serial.printIn (kötet); / * állítsa be a 4. csatorna hangerejét, amely a PT2558 IC 9 / PIN-kódjában található * / Pt2558.setChannelVolume (4. kötet); / * állítsa be az 5. csatorna hangerejét. Ez a PT2558 IC * / Pt2558.setChannelVolume (hangerő, 5) PIN-kódja 10; }
Az alábbiakban, ha a szakasz növeli a hangerőt.
// Ugyanez történik a 2. gombbal If (button_2.isPressed ()) {Volume--; // ez, ha az utasítás biztosítja, hogy a hangerő szintje ne essen nulla alá. Ha (térfogat <= 0) Hangerő = 0; Soros.nyomtatás („kötet:“); Serial.printIn (kötet); Pt2258.setChannelVolume (4. kötet); Pt2558.setChannelVolume (5. kötet); }
A digitális hangerő-szabályozó áramkör tesztelése
Az áramkör teszteléséhez a következő készüléket használtuk
- Transzformátor, amelynek 13-0-13 csapja van
- 2 4Ω 20W-os hangszóró terhelésként.
- Hangforrás (telefon)
Egy korábbi cikkemben bemutattam, hogyan lehet egyszerű 2x32 Wattos erősítőt készíteni a TDA2050 IC-vel, ezt a bemutatót is felhasználom.
Megszakítottam a mechanikus potenciométert, és két vezetéket rövidre zártam két kis jumper kábellel.
Most két nyomógomb segítségével szabályozható az erősítő hangereje.
További fejlesztés
Az áramkör teljesítményének javítása érdekében tovább módosítható. Az áramkörhöz hasonló fejlesztések végezhetők el egy NYÁK-on, hogy tovább megszüntessék az IC digitális szakasza által keltett zajt. Hozzáadhatunk egy további szűrőt is a nagyfrekvenciás zajok elutasításához. Ezenkívül nézzen meg más hangerősítő áramköröket és más, audióval kapcsolatos projekteket.
Remélem tetszett ez a cikk, és valami újat tanultál belőle. Ha kétségei vannak, kérje az alábbi megjegyzéseket, vagy használhatja fórumunkat a részletes megbeszéléshez.