Autorul poate fi contactat la adresa: Login pentru adresa
Pentru proiect am ales sa fac un dispozitiv radio-receiver folosind circuitul integrat Si4735.
Acest integrat suporta, pe langa banda obisnuita de FM (89-108MHz), si banda extinsa de FM (64-108 MHz), banda de “AM” (de fapt MW, 520–1710 kHz), banda de SW (modulatie in amplitudine in intervalul 2.3–26.1 MHz) si LW (modulatie in amplitudine in intervalul 153–279 kHz).
Toate intervalele in care acest integrat poate fi acordat intra in spectrul de frecventa dedicat prin conventii internationale posturilor radio, toate celelalte servicii de comunicatii radio se gasesc in alte game de frecventa.
Interfata integratului este una simpla: are doua intrari pentru semnalele radio (una pentru FM si alta pentru AM), interfata digitala (pentru comanda) I2C si iesiri audio analogice.
In cadrul proiectului am ales sa folosesc acest integrat pentru a receptiona doua benzi de frecventa (FM si SW), cu volum reglabil si sonor stereo.
Definitii:
Bill of materials - placa cu radio-receiver:
Nume piesa | Furnizor | Simbol furnizor | Cost unitar | Nr bucati | Cost total | Observatii |
---|---|---|---|---|---|---|
IC Si4735 | tme | SI4735-D60-GU | 14.22 RON | 1 | 14.22 RON | - |
Cristal 32kHz | tme | 32.768K-20PPM-S | 0.492 RON | 1 | 0.492 RON | - |
Condensator ceramic 18pF | tme | CL21C180JBANNNC | 0.036 RON | 1 | 0.036 RON | - |
Condensator ceramic 22pF | tme | CL21C220JBANNNC | 0.0208 RON | 2 | 0.0416 RON | - |
Condensator ceramic 33pF | tme | CL21C330JBANNND | 0.0208 RON | 1 | 0.0208 RON | - |
Condensator ceramic 22nF | tme | CL21B223KCFNNNE | 0.029 RON | 1 | 0.029 RON | - |
Condensator ceramic 470nF | tme | CL21B474KOFNNNG | 0.0457 RON | 1 | 0.0457 RON | - |
Condensator ceramic 4.7uF | tme | C0805C475K9PAC | 0.207 RON | 1 | 0.207 RON | - |
Bobina 4.7nH | tme | CW0603-4.7 | 0.242 RON | 1 | 0.242 RON | - |
Bobina 180nH | tme | CW0805-180 | 0.291 RON | 1 | 0.291 RON | - |
Bobina 220uH | tme | NL322522T-221K | 0.408 RON | 1 | 0.408 RON | - |
Bill of materials - sursa in comutatie
Nume piesa | Furnizor | Simbol furnizor | Cost unitar | Nr bucati | Cost total | Observatii |
---|---|---|---|---|---|---|
IC sursa comutatie | tme | LM2703MF-ADJ/NO | 4.1 RON | 1 | 4.1 RON | - |
Bobina 10uH 180mA | tme | B82422A1103K100 | 4.22 RON | 1 | 4.22 RON | - |
Condensator ceramic | – | – | – RON | 2 | – RON | - |
Rezistenta 160K | – | – | – RON | 2 | – RON | - |
Rezistenta 1M | – | – | – RON | 1 | – RON | - |
Dioda Schottky | – | – | – RON | 1 | – RON | - |
Bill of materials - alte componente:
Nume piesa | Furnizor | Simbol furnizor | Cost unitar | Nr bucati | Cost total | Observatii |
---|---|---|---|---|---|---|
Codor | tme | ED16111O | 7.27 RON | 1 | 7.27 RON | - |
Stabilizator 3.3V | tme | LF33CV | 1.73 RON | 1 | 1.73 RON | - |
Display BC1602 AYPLEH | – | – | – RON | 1 | – RON | - |
Rezistenta 10K (contrast) | – | – | – RON | 4 | – RON | - |
Difuzor 8 ohmi, 0.5W | – | – | – RON | 2 | – RON | - |
Deoarece pinii de pe codor genereaza o intrerupere la fiecare front pozitiv si negativ, am ales sa implementez debouncing in hardware: un condensator de 100nF in paralel cu contactul electric si o rezistenta de pull-up de 10k rezolva foarte bine problema.
Deoarece integratul Si4735 functioneaza doar la 3.3V, am ales sa pun alimentare pe toata placa la 3.3V, schimband stabiliatorul de tensiune cu unul cu pinii in aceeasi ordine (cealalta solutie era sa folosesc/construiesc un level-shifter bidirectional).
Singura piesa care a necesitat atentie sporita a fost display-ul, care poate fi alimentat doar la 5V, astfel incat am adaugat si o sursa in comutatie de putere mica.
Sursa in comutatie foloseste rezistente cu valorile 2x160k (pentru ca nu aveam o rezistenta de 330k prin casa) si 1M, pentru a da la iesire o tensiune aproximativ egala cu 5V.
Codul a fost scris folosind Programmer's Notepad si compilat folosind avr-gcc.
Pinii codorului au fost setati sa declanseze o intrerupere la fiecare modificare, iar in codul intreruperii am implementat un automat cu stari finite pentru a numara cate pulsuri genereaza codorul. Aceasta deoarece pentru fiecare puls, codorul face patru tranzitii separate (citesc doi biti in cod Gray, pentru a afla si informatii despre directia de rotatie).
Pentru a comunica folosind magistrala I2C am folosit codul din application note AVR315.
Am folosit modul de comunicatie pe 4 fire de date, bazandu-ma pe codul din laborator.
Afisarea pe ecran si citirea codorului functioneaza fara probleme, dar comunicatia pe I2C “se agata”.