Vienai savo idėjai įgyvendinti įsigijau keletą Bluetooth moduliukų su gan keistu pavadinimu (BLK-MD-SPK-B). Moduliai palaiko keletą standartinių Bluetooth profilių: A2DP v1.2 (Advanced Audio Distribution), AVRCP v1.4 (Audio/Video Remote Control), HSP v1.2 (Headset) ir HFP v1.5 (Hands-Free). Šiuos modulius sudaro gan populiari OVC3860 mikroschema. Būtent šiuos modulius pasirinkau, nes tai gana populiarūs moduliai, neblogai dokumentuoti.
Renkantis modulius, būtina savybė buvo modulio valdymas skaitmenine sąsaja (UART) bei dokumentuotas valdymas. Šių modulių valdymui numatyta UART sąsaja, veikianti 115200 bps greičių. Valdymui naudojamos savitos AT komandos.
Nors Bluetooth modulis BLK-MD-SPK-B palyginus neblogai dokumentuotas, tačiau iki rimtos dokumentacijos dar toli. Papildomai teko skaityti modulio pagrindinės mikroschemos aprašymą (OVC3860), nagrinėti modulio valdymo dokumentus, atlikti įvairius tyrimus.
Maitinimui naudojau VBAT kontaktą. Saugi maitinimo įtampa gali būti maždaug 3,6 – 4,2V ribose (Li-Ion celės įtampa). Naudojant didesnę maitinimo įtampą, įtampos reguliatorius, kuris sumontuotas ant PCB, išsiskiria nemažas šilumos kiekį, tad geriau nepersistengti su per didele maitinimo įtampa. Naudojant per mažą maitinimo įtampą, reguliatorius nebesugebės užtikrinti reikiamos įtampos išėjime.
Su garso išėjimu taip pat turėjau atlikti nemažai tyrimų, kol išsiaiškinau kokiam režime jis veikia. Pas modulio garso traktas dirba A klasėje (angl. single ended), su 0,9V vidurio (angl. offset) įtampa. SPKN yra virtuali žemė, kurios lygis GND atžvilgiu yra 0,9V. SPKN jokiu būdu negalima jungti su bendru GND.
Prie modulio garso išėjimo jungiant ausines, kiekvieno kanalo vienas ausinių kontaktas jungiamas atitinkamai prie SPKLP ir SPKRP modulio kontaktų, o SPKN naudojamas kaip bendras abiejų ausinių kontaktas.
Modulio nuoseklios valdymo sąsajos lygiai yra 2,5V ir tai nėra labai patogu. Valdant su 3,3V logika problemų dėl skirtingų įtampų lygių nekyla, tačiau valdant su 5V logiką būtina naudoti įtampų suderinimą.
Iki šiol esu neradau aprašyto EEPROM turinio reikšmės. EEPROM turinyje saugomi įvairus modulio nustatymai. Žinoma, nedidelę dalį EEPROM turinio pavyko išsiaiškinti nuskaičius programatoriumi.
Kadangi pirmiausia norėjau įsitikinti ar moduliai veikia taip kaip deklaruojama, vieną iš jų patupdžiau ant universalios plokštės. Tam prijungiau reikiamus išvadus bei būtiniausius komponentus.
Kiek išbandžiau, šis modulis veikia puikiai, nors keletos dokumentuotų komandų modulis nepalaikė (iš maždaug keliasdešimt). Galima toliau tęsti idėjos įgyvendinimą 😉
Gal gali pasidalinti keliais patarimais kaip praktiškai naudojamas šitas modulis.
Pirmiausiai man rupi kaip ten dėl jo užmaitinimo. Galvoju kaip čia jį pamaitinus nuo 5v.. Visur matau kad jam i VBAT reikia paduoti 3,6-4,2V, bet yra variantų kur 5V tiesiog paduodami į CHg 10 koją.. Kaip tu darei?
Toliau idomus man audio signalas.. Matau kad AGND koja.. Čia jam reikalingas gal koks preampas? Nelabai turiu patirties su Audio signalais tai ir galvoju ar galiu ta AGND sujungti i bedra GND ir tada R ir L signalus siusti i MUXerį.
Paskutinis klausimas su Serial interfeisu. Vėlgi spėju viskas pakabinta turėtu būti ant 3,3V lygio logikos?
Jei nesunku pasidalink patirtimi ir žiniomis 😉
Atsižvelgiant į klausimus, papildžiau aprašymą.
Taigi, vistik nera taip jau paprasta su tuo moduliu.. Pats zadu ji jungti ne nuo baterijos tai speju arba duosiu jam pavalgyti +5V arba koki reguliatoriu papildoma statysiu.
Del audio signalo tai patvirtinai, kad ten nepilnas diferencialinis audio signalas. Pilnas butu jei abu kanalai po minusa turetu.. Ausinems pajungti tai viskas ok, bet vat as noriu jo signala i TDA7439 nusiusti, taigi teks priestai ji konvertuoti 🙁
Liudniausia naujienas su 2.5V serial interfeisu. Dar tokios nesamones nesu turejes, na bet teks. Nebeda aisku, pora greitu tranzistoriu panaudoti lygiams pakeisti, bet vat papildomai reiks tureti ir 2.5V itampa. Kadangi jos galingos nereikia tai gal is 5V per voltage divider pakaks prasisukti. Na, bet vistiek idomiai cia. Pats OVC3860 veikia ant 1.8V berods, tai kaip cia tie 2.5V atsirado..
Daugelis dalykų atrodo paprasti, kol nepradedi gilintis 🙂
Garso išėjimo signalas nėra diferencialinis, o tiesiog signalas su ofsetu (single ended išėjimas).
Nematau priežasčių, kodėl turėtų kilti problemos paduodant garso signalą iš modulio į garso procesorių. Tiesiog paduok išeinantį signalą per kondensatorių į TDA7439 iėjimą. Įdomu, apie kokius konvertavimus kalbi? 🙂
Nuoseklios sąsajos lygio konverterių maitinimui aš panaudojau maitinimą iš VMIC, kurio įtampa ir yra būtent 2,5V. Keičiant lygius iš 5V -> 2,5V pakaks naudoti tiesiog varžinį daliklį, na o keičiant lygius iš 2,5V -> 5V teks naudoti aktyvų lygių keitiklį.