vineri, 7 februarie 2020

Radio FM (RDS) cu TEF6686

 
   Am aflat de tunerul cu TEF6686 de la Iulian, un radioamator din Craiova. El m-a rugat sa ii modific niste programe Arduino pentru a avea anumite informatii RDS pe PC si ulterior pe un afisaj LCD, pentru a realiza un radio independent. Versiunea comandata de pe PC este folosita mult de radioamatori pasionati de receptii DX, adica "prinderea" unui post indepartat.
   Initial, voiam sa iau radioul lui si sa rescriu/modific programele care le avea, dar am preferat sa comand si eu un tuner pentru ca stau foarte prost cu timpul liber si l-as fi incurcat. Pana sa vina tunerul si apoi sa ma apuc eu de lucru, am aflat ca Iulian si prietenul lui, Florin Matei, au rezolvat cu partea de program Arduino pentru comanda de pe PC cu programul XDR-GTK
   Dupa sosirea tunerului, am lipit fire cu terminale tata, deoarece pasul intre pini e de 2mm, nu 2,54mm cat e pe breadboard sau cablajele de test
si l-am conectat la o placa Arduino Uno sa ii aflu adresa pe i2c cu programul i2c scanner
   M-am "concentrat" pe adaptarea programului de la https://github.com/makserge/tef6686_radio pentru a afisa informatiile pe un afisaj LCD. La indemana a fost un afisaj serial 2004 (cu caractere uriase), ce tocmai il testasem dupa cum se vede in articolele:
Ceas RTC cu afisaj serial
Ceas NTP pe afisaj serial
   Bun, deoarece tunerul se conecteaza pe i2c, iar afisajul pe un pin, schema a fost simpla:
si cu aceasta am testat 2 sketch-uri, radio_serialLCD2 ce are informatii radiotext lung si radio_serialLCD3a ce are si informatii PTY si PI, dar radiotextul prelucrat este mult mai scurt decat cel original.
    Am facut filmuletul radio cu TEF6686 cu afisaj serial
    Deoarece interfata seriala seriala nu este prea populara, am preferat sa trec la interfata i2c, asa ca am modificat schema, adaugand (pe parcurs) si butoane pentru a putea da si comenzi locale, nu numai din ecranul de monitorizare seriala sau PUTTY.
    Am identificat si adresa afisajului cu programul i2 scanner:
    Ca si in cazul afisajului serial, am modificat 2 programe, unul cu radiotext lung si PTY, dar fara PI (TEF6686_1602i2c_v2x) si unul cu informatii PI si PTY (TEF6686_1602i2c_v3x), la final existand 6 butoane fizice (volum +/-, cautare autoamta +/-, crestere si scadere frecventa cu pas de 0,1MHz).
    Pe parcursul testelor am realizat mai multe filmulete:
   Pentru moment, cam atat, dar incerc sa combin cele 2 programe sa am cat mai multe informatii.

11.02.2020
    Schema recomandata de conectare a tunerului cu TEF6686, model TDQ-230V-186, este:

  

5 comentarii:

  1. I do on stm23 a board "maple mini", the display
    ST7920 and encoder works very well.

    RăspundețiȘtergere
    Răspunsuri
    1. depending on my free time I will add other features (encoder, graphic display, STM32 instead Arduino Mega, etc)

      Ștergere
  2. Works fine with your sketch. The original makserge sketch function "radio.getLevel()" might give values like 65536, 65535 back when antenna level is below "0" (uint16_t range). This might result in "%%" display
    behind antenna level value.

    RăspundețiȘtergere
    Răspunsuri
    1. I saw.. you must put instead lcd.print("%"); an additional space: lcd.print("% ");

      Ștergere
    2. I forgot to thank you for donation... ;)

      Ștergere