Po TEA5767 modulių gavimo kaip alternatyvą radau kiek tobulesnę FM imtuvo mikroschemą – SI4703, turinčią RDS/RBDS (Radio Data System/ Radio Broadcast Data System). Atsiradus laiko išbandžiau SI4703.
RDS tai papildoma radijo stoties siunčiama informacija, perduodama 57 kHz nešliu, 1187,5 bit/s greičiu. Tarp RDS perduodamų duomenų yra stoties pavadinimas, laidų/kūrinių pavadinimai ir t.t.. Taip pat ši mikroschema yra labiau skaitmeninė, po maišiklio (angl. mixer), atskirti analoginiai kvadratūrinės moduliacijos I ir Q kanalai yra verčiami skaitmeninėmis reikšmėmis atskirais analogas kodas keitikliais (angl. ADC). Tada taikomas įvairus skaitmeninis apdorojimas (angl. DSP) (filtravimas, demoduliacija). Apdorotas skaitmeninis signalas vėl verčiamas analoginiu , naudojant kodas analogas keitiklius (angl. DAC) kairiajam ir dešiniajam kanalui. Taigi, tai visiškai šiuolaikiškas imtuvas, kuriame taikomi pagrindiniai SDR principai.
Si4703 skaitmeninės (VD) ir analoginės (VA) dalies galima maitinimo įtampa 2,7 – 5,5V. Sąsajų (VIO) maitinimo įtampa 1,5 – 3,6V. Mikroschemą galima valdyti I2C (iki 400 kHz) arba 3-jų laidų SPI (iki 2,5 MHz) sąsajomis. Taip pat yra du panaudojami GPIO, kurių paskirtį galima keisti. Korpusas gana mažas QFN20.
Pirmiesiems bandymams įsigijau paruoštą bandomąją plokštelę su SI4703 mikroschema ir kitais būtiniausias komponentais. Tada prijungiau prie Arduino Nano pasinaudodamas
Sparkfun biblioteka ir pradiniu kodu. Viskas suveikė iškarto. Greitai pasigedau papildomos informacijos, tokios kaip RSSI, stereo/mono režimas, RDS priėmimas. Tai nesunkiai gavau truputį papildęs biblioteką. Taip pat išbandęs RDS duomenų priėmimą pastebėjau, kad jis tinkamai neveikia. Teko truputi pasidomėti RDS, kažkiek patyrinėti Sparkfun kodą, paeksperimentuoti ir po modifikacijų RDS priėmimas pradėjo veikti.
Visus pradinius eksperimentus atlikau, be jokios papildomos antenos. Kaip antena veikė prijungtos aktyvios kolonėles laidas. Tai nėra pats geriausias variantas ir tai rodė nedidelis priimamų stočių kiekis bei jų lygis. Atlikęs keletą modifikacijų, prijungiau išorinę anteną (reikiamus pakeitimus schemoje ir PCB pažymėjau).
FM imtuvas su Si4703 imtuvas patiko. Ateityje turiu įvairių minčių, kaip galėčiau panaudoti šią mikroschemą. Viena iš idėjų, suporuoti su Raspberry Pi ir padaryti internetinį/FM radijo imtuvo hibridą.
Dear Dovydo,
I’d like to ask you for help with the Si4703 RDS issue.
Thanks to the antenna improvement method you shared, I’ve solved the antenna problem very satisfactorily. First of all, thank you very much for this.
The Si4703 radio is working very well, but it’s not receiving RDS information. I think it will be necessary to modify the library as you said. However, unfortunately, I’m not good enough to modify the library. If possible, may I ask for the library and test program files you used?
Your help would be highly appreciated.
I look forward to your reply.
Thank you.
Daniel,
Hi, Daniel.
Actually I found better library for Si4703 which supports RDS function perfectly and is realized as not blocking function.
More information about this library you can find on https://mathertel.github.io/Radio/
This library supports SI4703, SI4705, TEA5767 and RDA5807 chips.
Thanks for the reply.
I’m using the same library(https://mathertel.github.io/Radio/), but the RDS is not responding.
Let me briefly explain my situation.
– I don’t scan all available radio channels in advance.
– After powering on the radio, search for channels with seekUp and seekDown.
– EEPROM is only used to store the last frequency value.
– I only need the Radio Station Name of the RDS information. But I’m not receiving that information.
Would it be very wrong if I asked you for your email address?
I’d like to ask you for advice after sending my file.
Daniel,