Adrian STRATULAT - Radio Receiver

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

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:

  • AM - amplitude modulation - modulatie in amplitudine
  • FM - frequency modulation - modulatie in frecventa
  • SW - short waves - unde scurte
  • MW - medium waves - unde medii
  • LW - long waves - unde lungi

Descriere generală

Schema bloc:

Hardware Design

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 -

Debouncing

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.

Alimentare de 3.3V

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.

Schemele electrice au fost adaugate in sectiunea “Download”

Software Design

Mediu de dezvoltare

Codul a fost scris folosind Programmer's Notepad si compilat folosind avr-gcc.

Citirea codorului

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).

Magistrala I2C

Pentru a comunica folosind magistrala I2C am folosit codul din application note AVR315.

LCD

Am folosit modul de comunicatie pe 4 fire de date, bazandu-ma pe codul din laborator.

Rezultate Obţinute

Afisarea pe ecran si citirea codorului functioneaza fara probleme, dar comunicatia pe I2C “se agata”.

Concluzii

  • Nu e o idee buna sa folosesti pinii folositi si de USB pentru niste intrerupatoare (chiar daca sunt pinii cu intreruperile INT0 si INT1), asa ca a folosit niste pini cu functie de PCINT. (nu mai puteam sa reprogramez placa asa).
  • Oricat de bine a fost planificat proiectul, tot au existat hack-uri de ultim moment.
  • Mai multe piese ⇒ Mai multe lucruri care pot merge prost.

Download

Bibliografie/Resurse

Datasheets:

pm/prj2013/sstegaru/26.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0