VO 27/10/2014
Last update 27/05/2018

RS232 et Micro Controleur Unit (M.C.U.)

- Interface Uart TTL 5V / RS232 avec MAX232
-
Interface Uart TTL / RS232 avec DS275 (sans condensateurs!)
-
Interface Uart TTL / RS232 avec 2 transistors (PNP +NPN)
-
Interface Uart 3,3V / RS232 avec MAX3222
-
ATTENTION effet miroir Pins connecteurs DB9 M ou F
-
Interface USB / RS232 DB9M avec TU-S9
-
Gestion signal CTS interface MAX232
-
Interface Cable Prolific USB - niveaux TTL 5V 4 pins (Driver)
-
Interface Cable USB - niveaux LTTL 3,3V 6 pins (Driver)
-
Interface Module CHG340G HW-597 USB - niveaux LTTL 3,3V
-
Terminal via Pickit2 pins ICSP , SANS interface TTL/RS232
-
Interface Uart TTL / Ethernet via XPORT
-
Chronogramme UART
-
Terminal VBRAY et usage de la fonction GRAPH
- Lien sur RS232 -> feuille Excel
-
UART3 Software (MikroC) 38400 Bauds sur une sortie quelconque et Rx sur RB0



Interface RS232 avec circuit MAX232

un coup de google pour avoir moult exemples ..
J'ai renoncé à l'utiliser , car :
-encombrant (DIP 14)
-assez cher,
-necessite des condensateurs..s
Schematic connections

images/MAX232_Pinout.jpg images/t_MAX232_MS_Pinout.gif
Le classique Max232 .. Attention , Avec Variantes ! Mai 1986 docu Micro systeme ..30 ans deja !

Attention aux variantes , aux ploarites et valeurs de condensateurs
Docu en pdf du MAX232 de Micro-Systeme



Montage particulier pour gerer le protocole RTS/CTS

2 lignes supplementaires (Hardware) de commande sont necessaires
Le Client peut gerer le flux de transfert à sa convenance en gerant ces 2 lignes.
On traitera ici que le cas CTS .
Si le MCU , client du Terminal Host PC , veut interdire,stoper l'envoi de data , il met cette ligne au niveau 1
CTS=1 bloque l'envoi Terlminal vers le MCU
donc CTS=0 l'autorise .
Le MCU peut etre alors sûr d'etre PRÊT pour receveoir le flot de datas.
On peut gerer ainsi l'envoi d'un gros fichier de donnéees , par petit paquets , digérés progressivement par le MCU.
Celui ci n'ayant pas assez de RAM buffer pour stocker l'integralité du fichier .
La ligne CTS étant au niveau TTL ou LTTL, ilfaut un convertisseur d eniveau : Le MAX232 (TTL) ou MAX3232 (LTTL)
For heureusement le MAX232 a 2 canaux de dialogue . le 1er Canal , classique pour TX et RX .
Le 2em canal servira pour RTS et CTS.




../_AT89C2051/images/Interface_TTL_RS232_ICL232.jpg

La liaison , sortie MAX232 au niveau RS232 (+-12V) etant sur une DB9 F,
on peut utiliser un cordon convertisseur RS232 DB9
TREND TUS9 vers USB

MAX232 (recupeé sur ma carte DDS 16F628) -> TREND TUS9
pin 9 RC5 RTS <--- 3 DB9F
pin 10 RC4 CTS ---> 8 DB9F
pin 11 RC6 TX ---> 2 DB9F
pin 12 RC7 RX <--- 3 DB9F
Gnd ----------------------- 5 DB9F

Ou alors un cordon FT232R / USB comportant toutes les lignes : avec 6 pins
Un cordon Prolific 4 Pin ne conviendra pas !
example de cordon :



Bien verifier si le cordon est en TTL 5V ou LTTL 3,3V !

Cordon FT232R LTTL 3,3V / USB
1 back GND
2 blue CTS
3 Magenta VCC 5V ???
4 Vert Clavier <--- data TXD
5 Blanc data ---> Ecran RX
6 Jaune RTS

Liens sur application , avec gestion CTS
Programmateur AT89C2051
Chargement d'un fichier de 15616 données dans une 24LC256





Interface RS232 avec circuit DALLAS DS275

Super simple et pratique !
mais Tres Cher ! et difficile à trouver maintenant en DIP8
fonctionne tres bien avec Vieux PC et RS232 haut niveaux (+-12V) et aussi avec PC Portables.
Attention : Piege à ion , si inversion Emission Reception on reste bouclé.
Donc le test de ligne en reliant 1 et 3 n'est pas forcement concluant, lors d'une recherche de probleme.
Bien verifier la concordance des pins SEPAREMENT, lien emission, puis lien reception..

images/DS275a.jpg
datasheet ici




