Si4703 based RDS scanner for Raspberry Pi using Si4703S-B16 breakout board PL102RT-S V1.5
Connect PL102RT-S V1.5 breakout to Rpi:
RPi | PL102RT-S |
---|---|
SDA | SDIO |
SCL | SCLK |
#23 | RST |
GND | GND |
3.3V | Vd |
If in addition to RDS scanning you want to listen to radio audio then connect whatever amplifier you have to LOUT/ROUT. Adafruit MAX98306 works just fine.
Make RdSpi. It accepts one command at a time:
- reset - resets and powers up Si4703, dumps register map while resetting
- power on|down - powers Si4703 up or down
- dump - dumps Si4703 register
- spacing kHz - sets 200, 100, or 50 kHz spacing
- scan (mode) - scans for radio stations, mode can be specified 1-5, see AN230, Table 23. Summary of Seek Settings
- spectrum - scans full FM band and prints RSSI
- seek up|down - seeks to the next/prev station
- tune freq - tunes to specified FM frequency, for example
rdspi tune 9500
to tune to 95.00 MHz - rds on|off|verbose - sets RDS mode, on/off for RDSPRF, verbose for RDSM
- rds gt - RDS Group Type to scan for, for example 0 for basic tuning and switching information
- rds - scan for complete RDS PS and Radiotext messages with 15 seconds timeout
- volume 0-15 - set audio volume, 0 to mute
- set register=value - set specified register
It is better to start with reset
:)
rdspi reset
rdspi tune 9500
rdspi volume 10
rdspi set volext=1
rdspi dump
- Si4702/03 FM Radio Receiver ICs
- Si4703S-C19 Data Sheet
- Si4703S-B16 Data Sheet: Not on SiLabs site anymore, google for it
- Si4700/01/02/03 Firmware Change List, AN281: Not on SiLabs site anymore, google for it
- Using RDS/RBDS with the Si4701/03
- Si4700/01/02/03 Programming Guide
- RBDS Standard: ftp://ftp.rds.org.uk/pub/acrobat/rbds1998.pdf