Le circuit
LPC32 est un microcontrôleur OTP Philips 14 broches (P87LPC760BN) programmé pour
gérer une transmission radio à codage PWM à travers un
bus I2C.
Il
s'alimente avec une tension continue comprise entre 3 et 5V.
Sa base de temps
se contente du circuit RC interne,de même, le reset est effectué sans
composant
externe.La fonction décodage PWM (réception) se synchronise sur l'emetteur à
chaque envoi de trame , la possible dérive du timing est ainsi prise en compte.
La transmission
radio s'effectue en half duplex, 8 octets+1 octet CRC sont envoyés/reçus
vers/de un autre LPC32.
Le LPC32 ne traitant que le niveau 1 de la transmission,
les éventuels éléments de protocole sont à intégrer
par l'utilisateur (système d'adressage)
dans les 8 octets transportés.
Le circuit peut toutefois être utilisé en émission ou
réception
uniquement dans le cas d'une transmission unidirectionnelle.Dans ce cas,
seul l'émetteur
ou le récepteur radio sera raccordé
au circuit.
Le schéma présenté montre toute les possibilités
(transmission bidirectionnelle,switch d'antenne et gestion du Power down
de l'émetteur).
1.Emission
Le master
I2C envoie 8 octets (obligatoirement 8 octets) avec le bit0 de l'adresseI2C=0
Le LPC32 acquitte les 8 octets,calcule le CRC et procéde à la
transmission radio de 9 octets (8 octets data + 1 octet CRC).
Le début de la transmission radio est signifiée au master par le signal RFBusy
qui passe à 0,
ce
niveau logique demeurant à l'état bas tant que la transmission n'est pas terminée.
La transmission radio s'effectue en codage PWM,une séquence de préambule
est envoyée
au préalable afin de permettre au récepteur de se synchroniser
malgré le bruit ambiant.
Le temps total d'émission d'une trame radio est de 98,4 mS.
La led raccordée sur la broche LedEm s'éclaire pendant l'émission
de la trame.
2.Réception
La
réception
d'une trame radio est marquée par le signal RFBuzy qui prend la valeur
0 jusqu'à la
fin de la trame. La réception
d'une trame complète et sans erreur provoque le passage à 0
du signal INT.
Il appartient au master I2C de procéder à la lecture des 8 octets reçus
au plus tôt.
La fin de la lecture I2C des 8 octets provoque la remontée
de INT.
La réception d'une trame complète avec une erreur de CRC provoque uniquement
le passage à 0 du signal ERR.Ce signal est remis à 1 dès qu'une trame est
reçue complète et sans erreur de CRC.La gestion de ce signal est facultative.
Le circuit permet de gérer un switch d'antenne grâce à la
sortie Com.Ce switch est bien sûr facultatif.
Le circuit permet également de gérer le signal Power down de l'émetteur (s'il
en est pourvu).
L'utilisation de cette sortie est également facultative.
La led raccordée sur la brochee LedRec s'éclaire quand le LPC32
interprête des informations reçues par le récepteur.
![]() |
Adressage du LPC32 en WR avec adresse I2C 70h SCL |
![]() |
Adressage du LPC32 en RD avec adresse I2C 71h SCL |
Important:
Le LPC32 comporte un dispositif de stretching
interne qui tire le signal SCL à l'état bas en cas d'occupation
interne du circuit.
C'est le cas dans le graphique précédent pour le bit 6 de SCL de
l'adresse (2° pulse de syncro en partant de la gauche après le start).On
constate que l'état bas entre le premier et le deuxième pulse est
plus large que les états bas entre les autres pulses).
Voir spécifications du bus I2C page 13 8.3
Conséquence
pour la routine master I2C qui envoie l'octet sur le bus:
La routine master qui vient de fixer SCL à l'état
haut doit venir tester si SCL est effectivement à l'état haut,attendre
si nécessaire que cette condition soit vérifiée et fixer
l'état haut à 5 µS max avec SCL=1 (100khz).
Toute routine I2C master correctement écrite doit fonctionner ainsi afin
de garantir la compatibilité avec tous les circuits I2C et respecter les
spécifications I2C.
Schéma format PDF | ![]() |
Routine I2C maître en assembleur pour 8051 | I2C_A51.TXT |
Fichier INC associé pour 8051 de base | 8051.INC |
Routines en C pour utiliser le LPC32 | LPC32_C.TXT |