ECU et PIC : adaptation de niveau ?

Bonjour ,

je cherche à exploiter les trames de données du calculateur de ma voiture.

Elle est de 96 donc pas OBD II.

J'ai fait le montage suivant :

formatting link

R1 est un pull-up car collecteur ouvert.

Le 2N2222 est un inverseur (testé séparément) car les trames sont en RS232 inversées.

Le PIC recoit le signal sur l'entrée RX (rs232 HARD) , testé.

au point A avant de brancher R2 je vois bien mes trames sur 0-12v.

Dès que je branche R2 , PIC alimenté ou pas , je vois que les trames s'écroulent à environ 3v.

Et donc le PIC ne les voit plus.

J'ai essayé diverses variantes autour de ce schema mais ca ne passe pas.

Y a t'il une erreur , une impossibilité technique ?

R1 = 10 K , R2 = 3K , R3 = 3K ...est-ce important ?

merci de votre aide.

Reply to
free.fr
Loading thread data ...

C'est normal, tu dit que le sortie de l'ecu est un npn en collecteur ouvert, au point A tu ne peut a voir que

- Transistor saturé : 0v

- Transistor ouvert : ( 12v - 0.7v * ( r2/r1+r2 )) + 0.7= 3.5v , avec 0.7 le vbe du 2n2222 et r1/r2 en pont diviseur

Cela n'a pas une grosse importance ( sauf si tu utilise encore ton signal en 12v ) , coté 5v cela doit fonctionner

Reply to
JP

On Dec 12, 3:18 pm, "free.fr"

Pourquoi tu passees en 12V pour resdescendre =E0 5V ?

formatting link

Sinon, es-tu bien sur que le signal s=E9rie soit invers=E9 ?

Si oui, est-ce que l'inversion du signal logique ne peut se faire directement en interne par le PIC lui-meme ? ( il me semble qu'il existe un parametrage de la polarit=E9 de Rx, quelque part dans un registre ) Dans ce cas ton adaptation ne n=E9c=E9ssiterait plus qu'une simple r=E9sistance de pull-up au +5V. (voire meme pas, s'il existe un pull-up interne au PIC)

Reply to
Jean-Christophe

Merci pour vos réponses.

Jean-Christophe , je n'ai pas trouvé l'inversion de bit dans la datasheet du PIC.

JP tu me dis que ca devrait marcher , je vais donc creuser.

Je crois avoir fait un essai en enlevant R2 et c'etait toujours KO.

Je vais reprendre ca et vous informer du résultat.

Reply to
free.fr

Cette option n'existe pas sur les pics, en tout cas ceux que je connais. Par contre, dans certains compilateurs, il y a une option pour générer du code pour faire un port série logiciel (avec du bitbanging), et là, il y a l'option pour inverser le signal.

Je cite le manuel : "#USE RS232 Syntax: #use rs232 (options) [...] INVERT Invert the polarity of the serial pins (normally not needed when level converter, such as the MAX232). May not be used with the internal UART."

Par contre pour faire ce que tu veux faire, un simple transistor et quelques résistances suffisent. Sinon, un circuit logique cmos et bof ça roule tout seul, voire un max232 si tu veux avoir un vrai rs232 avec translateur de niveaux. Pas de quoi s'emm... a faire un port série avec du bitbanging quoi!

--
cLx
Reply to
cLx

On Dec 13, 10:02 pm, "free.fr"

Certains uC le permettent en positionnant le bit d'un registre. J'ai du confondre avec une autre marque, d=E9sol=E9.

Si la sortie data est bien un collecteur ouvert, alors tu n'as pas besoin de +12 V, tu peux brancher R1 entre le +5 V et la base du 2N2222.

formatting link

Et fais la mesure sur le collecteur du NPN pour v=E9rifier que le signal varie bien entre z=E9ro et +5 V.

Reply to
Jean-Christophe

j'ai fait l'essai que tu proposais = échec.

pourtant à chaque fois je teste l'inverseur avec un petit GBF.

Il inverse bien. Cependant :

- l'amplitude du GBF fait 3 v

- je ne sais pas s'il sort en collecteur ouvert.

ce que je sais c'est que les trames sont bien visibles à l'oscillo

avec un pull-up à 12 v et qu'elles nécessitent un inverseur pour etre

exploitables par une RS232 hard.

Je vais donc essayé avec une RS232 logicielle qui inversera les bits.

Mais je vais etre obligé de ruser car le compilo que j'utilise ne

monte que jusqu'à 19200 , je vais donc tricher sur le quartz.

Mais je suis décu / contratrié.

Ca arrive ...

Reply to
free.fr

On Dec 19, 9:11 pm, "free.fr"

Difficile de savoir de quoi tu parles et =E0 qui tu t'adresses si tu ne reprends pas le dernier message dans ta r=E9ponse et si tu changes le titre du thread ...

L'inverseur NPN est pr=E9vu pour etre attaqu=E9 par un collecteur ouvert et non par un g=E9n=E9rateur BF. Ton test ne correspond pas aux conditions que tu as =E9nonc=E9 : il ne faut pas t'=E9tonner si ca ne marche pas.

Non, la sortie d'un g=E9n=E9 BF n'est pas un collecteur ouvert.

L'inversion logique fonctionne tr=E9s bien sous 5 V avec un NPN et deux r=E9sistances.

