http://jp79dsfr.free.fr/Photo-Tech/ v 1.00 - ©JP 24/04/2017
CCoonnvveerrttiisssseeuurrss eett aacccceessssooiirreess
ppoouurr AArrdduuiinnoo
(( ))
Brouillon
Table des matières
Convertisseurs 1
Adaptateurs RS232 1
Rappels liaison RS232 1
Pont USB RS232 TTL - FT232 2
Schéma carte 2
Signaux de sortie 2
Programmation FT232R et GPIO 3
Connexion FT232 - Arduino mini 4
Liens et documents 4
Adaptateur RS232 TTL - V28 5
Connexion périphériques 5
Adaptateurs I²C 7
Driver afficheur alphanumérique LCD - Hitachi 44780 7
Accessoires 10
Combiné Voltmètre-Ampèremètre USB 10
Conception interne 10
Révisions document 11
CP-E4 Shoot Page 1
Convertisseurs
Adaptateurs RS232
Rappels liaison RS232
Une liaison série permet la communication unidirectionnelle par un seul fil entre deux
composant informatiques, cette liaison est doublée pour permettre un dialogue bidirectionnel et
peut être associée a des signaux complémentaires de contrôle de la communication.
Le protocole RS232 d'un point de vue logique obéit aux règles de base suivantes :
• Le niveau repos de la transmission est le niveau logique haut.
• Les données sont envoyées bit de poids faible en premier, par bloc d'une longueur pouvant varier de 4
a 8bits.
• Un bit de départ de niveau zéro est toujours inséré en début d'émission d'un bloc de données (octet)
permettant de synchroniser l'émetteur et le récepteur.
• Un ou plusieurs bits d'arrêt de niveau haut sont utilisés a la fin du bloc de données pour les séparer.
• Un bit facultatif de parité calculé sur les bits de donnée uniquement peut être inséré avant les bits
d'arrêt.
• La tolérance entre la fréquence d'horloge de l'émetteur et celle du récepteur est d'environ +/- 7%.
Repos
S
t 1 0 0 1 1 0 0
S
p
S
t P 0 0 1 1 1 0 0 1
S
p
S
p St P 0 1 .. ..
1 start, 7bits = 0x19 = b0011001 ,1 stop 1 start, parité, 8bits = 0x9C, 2 stop + octet suivant
D'un point de vue électrique une liaison série au format RS232 v28 utilise des signaux
d'amplitude +/-25v (couramment +/-12v sur Pc) a faible impédance pour garantir de grandes
distances de transmission. Le niveau haut correspondant alors a une tension négative comprise entre
-3 et -25v C'est ce type de liaison employant des connecteurs SubD 9 ou 25 points qui était
généralisée sur les ordinateurs post port USB et qui est encore largement employée en milieu
industriel.
Le format Rs232 TTL employée par les cartes Arduino utilise les niveaux standards L=0v, H=Vcc.
Les deux formats ne sont évidement pas compatibles, la connexion d'un port série Atmega à une
liaison v28 pourra provoquer sa destruction !
Seuils de tension Etat Repos Niveau logique 0 Niveau logique 1
Rs232 v28 - 25v a -3v - 25v a -3v +3 a +25v
Rs 232 TTL 5v 5v <1v2 >2.4v
Rs 232 TTL 3v3 3v3 <1v >2v
CP-E4 Shoot Page 2
Pont USB RS232 TTL - FT232
Mini prix mais fait le maximum, ce petit convertisseur basé sur
un circuit intégré de la série FT2xx fabriqué par FTDI chip se trouve
a moins de 2 euros sur eBay. Il propose sous la plupart des Os
existants (Win10 et inferieur, Linux et Osx) un port série virtuel
accessible par un port Usb fonctionnant disposant de la totalité des
signaux de contrôle des protocoles RS232 TTL, 422 et 485. La vitesse de transmission est assurée sur
la plage 300 à 3Mbits/s.
La particularité de ce circuit est de séparer la tension d'alimentation du circuit (3v3 a 5v) et la
tension de référence des buffers de la partie sérielle, le port série peut donc fonctionner sous des
tensions de 1v8 a 5v. Le module proposé ici dispose d'un cavalier permettant une sélection 3v3 ou
5v. Pour un fonctionnement du module sous d'autres tensions (1v8 par ex) le cavalier devra être
enlevé et la tension de référence injectée sur la broche du milieu (VccIO).
Si cette tension de référence sortie sur la broche Vcc permet d'alimenter un montage
périphérique, ce sera dans des limites restreintes, le régulateur 3v3 interne du FT232R ne permet
qu'un courant de sortie de 50mA, la configuration d'alimentation du port Usb ne permet elle qu'un
courant de 100ma en 5v. Si ces limites sont suffisantes pour programmer une carte Arduino standard
l'alimentation d'un module Wifi ESP8266 émettant à pleine puissance posera problème.
Cinq ports GPIO programmables proposent plusieurs fonctions permettant entre autre de piloter
les Leds de signalisation du trafic, la sélection du mode de fonctionnement du port série RS232/485
ou la mise en mode veille.
Schéma carte
Signaux de sortie
Tous les signaux sont au niveau logique haut VccIO au repos, un niveau logique 0 est assuré pour
une tension d'entrée inferieure a 1v. La connexion a une liaison Rs232 standard -12/+12v nécessitera
l'utilisation d'un convertisseur type Max3232.
Broche Pin IC Sens Signaux RS232
RxD RxD In Données transmission série
ex : 1bit start + 0x73 (01110011) TxD TxD Out
DTR DTR# Out Data terminal ready control, utilisé pour reseter le processeur ATmega arduino
CTS CTS# In Clear to Send, signal de contrôle d'échange de données (handshake)
RTS RTS# Out Request to send control output, " "
RSD DSR# In Data set ready control input, " "
DCD DCD# In Data carrier detect control input " "
RI RI# In Ring indicator, si configuré permet de sortir le module de veille
CP-E4 Shoot Page 3
Broche Pin IC Sens Signaux de contrôle
TxL Gpio 0 Out Led émission de données , actif niveau bas
RxL Gpio 1 Out Led réception de données, " "
Ten Gpio 2 In TxDEn : Sélection mode de transmission Rs485 si egal a VccIO
PwrEn Gpio 3 Out Niveau 0 apres initialisation du driver Usb, VccIO en veille ou Usb inactif
Sleep Gpio 4 Out Niveau 0 en mode veille initiée par le port USB
Programmation FT232R et GPIO
Le circuit intégré FT232R est entièrement paramétrable a partir de son port USB a l'aide des
logiciels MProg ou FT_Prog édités par le constructeur, cette possibilité peut être restreinte sur
certaines versions "clones" détectées par le logiciel, l'écriture dans l'EEprom etant alors désactivée.
Ces deux logiciels fonctionnent en mode stand-alone portable sous Windows, FT_Prog plus récent
nécessite que la version 4 de Ms .Net framework soit installée.
La capture d'écran ci-dessous montre les options disponibles pour les FT232R avec l'ancienne
version du logiciel Mprog. FT_Prog n'offre pas de possibilité supplémentaires, est un plus souple
d'emploi mais est moins représentatif pour ce document les options étant reparties sur plusieurs
onglets.
La commande Scan du menu Device permet de détecter et d'énumérer les circuits connectés aux
ports Usb de l'ordinateur. La lecture de l'eeprom est effectuée par la commande Tools/Read avec un
affichage en mode brut, la commande Read and Parse du même menu décode ces informations en
fonction de la référence du circuit détecté sous forme explicite.
Les différents paramètres sont regroupés en sections correspondant aux blocs logiques du circuit
intégré, l'intérêt de leur modification est plus ou moins marqué selon la fonction de ces blocs.
CP-E4 Shoot Page 4
Configuration USB
Si le changement des paramètres du port Usb n'a pas un gros intérêt et peut gêner la détection
du matériel et l'installation automatique du driver, la déclaration du courant de limitation du port
Usb peut éventuellement permettre de passer outre le seuil de 100mA pour un périphérique
autoalimenté en 5v par le convertisseur et un peu gourmand.
RS232 signals
L'inversion des nivaux de sortie des signaux RS232 peut éviter l'utilisation de composants
suplementaires dans le cas de la mise en place de buffers a faible impédance ou des sorties a
collecteur ouvert.
I/O Controls
La aussi soit pour des raisons de câblage et d'intégration du module convertisseur, soit pour des
raisons fonctionnelles il peut être souhaitable de modifier l'attribution des fonctions des GPIO du
FT232, les principales options sont entre autre :
• TxDEn : Passage en mode transmission RS485.
• PwrEn : Sortie au niveau bas après fin de l'énumération et la configuration du driver USB,
permet éventuellement d'alimenter par l'intermédiaire d'un mosP le périphérique relié au
port com.
• TxLed : Sortie mise au niveau bas quelques instants à chaque transmission du port com.
• RxLed : Idem précédent en réception.
• TxRxLed : Combinaison par ou logique des deux précédents.
• Sleep : Sortie mise au niveau bas en mode veille USB.
• Clkxx : Sortie horloge de synchronisation du FT232R, xx = 6, 12, 24 ou 48Mhz.
Connexion FT232 - Arduino mini
La répartition des broches du connecteur situé en bout du module convertisseur est réalisée au
standard utilisé par les cartes Arduino mini pro. L'inversion de Rx Tx étant déjà effectué la symétrie
des connecteurs permet de relier directement les deux cartes soit par un câble, soit de manière plus
directe avec un petit adaptateur constitué de deux connecteurs au pas de 2.5mm femelle soudés
entre eux. Ceux-ci étant généralement vendus par blocs d'une longueur de 10 broches une amorce
au cutter au niveau d'une de celle-ci permet de diviser ces blocs en deux section de 6 et 3 points à
l'aide de deux pinces.
Convertisseur FT 232 Adaptateur Fem-Fem. Arduino pro mini Connecteur restant
NB : Attention avec les cartes Arduino pro mini clones basés sur un ATmega 328 comme celle
représentée sur la photo ci dessus a sélectionner dans l'IDE le type de carte Nano et non pas Pro mini
pour programmer la carte sans erreurs.
Liens et documents
Drivers Windows, OsX, Linux : http://www.ftdichip.com/FTDrivers.htm
Datasheet FT232 : http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232R.pdf
AN_124 - Guide programmation : http://www.ftdichip.com/Support/Documents/AppNotes/AN_124_User_Guide_For_FT_PROG.pdf
CP-E4 Shoot Page 5
Adaptateur RS232 TTL - V28
La totalité des liaisons série en provenance d'un microcontrôleur
utilisant des nivaux de tension TTL un convertisseur est nécessaire pour se
connecter a un élément distant au standard v28, ou pour augmenter la
distance de transmission, seul ce dernier format permettant des liaisons de
plusieurs mètres (une centaine de mètres est possible a 9600 bauds).
De nombreux modules à base de Max3232 (version basse consommation du
Max232) se trouvent sur le net, soit en version complète avec connecteur subD 9
points, soit en version minimale ne conprenant que le circuit intégré.
Le Max3232 est constitué de pompes de charge permettant la génération des
tensions positives et négatives nécessaire au signaux v28 et d'un couple de buffer bidirectionnel
permettant de gérer deux liaisons série Rx-Tx ou deux signaux de contrôle complémentaires. Les
modules chinois trouvés couramment n'utilisent que deux de ces buffers ce qui est suffisant pour
une liaison asynchrone 3 points. Aucune isolation galvanique entre les parties V28 et TTL n'est
assurée par ce circuit, d'autres modèles plus professionnels existent a cet effet.
La tension d'alimentation du circuit peut varier entre 3v3 et 5v avec un courant au repos
inferieur à 2mA ce qui permet de l'utiliser avec la totalité des processeurs Atmega ou l'adaptateur
FT232 décrit précédemment. Le debit maximum theorique de 1Mbs est suffisant pour la majorité des
cas, la longueur de cablage limitant de toute facon cette valeur.
Schéma module
Comme pour toute liaison série un test de la configuration peut être effectué en boucle locale en
reliant les broches 2 et 3 de la subD, un écho de toute transmission est alors renvoyé au
microcontrôleur.
Connexion périphériques
Du fait du choix d'une prise subD femelle en mode DCE (esclave récepteur) la connexion a un
ancien ordinateur muni de sortie serie s'effectuera par un câble male femelle droit, a contrario
l'utilisation de ces modules pour piloter un périphérique devra être réalisée par un câble male-male
avec les broches Tx/Rx croisées.
CP-E4 Shoot Page 6
Périphérique : Modem, Automate,
variateur de vitesse ….
DTE : Ordinateur, PC ….
Prise DCE male
CP-E4 Shoot Page 7
Adaptateurs I²C
Buffers 8 ports E/S
Basés sur un PCF8574 ces petit modules existent en deux formes
couramment distribuées par les fournisseurs chinois se différentiant
uniquement par leur système de codage d'adressage (l'un par
interrupteurs dip switch, l'autre par cavaliers) et par la présence d'un
second connecteur permettant un empilement des modules sur le modèle
bleu. L'ordre d'attribution des ports sur les connecteurs de liaison reste identique.
Ports d'entrée sortie
Le PCF8574 dispos de ports E/S dits pseudo bidirectionnels, disposant d'un fonctionnement un
peu particulier. En se reportant au schéma de principe ci-dessous, trois états peuvent être distingués
en fonction du niveau logique du port.
• Etat bas : T3 est actif, le courant de sortie maximal d'un charge connectée a Vcc ne doit
pas dépasser 25mA (10mA typ), l'utilisation du port en entrée Haut n'est pas possible
sans résistance de limitation.
• Etat haut : T2 est actif, le courant de sortie maximal est géré par le générateur de
courant constant et ne peut dépasser 100µA environ. L'utilisation du port en entrée est
possible sans limitations.
• Transition bas/haut : Lors de la validation du registre de sortie, T1 est actif pendant 4 a
5µs, le courant de sortie n'est limité que par la résistance de charge connectée a la
masse et peut monter au dessus de 1mA.
La connexion d'une charge consommatrice de courant comme une Led devra donc être réalisée
impérativement en mode drain ouvert avec le commun à Vcc.
Sortie Int
La sortie /Int permet est normalement prévue pour être connectée a une interruption
microcontrôleur et lui informer d'un changement d'état d'un des ports E/S. Pour ce une comparaison
entre les 8bits E/S et une valeur mémorisée lors d'une lecture précédente via le bus I²C, une
différence entre ces deux registres provoque la mise a l'etat bas de la sortie /Int. Cela peut eviter un
polling régulier du ou des circuits 8574 et un gain de temps lors de la réaction a un événement.
Port x
Lecture I2c
/Int
CP-E4 Shoot Page 8
Driver afficheur alphanumérique LCD - Hitachi 44780
Petit module permettant de commander tout affichage LCD
disposant d'un connecteur au standard 44780 à partir d'une liaison I2c.
Cette solution sur des cartes disposant de peu d'entrées sorties permet
d'économiser cinq ports digitaux par rapport à un shield LCD classique.
Le brochage du connecteur de sortie est prévu pour s'adapter a tout afficheur doté d'un retro
éclairage, la liaison avec le LCD pourra être effectués soit a l'aide d'un connecteur femelle, soit en
soudant directement les broches males au pas de 2.54 mm directement. Dans ce dernier cas
attention aux pattes métallique du cadre de maintient du LCD pouvant entrer en contact avec
l'adaptateur.
LCD nu avec connecteur fem. LCD I2c
Basé sur un PCF8574 le module peut être alimenté en 3v3 ou 5v, un cavalier en extrémité de
module permet de désactiver le retro-éclairage du LCD. L'autre extrémité reçoit un connecteur male
4 points avec l'alimentation et le bus I2c disposé de façon standard.
SDA (Data) SCL (Horloge)
Carte Uno Analog4 Analog5
Carte Mega, Due Digital20 Digital21
Carte ProMini A4 A5
Carte Leonardo Digital2 Digital3
Carte ESP8266 D4 / D14 D3 / D15
La sélection de l'adressage I2c est effectuée par ponts à souder, la bibliothèque LCD-I2c utilisant
uniquement l'adresse globale sans tenir
compte du bit0 de selection R/W les valeurs
à déclarer en fonction des ponts soudés
seront celles du tableau ci-contre, l'adresse
0x27 est celle d'origine par défaut.
L'afficheur sera commandé par la bibliothèque LiquidCrystal-I2c d'une manière similaire à la
bibliothèque LCD standard (Voir le document dédié aux afficheurs Arduino).
Schéma adaptateur
Ponts A2 - A1 - A0 Adresse hex Ponts A2 - A1 - A0 Adresse hex
111 27 011 23
110 26 010 22
101 25 001 21
100 24 000 20
CP-E4 Shoot Page 10
Accessoires
Combiné Voltmètre-Ampèremètre USB
Strictement inutile donc strictement indispensable disait le
philosophe, ce petit combiné voltmètre ampèremètre peut rentrer dans
ce cas de figure. S'il ne permettra pas de visualiser des impacts et pointes
de courant provoquant un plantage du périphérique connecté il pourra
aider à diagnostiquer un problème de surconsommation et de baisse de
la tension fournie par le port USB. Vendu sous la dénomination USB charger Doctor a des tarifs
variant entre 2.5 et 10€ ce petit élément existe soit avec un connecteur male fixe comme sur
l'exemple proposé, soit un connecteur relié par un câble souple de quelques centimètres. Cette
seconde solution est sans doute a préférer, la fenêtre de lecture pouvant être invisible sur certains
connecteurs d'ordinateurs inversés, ou le branchement impossible du fait de l'épaisseur du boitier.
Si la présence de deux connecteurs de sortie USB permet de mesurer le courant de deux
périphériques simultanément ne réaliser cette manipulation qu'avec des modèles passifs leurs
signaux data + et - étant alors directement reliés.
Si la précision de la mesure n'est pas exceptionnelle elle reste tout à fait suffisante pour la
majorité des cas. Ne pas oublier que la présence du shunt de mesure d'intensité influe sur la tension
de sortie et augmente l'erreur de sa mesure proportionnellement au courant consommé.
Tension affichée Ue réelle U Sortie Erreur UAff / Us
Is = 0 5.17v 5.12v 5.12v 1%
Is = 500mA 4.96v 4.91v 4.88v 1.5%
Is = 900mA 4.77v 4.76v 4.71v 1.2%
La mesure d'intensité étant réalisée par la mesure de tension dans une résistance shunt une
légère différence de tension va exister entre les 0V et la masse châssis de la source Usb et du
périphérique. Des retours de courant et des erreurs de mesure sont donc à prévoir si ces masses sont
mises en contact soit par l'intermédiaire des châssis ou d'autres câbles de liaison.
Conception interne
Peu a dire, la gestion de la mesure est assurée par un petit circuit intégré spécialisé, la qualité de
fabrication est au standard grand public, ni plus, ni moins, il y a largement pire.
Top Related