Interface RS232 avec 2 transistors

Le moins cher ! car le plus souvant à base de recup. de composants
Remplace le DS275 dans mes applis...
Testé OK jusqu'à 56K bauds .(en mode 3 fils !)
avec une Longueur entre carte et PC < 1.5M
Inconvenient : prends plus de place !

images/Interf_RS232_2T.jpg images/DS275_like_rev1a.jpg images/DS275_like_rev1.jpg
Interface TTL-RS232 simple avec 2 transistors C.I. (c) Christian BERNARD C.I.

sujet à controverse pour les puristes : : http://www.abcelectronique.com/forum/showthread.php?t=82581
Ce montage ne satisfait nullement la norme RS232 , reste à savoir s'il faut etre ou non à la norme stricte
pour fonctionner à 1 ou 2M de distance.
Circuit realisé avec 1 BC347 NPN et 1 BC558 PNP, testé OK à 19200bauds avec alim 3,3V (au lieu de 5V).
Toujours est-il qu'il fonctionne meme mieux que le module Max RPC cité ci-dessus (rappel : utilisé avec Longueur de cable <1.5M)
rev Mai 2014

images/Interface_RS232_2T_140504.jpg images/Interface_RS232_2T_140504a.jpg
Realisation circuit interface in situ



Module Interface LTTL<-> RS232 avec MAX3222

Module acheté chez MiniInTheBox (RPC)
De gros doutes de fonctionnement au fil du temps .. semble se bloquer apres plusieurs heures
lorsqu'il est alimenté en 5V ..au lieu de 3,3V
Sinon tres pratiques pour les tests

docu: MAX3232_22_41.pdf

images/MAX3222_3232_Pinout.jpg images/max232_conex.gif
MAX3222 3.0 V to 5.5V ?, Low-Power,
up to 1Mbps, True RS-232 Transceivers Using Four 0.1µF Ext.Cap
detail connection au MCU PIC

Le fameux module !
Equipé du MAX3222

../_18FxxKxx/images/t_RS232_module_3_3V_130505.jpg
lien sur module 4.59€ made in RPC module in situ

Tolerant niveaux 5V* douteux! ,si alimenté en5V, car bloquages intempestifs .. j'ai laissé tombé au profit des cables USB/TTL
sinon niveau 3,3 si alimenté en 3,3V



ATTENTION au piege , numérotation des Pins : effet MIROIR, entre DB9 Male et DB9 femelle







Interface TUS9 USB<-> RS232 DB9M

Achat d'un convertisseur USB<->RS232 dans une grande surface (19€ chez Carrouf)
Modification d'une limande de raccordement RS232 sur carte mere de PC .. on en trouve maintenant à foison!
Le DB9 Male doit etre remplacé par un DB9 Femelle, puisque le convertisseur sort sur un DB9 Male.
La nappe peut coulisser pour recuperer les 3 connections TX sur 2 , RX sur 3 et 0V sur 5.
Installer le driver (CD Trendnet TU-S9) fournit avec le convertisseur sur le PC.
Une fois le driver USB reconnu on peut le voir apparaitre en cliquant sur "COMs" sur le terminal Vbray
et se connecter dessus via la liste de selection "COM Port".
Dans mon cas il apparait comme "COM #5" , j'ai deja COM1 et COM2 en RS232 reel , et COM3 en virtual port.

images/USB_RS232_Platine_PIC_link.jpg images/USB_RS232_Pic18F252.jpg images/Terminal_Vbray_COM5.jpg
interface Trendnet TU-S9 en usage avec Terminal Vbray

Je pense que meme ce cordon ne doit pas etre aux normes strictes RS232 !




Interface Cable Prolific 2303 USB < - > TTL

pour liaison directe aux pin UART d'un PIC alimenté en 5V




PROBLEME RENCONTRE :
Mon Cordon n'est JAMAIS reconnu ! Because Hardware Problemo
c'est du made in RPC !
images/prolific_PL2303_USB_TTL_Problemo.giiimages/prolific_PL2303_USB_TTL_Problemo.gi
pont de soudure mal placé.. enlevé .. c'est OK


Verification installation Driver sur PC Windows XP et/ou WIN10
Attention au type de driver :
Probleme avec WIN10
.. recharge toujours le driver le plus rescent, il faut donc RE-ACTIVER l'ancien driver à chaque connection USB
Pas necessaire avec WIN XP





In fine , j'ai supprimé les pilotes plus rescents pour ne conserver que celui "qui va bien", version 2008
sinon à la connection prise USB, il va chercher à utiliser des pilotes rescents ,pris sur le Web lors de la 1ere connection..


../common/Prolific_USB_driver_Pilote_Win10_ASUS.gi





