G. Laroche Web site |
RDS coder board USB RS232 using ATmega32
|
Summary
Limits, knowns problems and versions
This board is a RDS coder using an ATMEL AVR
ATmega32.
This board can be controled by a RS232 link, USB interface or SPI.
TA data is displayed wiyth a
LED and can be controled by :
- Hardware input
- RS232
- USB
- SPI (not yet implemented)
An activity LED toggle state on each RDS group generated.
For a stereo mode using, this board require an external 57KHz clock in phase with the tone pilot 19KHz.
Click on reactive zone from following picture for more information(connectors, Led, adjust,...)
RS232 connector :
1 | GND |
2 | TX |
3 | RX |
ISP connector to program TAmega32 microcontroler:
MOSI
|
1
|
2
|
+5V |
Not Used
|
3
|
4
|
GND |
RESET
|
5
|
6
|
GND |
SCK
|
7
|
8
|
GND |
MISO
|
9
|
10
|
GND |
TA LED Yellow (Traffic Announcement) :
LED is ON when TA data is set to "1"
Activity LED Green:
LED toggle state on each RDS group generated
Input connector (only for RDS decoder usage)
1
|
GND |
2
|
RDS Decoder Input |
RDS output connector : A link capacitor could be necessary with this output
1
|
GND |
2
|
RDS Coder Output |
1
|
GND |
2
|
TA Input (active on low level) |
TA information is set to "1" IF at least one of these conditions is TRUE :
-
|
TA input is set to "0" |
-
|
TA is set by RS232 interface or USB interface |
-
|
TA is set from EEPROM data and not modifed by RS232 or USB interface |
Interrupt select for 57KHz clock according to board usage coder/decoder:
coder
|
57K clock correspond to mono/stereo selection |
|||
decoder |
57K clock used equal to TDA7330 internal clock |
TDA7330 input select according to board usage coder/decoder:
coder
|
TDA7330 input is connected to 4066 output |
|||
decoder |
TDA7330 input is connected to RDS decoder input |
USB LED Red :
The LED is ON when PC is connected
+5V power supply connector
1
|
2
|
GND
|
+5V
|
Diagram and board are available in a zip file format KiCAD in Download section:
Diagram
|
Board
|
ATmega32 microcontroler configuration with PonyProg :
RDS parameters ares stored in EEPROM for board initialise at power on.
This parameters can be dynamicaly modified in RAM by using interfaces (RS232,USB).
19200 Bds, 8bits données, 2 bits stop, sans parité
SPB490 standard "RDS Universal Encoder Communication Protocol"is not supported by present software version.
At power on, a menu include command available list is displayed, as well as parameters stored in EEPROM :
During first connect to PC, select board driver : file :
USB_RDS_Coder_PC_soft_and_driver/DriverWindows RDS coder/RDS_coder.inf from
zip file: USB_RDS_Coder_PC_soft_and_driver.zip
The RdsUsb.exe program allow to modify all RDS parameters in EEPROM or RAM.
Complete description of these parameters is available in file : RdsUsbUserManual.pdf
Result with a PC tuner FM RDS displaying radiotext message :
Limits, knowns problems and versions
Hardware:
.
A ~2.2 MOhms resistor is necessary with TDA7330 crystal. This resistor is missing in shematic, so you must adding it in bottom side as show in the picture |
![]() |
The 1.2 software version manage biphase coder with software process. It is necessary to replace U1(4013) and U3(74HC86) by a strap between pin 2 and 6 of U3 (74HC86) as show in the picture |
Software:
SPI interface is not yet implemented in present version.
Only 0A and 2A groups are implemented in present version.
1.0 version use a material biphase
coder and require U1(4013) and U3(74HC86).
The RDS_SOFT_BIPHASE constant should not be define in "RDS.h" file
RS232 and USB are implemented in this version
1.1 version is an intermediate version, replace by 1.2 version
1.2 version use a software biphase
coder and require a strap between pin 2 and 6 of U3 (74HC86) in subtitution
of U1(4013) and U3(74HC86).
RDS_SOFT_BIPHASE constant should be define to 1 in "RDS.h" file
RS232 and USB interface are implemented in this version
This board can be used for a RDS decoder, but at this time there is no available software, (perhaps in few month, time necessary for me to write code ...)
Development tools :
ATmega32 software was developped with WinAVR and PSPad editor.
RdsUsb windows software was developped with DevCpp, windows was edited with : RadASM
Software:
|
|
USB RDS coder ATmega32 : sources and binaries files |
USB_RDS_Coder_ATmega32.zip |
USB RDS coder PC windows sources and binary file |
USB_RDS_Coder_PC_soft_and_driver.zip |
Hardware:
|
|
KiCAD files for RDS_ATmega32 board : | |
Complete folder (diagram + PCB ) RDS_ATmega32 in PDF format : | RDS_ATmega32_Diagram_pcb.pdf |