Circuit Lake

Electronic Project and Circuit Collection

Atmega168 RDS decoder

05/20/2008 Category: AVR, Microcontroller, Project

This decoder is fed by a RDS demodulator IC (or tuner) which has RDDA (data signal) and RDCL (clock signal) outputs.The microcontrolller is an Atmega168 clocked on the external 4.332MHz crystal from the RDS demodulator.

TDA7330B RDS demodulator IC from STMicroelectronics to be used in this project. The TDA7330B is connected to the Atmega168 with RDDA connected to PD4 (on PORTD) and RDCL to INT0 (PD2).

Atmega168 RDS decoder

The software in the Atmega168 is able to decode the following RDS data:

* Programme Identification code (PI: 0x83C7, Detected new station.)
* Program service name (PS: RADIO538)
* Programme Type code (PTY: 0x0A, Pop Music.)
* Traffic Programme Identification code & Traffic announcement code (TP&TA: 0x01 0x00, Traffic announcements available on this station and maybe via EON on another station.)
* Music Speech switch code (MS: 0x01, Music is being broadcasted or station does not use MS flag.)
* Decoder-identification control code (DI: 0x01, Stereo, Dynamic PTY.)
* Alternative frequency codes (AF: 0x98, 102.7MHz.)
* Linkage Actuator (LA: 0x00)
* Extended Country Code (ECC: 0xE3)
* RadioText (RTA: Radio 538 = Randstad (Zuid) 102.7 FM)
* Clock-time and date (CT: 0x1A53CD844, UTC 2006-07-02 (MJD 53918) 13:33:00 +02:00, TIME 15:33:00)

Download for document, source code here (zip)