ATTENTION : ce cable ne convient pas pour un MCU aliménté en 3,3V
.. même s'il "tombe en marche" à partir de VCC=3,8V! expression empruntée .. voir Forum FS

On decouvre ainsi, sur quel port il faudra connecter le terminal VBRAY , ici : COM12

images/prolific_PL2303_COM12_reconnu.gif

Ou avec l'outil USBView :

images/prolific_PL2303_cordon_USB_TTL_Detect.gif


Driver 1 : PL2303_Prolific_DriverInstaller_v1_12_0.zip



Interface Cable USB 6 pins < - > LTTL 3,3V

pour liaison directe aux pin UART d'un PIC alimenté en 3,3 ou 3,6V

TTL-232R-3V3 FTDI USB To Serial Cable Assembly TTL 24 AWG ( Amazon 9,39€ ou Farnell >20€ )

../common/t_USB_FTDI_LTTL_3_3V_Connector_6_Pins.gif
UsbView :
CSR8510 A10 CSR Bluetooth Device
Périphérique Bluetooth Oui
Btcsrusb @oem16.inf
btcusb.sys
IVT Corporation 100 mA 2.00
CSR Bluetooth Device 6.0.15.63
Btusb_DDI oem16.inf
USB\VID_0A12&PID_0001\6&df2ee03&0&3
Removable, SurpriseRemovalOK

6 Pin Header Pin Assignment
Pin 1 GND Noir
Pin 2 CTS bleu input
Pin 3 VCC Rouge
ATTENTION : +5V !!!
Pin 4 TXD Vert Clavier -------------> PIC RX
Pin 5 RXD Blanc Ecran <------------ PIC TX
Pin 6 RTS jaune output
RTS, RX, TX, 5V, CTS, GND (RTS est le fil vert et GND le noir).


Une autre version de cable USB/TTL en version 6 pins (avec CTS /RTS)

nota : sur autre cordon (connecteur Rose)
USB SKU:PL2303-KZ UC494054690CN 6 Pins , meme brochage .
1 noir Gnd
2 bleu /CTS <------ sortie PIC (un zero allume CTS sur Terminal VBRAY)
3 rouge +5V
4 Vert Clavier .-----> entree RX PIC
5 Blanc ecran <------.sortie TX PIC
6 Jaune RTS -> PIC



driver 2 : PL2303_Prolific_DriverInstaller_v1180B_HXA_ XA_HXD_EA_RA_SA_TA_TB.zip




Interface (Module) USB CH340G HW-597 USB <--> LTTL 3,3V ou TTL 5V

Choix via un strap sur le connecteur 6 pins males
1 Gnd
2 RXD <---- TX MCU
3 TXD -----> RX MCU
4 3,3V
5 VCC ...........CAVALIER choix LTTL entre 4 et 5 ou pour TTL ,
ENLEVER le cavalier
6 5V

 
connectique (ici en 3V, Enlever le cavalier pour TTL 5V)  
 
driver vu par USBVIEW  

Detail driver vu par USBVIEW.exe

Le driver à installer , pour WIN XP ,Win VISTA, WIN 7 : CH34x_Install_Windows_v3_4.zip
Win 10 le reconnait sans ajouter de driver.
Decompresser le *.zip, et lancer le programme CH34x_Install_Windows_v3_4.exe qui installera le driver .

images/t_Driver_CH340_dowload_for_WIN7.gif images/t_Installation_driver_CH340G_sur_Win_XP.gif images/t_Driver_install_sur_PC_Vista_180524_OK..gif  
recuperation driver sur le web Installation sur PC WIN XP ... OK install sur PC WIN VISTA ..OK  


images/t_Test_CH340G_et_Terminal_Vbray_OK_sur_PC_XP_180524.gif images/t_Test_CH340G_et_Terminal_Vbray_OK_sur_PC_VISTA_180524.gif
Test sur PC WIN XP avec terminal VBRAY OK Test CH340G sur VISTA .avec VBRAY .OK


Cout vraiment reduit : 6.41€ pour 10 pieces port compris ! chez ALI va vite.
Nota:
ce modele n'a pas la sortie CTS disponible sur pin ( ni RTS)

Sous windows 10, gestionnaire de peripheriques, le module apparait sous COM 15




Pour tester le module, il suffit ensuite, une fois connecté à un terminal windows (VBRAY,Teraterm,RealTerm...etc..)
de relier les pins TX et RX
Tout ce qui est tapé au clavier doit apparaitre à l'ecran (ou en double si l'option Echo du terminal est activée)






Terminal UART SANS Interface RS232 !

Le Pickit2 offre la fonctionalité UART via pins ICSP!
TRES utile pour le debugging..
Exemple:
Le Pickit2 est connecté sur un 18F26K22 en liaison ICSP , pour le programmer