=AB le compilo ne monte qu'=E0 19200 =BB ... je suppose qu'il s'agit des diviseurs de l'horloge du port s=E9rie, et non du compilateur.

C'est arriv=E9 parce-que tu n'as pas test=E9 le montage dans les conditions que tu as pourtant toi-meme =E9nonc=E9. Le montage propos=E9 est =E9l=E9mentaire et fonctionne tr=E9s bien.

formatting link

Reply to
Jean-Christophe

On Dec 19, 9:11 pm, "free.fr"

Voir la doc du PIC 16F876 - chapitre 10 page 98.

formatting link

La vitesse de l'USART d=E9passe 19,2 K et peut meme monter jusqu'=E0 1,25 M=E9ga. Suffit d'adapter le quartz et les diviseurs.

formatting link

Reply to
Jean-Christophe

merci de tes réponses jean-Christophe.

le compilateur PICBASIC (une vieille version) de Microengineering ne permet

une RSR232 "logicielle et inversable" que jusqu' à 19200 , je maintiens

(l'inversion n'est pas possible surla RS232 hard) .

J'ai vu aussi une doc qui faisait l'inverseur avec un PNP (BC557).

Est-ce important ?

c'est difficile de ne pas se tromper avec une plaque de test posée

sur le moteur (qui ne tourne pas heureusement) , je reèessaierai donc.

La valeur des résistances a t'elle une importance.

Sur ton exemple la tension d'entrée est inferieure à la tension

de sortie. Et si elle est superieure ?

autre question : comment fait-on un inverseur pour une sortie de GBF ?

je sais que c'est exploiter un collecteur ouvert est un sujet trivial

mais j'aime aussi comprendre ce que je fais. Ca peut reservir.

Reply to
free.fr

On Dec 20, 7:12 pm, "free.fr"

et

Ok. Cela confirme l'utilit=E9 d'un inverseur hard en amont du RX.

Non, tu peux choisir le type que tu veux, l'important =E9tant de monter le transistor en =E9metteur commun (ou en source commune) pour obtenir l'inversion logique.

Oui bien sur, elles influent sur les courants et tensions.

Cette tension d'entr=E9e n'est due qu'=E0 la tension base/=E9metteur de Q1 polaris=E9 par la r=E9sistance R1.

A lui seul, un collecteur ouvert n'impose pas de tension (=E0 part le z=E9ro volt) et la tension positive va d=E9pendre du montage connect=E9 en aval : c'est toi qui la d=E9termines.

Un ampli de gain -1 par exemple :

formatting link

Oui bien sur, et c'est tr=E9s sain aussi.

Reply to
Jean-Christophe

Bonjour Jean-Christophe

j'ai refais un test :

je visualise bien les trames d'entrée avec R1 en pull-up sur le +5v de la platine de test et non plus le 12 v du calculateur.

Mais des que je relie cette entrée à la base du transistor , les trames disparaissent de l'écran.

Pourtant j'ai testé l'inverseur avec non pas avec un GBF comme je le disais mais une sortie PWM de mon oscillo à environ 1,5 v.

formatting link

Donc je ne me trompe pas dans le brochage du transistor.

Quel test puis-je faire en plus ?

Merci de ton aide

Reply to
free.fr

On Dec 22, 7:16 pm, "free.fr"

Et avec juste cette seule r=E9sistance de pull-up entre la sortie et le +5V (et rien d'autre de branch=E9) tu as bien des signaux entre z=E9ro et +5 V ?

Une fois reli=E9e =E0 la base du NPN le signal doit normalement tomber =E0 environ +0,7 V.

Hem, avec une amplitude de +1,5 V il est possible que le g=E9n=E9 de signal de ton scope ait cram=E9 le NPN !

Je ne peux que te confirmer le bon fonctionnement de ce montage:

formatting link

Maintenant, il faut etre SUR que le signal d=E9livr=E9 provient bien d'un collecteur ouvert ... ?

Reply to
Jean-Christophe

merci de la réponse. sur ce lien un post en date du 21.9.2005 decrit la sortie

formatting link

quand tu dis que le signal doit descendre à 0,7v , il devient plat ,

on ne voit plus un reliquat de trame ?

pourquoi le PWM à 1,5 v aurait cramer le transistor ? c'est fragile

ses bêtes là ?

Reply to
free.fr

On Dec 22, 8:08 pm, "free.fr"

Quel foullis ... s'agit-il de ce sch=E9ma ?

formatting link

Si oui, alors la diode 1N4004 (et la r=E9sistance 1,8 Ohm) pourraient laisser une tension r=E9siduelle assez =E9lev=E9e devant le Vbe du NPN de l'inverseur, qui ne conduirait plus comme pr=E9vu avec un VRAI collecteur ouvert.

Voir + haut :o)

Sur l'inverseur, essaie d=E9ja d'ajouter une diode

1N4148 en s=E9rie entre l'=E9metteur du NPN et la masse.

( si cela ne marche pas il faudrait remplacer ce NPN 2N2222 par un PNP 2N2907 et modifier le sch=E9ma )

Si l'imp=E9dance de sortie est faible, toute tension trop =E9lev=E9e ( > 0,7 V ) appliqu=E9e entre base et collecteur va cramer le NPN.

Reply to
Jean-Christophe

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.