Bonjour à tous,
j'ai deux éléments qui doivent communiquer par UART.
L'un est en CMOS 2.8V et l'autre en CMOS 3.1V
Avez vous un conseil pour adapter simplement les sorties afin d'utiliser le moins de composants possible ?
Merci d'avance
-----
Bonjour à tous,
j'ai deux éléments qui doivent communiquer par UART.
L'un est en CMOS 2.8V et l'autre en CMOS 3.1V
Avez vous un conseil pour adapter simplement les sorties afin d'utiliser le moins de composants possible ?
Merci d'avance
tu as quelle distance entre tes deux UARTs ?
Vitesse de transmission ?
J'aime pas le Grec
Je réponds au fur et à mesure :
Distance : à peine 1cm
Vitesse : pas encore définie, avant de vérifier je dirais 9200 ou 115200 (si je me trompe pas dans les "0") Je vais regarder cela. Mais la vitesse n'est pas une "priorité". Plus ce sera simple, mieux ce sera.
Vitesse : 9600 bps
Et tu n'as pas la même alimentation pour 2,8V et 3.1V ?
A mon avis, regarde les spécifications (tu n'as pas donné de lien WEB sur tes composants) il n'y a aucun risque à brancher les deux UARTs ensemble.
Sauf :
Si une alimentation disparait. Dans ce cas l'UART non alimenté va être ré-alimenté par la sortie TX de l'autre (en passant par les diodes de clamping de RX) . Et là, il peut y avoir danger.
J'aime pas le Grec
Ok pour la précision du problème si manque d'alimentation !
Je ferai les tests de branchement direct. Et je posterai la réponse.
(mais ce ne sera pas tout de suite... )
Merci
si les tolérances d'alimentation sur les composants le permettent, une seule alimentation, c'est le mieux.
J'aime pas le Grec
EN fait, cela rejoins le sujet des "pmos"...
C'est la même alimentation, sauf que le module exterieur ne permet pas le "power off", même par UART !!!
Ils ont la même alimentation, mais ce n'est pas la même technologie (ou plus tôt pas les même niveaux) en uart.
Sans schéma et sans spécification ... ça embrouille ma comprenoire !
J'aime pas le Grec
Pardon,
Un uC nommé A, un périphérique nommé B
A et B peuvent être alimenté directement par un batterie lithium ion (4.2V-3V).
*** Alimentation ***
Par soucis de longévité de la batterie, A doit pouvoir contrôler l'alimentation de B. B n'ayant pas de mode "sleep" ou de commande AT "power OFF", A doit contrôler directement l'alimentation de B.
Un power switch est placé entre la batterie et B, contrôlé par A.
*** Communication ***
A possède un port uart (RXD et TXD) en technologie CMOS 2.8V.
B possède un port uart (RX et TX) en technologie CMOS 3.1V
qui donc, selon ce qu'a dit DAUDET78, pourrait être branché directement.
Pourquoi je ne donne pas datasheet précises ou de non de composants précis : je pense qu'il y a beaucoup à gagner à généraliser les montages. Car une personne pourra tout simplement remplacer A par un pic/avr/... et B par une sonde de temp/module gsm/....
pas trop d'accord ... tu risques de faire une usine à gaz pour rien.
Donc "A" est toujours alimenté et "B" de temps en temps
Dans ce cas, "A" ne communique pas avec "B" ( si "B" est en standby)
La sortie TXA est donc au niveau haut (et alimente mal "B" par les diodes de clamping de RXB )
L'entrée RXA est à un niveau bas (TXB est sans doute à zéro car "B" est mal alimenté)
Donc chat ne marche pas
Il faut placer un inverseur CMOS sur la sortie de TXA
Il faut placer un inverseur CMOS sur l'entrée de RXA
Inverseur toujours alimenté
Il faut placer un inverseur CMOS sur la sortie de TXB
Il faut placer un inverseur CMOS sur l'entrée de RXB
Inverseur alimenté par "B"
Et mettre une pulldown (47K) sur le fil de liaison "B" vers "A"
Si "A" et "B" sont alimentés .... pas de problème
Si "B" n'est pas alimenté :
- la liaison "A" vers "B" est au niveau "0" car TXA est à "1" (donc pas de ré-alimentation de "B")
- la liaison "B" vers "A" est au niveau "0" à cause de la pulldown. Donc RXA est au niveau "1", l'UART de "A" ne reçoit rien
J'aime pas le Grec