( transferer le fichier Hex , les bits de config et eventuellement le contenu pour l'EEPROM du PIC).
voir la docu Microchip :
PICkit2 User Guide 51553E.pdf
Heureusement le PIC18Fx6K22 contient 2 UART Hardware, choix donc sur UART2 correspondant à RB6 Tx et RB7 Rx.

images/t_Pickit2_UART_wiring_a.gif images/t_Pickit2_UART_wiring.gif
liaison Pickit2 UART <-> PIC differences ICSP mode et UART mode

 





Interface TTL <-> Ethernet

Hardware interface :
Usage d'un module XPORT-03 de Lantronix. lien sur docu Lantronix
Software interface:
Usage d'un port virtuel Ethernet - COM3
Driver software sur PC, accessible ici , pour un usage NON Professionel.

Avantage :
Le PIC s'interface directement sur les entrees RS232 du XPORT, meme en niveau TTL 5V
(pas besoin de MAX232 ou autre ..)
Le Terminal VBray peut se connecter via le port virtuel (COM3 dans mon cas)

Le PIC est alors aussi visible sur le Reseau via TELNET ou via usage de Socket.
Exemple: acces via VB6, acces via tablette ARCHOS....en WIFI ou Internet.
voir Tous le details et exemples sur : Pic_Xport.htm

Inconvenient :
il faut alimenter le XPORT en 3,5V maxi., donc regulateur LDO oblige.
Module Interface un peu cher (~45€) si on ne se limite qu'a l'usage mode RS232 transparent.

images/Xport03_RS232.jpg ../Archos43/images/Simule_PIC.jpg
Xport monté sur platine adptateur et regulateur Virtual Port et terminal Vbray

 



24/04/2015
Chronogramme UART

Test avec Terminal VBRAY , RS232 -> interface 2tr -> entree RX de UART PIC
suite echanges techniques sur FuturaScience sur ce document
Ce lien tres interressant concernant les niveaux RS232 et la logique associée
L'oscillo Tektronix TDS 2002C est en mode RUN / Single pour ne capturer qu'un seul caractere
Sur VBRAY , dans le champ dédié à l'emission : #0134 .. click sur touche -> Send



décorticage du signal VO ..donnerait 0x61
Le niveau repos sur l'entree PIC RX UART est toujours à 1, ( correspond au -12V RS232)
Le bit START est toujours à Zero
Le Bit STOP est toujours à 1
Le bit Parité depend du choix Even et ODD , et surtout du nb d'etat 1 dans le byte transmis.

images/UART_signal_VO.jpg images/UART_0X61.jpg
Signal original RS232 levels Renversement signal pour etat logic 1 en haut TTL levels



Réponse = 0x61 ( pas evident au depart!)
Attention à la correspondance niveaux RS232 et etat logique
Attention aussi au fait que c'est le LSB bit ( à gauche) ..puis les autres jusqu'au MSB bit
donc de pois respectif 1,2,4,8,16,32,64,128

Test fait dans 2 cas de figure avec code ascii 0x86,
avec 19200,8,1,E puis 19200,8,1,O
Signaux TTL sur entree RX de l'UART PIC.

images/UART_0X86_Odd.jpg images/UART_0X86_Even.jpg
code 0x86 (ou 134 decimal) parite Even (paire) code 0x86 parité Odd (impaire)





Terminal VBRAY et fonction GRAPH

l'Application terminal VBRAY comporte des outils interessants
- 12 Touches de fonctions ; sous lesquelles on peut mettre des commandes ou Macro
- Possibilité d'utiliser des fichiers de commandes
- Usage de Script en Langage proche du Pascal
- Graphiques representant jusqu'à 4 donnees recues
- envoi possible de valeur hexadecimales
- affichage Ascii ou Hexadecimal ou les 2
- Horodatage de chaque ligne ou apparait un Carriage return (à+-50mS pres)
- Action specifique sur caractere reçu : Form Feed= CLS=12 => efface l'ecran

images/t_Capture_Vbray_terminal.gif
Chargement de Vbray terminal

Exemple : Usage de GRAPH Vbray pour visualiser l'effet d'un Filtrage exponentiel
mesure ADC brute et mesure filtree
L'axe des X represente l'indice Nieme de la valeur reçue
La case Eenable est cochée
La case CSV graph est cochée
envoi via UART du PIC des donnees suivantes
M0 = mesure ADC 0 à 1023
TFK = unsigned int valeur filtree temperature *100 , pour maxi=50000 ( soit 500,00°C) Maxima avec LM35DZ

images/t_Vbray_Graf_usage.gif




Vbray recoit par ex:
1020,49511
492,23974
Y1 scale=0,20 maxi=1200 ?
Y2 sclae = 0,005 maxi = 60000 ?





paulfjujo@free.fr


common/GIF/LTC1286p.jpg



Retour à l'index general