Site de G. Laroche |
Carte
codeur RDS USB RS232 ATmega32
|
Sommaire
Limitation, problèmes connus et versions
Description et schéma de la carte
Cette carte est un codeur RDS utilisant un
microcontroleur ATMEL AVR ATmega32.
Cette carte peut être piloté par une liaison RS232, une interface
USB, ou SPI.
L'information TA est visualisée
par une LED et peut être commandé par :
- une entrée hardware
- RS232
- USB
- SPI (non implémenté actuellement )
Une LED Activité change d'état à chaque génération d'un groupe RDS .
Pour une utilisation dans le mode stéréo, cette carte nécessite une horloge 57KHz en phase avec le signal pilote 19KHz.
Survolé l'image ci dessous pour obtenir des information sur la carte (connecteur, Led, réglage...)
Connecteur RS232 :
1 | GND |
2 | TX |
3 | RX |
Connecteur ISP pour programmer le microcontroleur ATmega32
MOSI
|
1
|
2
|
+5V |
Not Used
|
3
|
4
|
GND |
RESET
|
5
|
6
|
GND |
SCK
|
7
|
8
|
GND |
MISO
|
9
|
10
|
GND |
TA LED Jaune (Traffic Announcement) :
La LED est allumée lorsque l'information TA est positionnée à "1"
Activity LED Verte :
La LED change d'état à chaque génération d'un groupe RDS
Connecteur Entrée (uniquement pour une utilisation de la carte en décodeur RDS)
1
|
GND |
2
|
RDS Decoder Input |
Connecteur Sortie RDS : Un condensateur de liaison est nécessaire en sortie de cette carte.
1
|
GND |
2
|
RDS Coder Output |
1
|
GND |
2
|
TA Input (active on low level) |
L'information TA est positionnée à "1" SI au moins une des conditions suivantes est remplie :
-
|
L'entrée TA est positionnée à "0" |
-
|
TA est commandée depuis les interfaces RS232 ou USB |
-
|
TA est postionnée par defaut depuis les données EEPROM et n'a pas été modifié par l'interface RS232 ou USB |
Selection origine de l'interruption pour l'horloge 57KHz selon l'utilisation de la carte codeur/décodeur:
codeur
|
L'horloge 57K est déterminée par la sélection mono/stéréo |
|||
décodeur |
L'horloge 57K est l'horloge provenant du TDA7330 |
Selection entrée du TDA7330 selon l'utilisation de la carte codeur/décodeur:
codeur
|
L'entré du TDA7330 est connectée à la sortie du 4066 |
|||
décodeur |
L'entré du TDA7330 est connectée à l'entrée decodeur RDS |
USB LED Rouge :
La LED est allumée lorsqu'un PC est connecté
Connecteur alimentation +5V
1
|
2
|
GND
|
+5V
|
Le schéma et le routage du circuit imprimé sont disponibles dans le fichier zip au format KiCAD à la rubrique Download:
schéma
|
circuit imprimé
|
Configuration du microcontrôleur ATmega32 avec PonyProg :
.Les paramètres RDS sont mémorisés en EEPROM pour l'initialisation de la carte à la mise sous tension.
Ces paramètres peuvent ensuite être modifiés dynamiquement en RAM via les interfaces (RS232,USB).
19200 Bds, 8bits données, 2 bits stop, sans parité
Le standard SPB490 "RDS Universal Encoder Communication Protocol" n'est pas supporté par les versions actuelles du logiciel.
A la mise sous tension un menu contenant la liste des commandes disponibles est affiché, ainsi que les paramètres mémorisés en EEPROM:
Lors de la première connexion au PC, sélectionner le driver
de la carte : fichier :
USB_RDS_Coder_PC_soft_and_driver/DriverWindows RDS coder/RDS_coder.inf du
fichier zip : USB_RDS_Coder_PC_soft_and_driver.zip
Le programme RdsUsb.exe permet de modifier tous les paramètres RDS en EEPROM ou en RAM.
La description complète de ces paramètres est disponible dans le fichier : RdsUsbUserManual.pdf
Résultat obtenu sur un récepteur FM RDS pour PC affichant le message radiotext :
Limitation, Problèmes connus et Versions
Hardware:
.
Une résistance de ~2.2 MOhms est nécessaire au niveau du quartz du TDA7330. Cette résistance manque sur le schéma, il faut donc l'ajouter coté soudure comme indiqué par cette photo |
![]() |
La version 1.2 du logiciel gére le codeur biphase par traitement logiciel, il est nécessaire de retirer U1(4013) et U3(74HC86) et de les remplacer par un shunt entre les bornes 2 et 6 de U3 (74HC86) comme indiqué par cette photo |
Software:
.L'interface SPI n'est pas encore implémentée dans les versions actuelles.
Uniquement la génération des groupes 0A et 2A sont implémentés dans les versions actuelles.
La Version 1.0 utilise un codeur
biphase matériel et nécessite les circuits U1(4013) et U3(74HC86).
La constante RDS_SOFT_BIPHASE ne doit pas être définie dans le
fichier "RDS.h"
Les interfaces RS232 et USB sont implémentés dans cette version
La version 1.1 est une version intermédiaire, remplacée par la version 1.2
La Version 1.2 utilise un codeur
biphase logiciel et nécessite un shunt entre les bornes 2 et 6 de U3
(74HC86) en retirant les circuits U1(4013) et U3(74HC86).
La constante RDS_SOFT_BIPHASE doit pas être définie à
1 dans le fichier "RDS.h"
Les interfaces RS232 et USB sont implémentés dans cette version
Cette carte peut être utilisée en décodeur RDS, mais
il n'y a pas encore de logiciel disponible.
(peut être dans quelques mois, temps nécessaire pour moi pour
écrire le code...)
Environnement de développement :
Le programme de l'ATmega32 a été développé avec WinAVR et l'éditeur PSPad
Le programme windows a été développé avec DevCpp, les fenêtres ont été éditées avec le logiciel : RadASM
Software:
|
|
USB RDS codeur ATmega32 : fichiers sources et binaires |
USB_RDS_Coder_ATmega32.zip |
USB RDS codeur PC windows fichiers sources et binaire |
USB_RDS_Coder_PC_soft_and_driver.zip |
Hardware:
|
|
Fichiers Carte RDS_ATmega32 au format KiCAD: | |
Dossier complet (schéma + PCB ) RDS_ATmega32 au format PDF : | RDS_ATmega32_Diagram_pcb.pdf |