1

Bonjour,
J'ai un afficheur à LED offert par une boutique qui affiche le nom de la boutique.
Sur la carte électronique il y a 4 contacts inutilisés qui sont peut-être de simples plots de contrôle, mais il a bien fallut entrer le nom de la marque, ils servaient peux-être donc à le programmer.

Les composants sont tous en cms, et le PIC sous du vernis noir, je ne peux pas en dire plus sur le matériel, et il n'y a pas de doc.

En suppossant que je trouve les bornes d'un port serie, que dois-je faire pour lire le contenu de l'eeprom?
Quel soft ou terminal utiliser? (Je ne connais rien au RS32.)

Merci d'avance.
Je sais que c'est un peu perdu d'avance, mais peut-être pas ?

2

Déjà, il faut savoir quel tension d'alimentation la carte utilise en interne (probablement 5 volts ou 3,3 volts).
Regarder pour cela s'il y a des régulateurs de tension sur la carte, et l'idéal, mesurer la tension sur un composant dont le brochage est connu.

À moins qu'il y en ait un intégré sur la carte, il te faut aussi un circuit de conversion de niveaux pour connecter la carte au port série de ton PC :

http://sodoityourself.com/max232-serial-level-converter/
Ça peut égaler s'acheter tout fait, genre ça
Utiliser le MAX232(A) si la carte est alimentée en 5 volts, et le MAX3232 si c'est du 3,3 volts.

Si c'est bien une liaison série, les 4 picots sont probablement utilisés comme ça :
- 1 pour la masse (obligatoirement)
- 1 pour la réception de données
- 1 pour l'émission de données
- pour le 4ème, joker... y'a des chances que ce soit relié à l'alimentation de la carte, mais ça dépend.

Faut que tu commences par reperér la masse en faisant un test de continuité par rapport à un point dont tu es sûr qu'il est relié à la masse (sauf exception, c'est le cas de la borne d'alimentation négative).

Après, il n'y a aucun standard logiciel pour le RS-232, c'est juste un standard matériel. Le fabricant est libre d'utiliser le protocole qui lui plaît. Si tu as de la chance, la carte a une interface en mode texte.

Ensuite, faut trouver la broche de l'émission des données... certaines cartes ont un message de boot au démarrage, dans ce cas-là essaie successivement l'un des 3 picots restants, en redémarrant la carte à chaque fois, jusqu'à voir quelque chose apparaître dans ton prog de terminal (tu peux utiliser HyperTerminal sous Windows, en mode sans contrôle de flux)... il faudra essayer différentes vitesses de transmission aussi, vu qu'on ne la connaît pas (les autres paramètres, c'est en général 8 bits, 1 bit de stop, pas de parité).

Vois déjà si tu peux obtenir quelque chose comme ça...
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

3

Si tu est sous linux et que ton ordi a un port série, tu peux facilement envoyé des signaux avec le port série. Par contre, si tu n'as pas de doc ça va être très chaud, parceque le premier truc à faire, c'est de paramétrer la vitesse du port série.

En admettant que l'afficheur recoivent à la vitesse de 9600 bauds, sur ton PC tu doit faire les commandes:
stty -f /dev/ttyS0 9600
(/dev/ttyS0 est ton port série)
(man stty pour plus d'infos)

et pour envoyer des trucs sur le port série:
echo "mon truc a envoyer" > /dev/ttyS0
(ce que tu enverra sera de l'ascii)

si tu veux lire le port série (car c'est possible que l'afficheur envoye des trucs à l'allumage, pour pouvoir permettre le debuggage par exemple), tu peux faire:
cat /dev/ttyS0


Bon après, sans doc c'est vraiment chaud si en plus tu n'as pas d'expérience grin Même avec de la doc, c'est pas toujours facile wink

4

Merci pour vos infos, je vais tester différentes vitesses de transmission et différent brochage sous HyperTerminal, je verrais ce qu'il se passe.

5

oui, voila, pas besoin de linux hein

sinon essaye deja de repérer sur les 4 pins qui est la masse et l'alim, etc

(et puis quand la carte papotera, faudra trouver le protocole grin)

y'a pas un composant style eeprom sur ta carte, qu'il serait plus facile d'extraire et reprogrammer/remplacer?

6

En fait, il y a 3 picots vraiment côtes à côtes.
Trouver la masse selon la méthode de Zerosquare me semble facile. Pour les deux autres je ferais une inversion et je finirais bien par trouver, enfin, après avoir tester toutes les vitesses de transfert.
Ca affiche quoi dans hyperterminal quand ça fonctionne, juste un "OK"?
Qu'est-ce que je peux tirer d'autre de ce terminal?
Trouver le protocole, oui, ça ca m'échappe totalement, j'attend de voir.

Il n'y a comme composant que ce qu'il se trouve sous le vernis noir, un PIC je suppose, quelques resistances en CMS, et un condo.
C'est alimenté par 3 piles de 1,5V, donc pour ne pas le cramer je ferais un test sur portable car il me semble que la différence de potentiel du port serie sur un portable est de 0-5V contre -12V à +12V sur un PC de desktop.

Je me demande si je pourrais tester en branchant "en direct" ou être obligé d'utiliser un circuit de conversion de niveaux comme ceux dont parle Zerosquare. Ce n'est pas très cher, mais comme je ne pourrais peut-être pas reprogrammer, je préfère éviter d'investir.

Je teste ça demain, je vous dirais ce que ça donne.

7

GUNNM (./6) :
Ca affiche quoi dans hyperterminal quand ça fonctionne, juste un "OK"?
Aucun moyen de le savoir avant de tester... Si t'as de la chance, un message texte.
Si t'as pas de pot, ça peut même ne rien afficher du tout, si le fabricant a choisi un protocole où c'est le PC qui démarre la communication.
GUNNM (./6) :
C'est alimenté par 3 piles de 1,5V, donc pour ne pas le cramer je ferais un test sur portable car il me semble que la différence de potentiel du port serie sur un portable est de 0-5V contre -12V à +12V sur un PC de desktop.
GUNNM (./6) :
Je me demande si je pourrais tester en branchant "en direct" ou être obligé d'utiliser un circuit de conversion de niveaux comme ceux dont parle Zerosquare. Ce n'est pas très cher, mais comme je ne pourrais peut-être pas reprogrammer, je préfère éviter d'investir.
Bon, donc ça fonctionne sous 4.5 V, tu peux considérer ça comme du 5 volts.
Les ports séries de portables délivrent généralement des tensions plus basses, genre -6 volts à + 6 volts, mais ça reste symétrique autour de zéro. De plus la polarité est inversée par rapport à ce que te sortira un microcontrôleur (-6 volts côté PC correpond à +5 volts côté micro, et +6 volts à 0 volt), donc ça ne marchera pas en reliant directement le port série.
Si tu ne veux pas acheter de module ou le faire toi-même, il y a des montages "alternatifs" qui peuvent fonctionner :
http://www.scienceprog.com/alternatives-of-max232-in-low-budget-projects/
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

8

Ok, merci pour les précisions.
C'est dommage cette histoire de polarité inversée sur un portable.
Donc je ne peux pas tester "simplement", sauf sur le desktop mais avec de très fortes chances de griller quelque chose.
Il n'y a pas un autre terminal (je suis sous windows) qui gère le port serie des portable? C'est assez étonnant.

Je viens de tester, la masse c'est le 4ème picot. Ca fait encore plus de branchements à tester. sad
Mais bon, vus le prix, je crois que je vais investir dans un convertisseur. Il y en a un pas cher ici. (en france, les fdp ne sont pas chers).
Il conviendrait?

9

GUNNM (./8) :
C'est dommage cette histoire de polarité inversée sur un portable.
GUNNM (./8) :
Il n'y a pas un autre terminal (je suis sous windows) qui gère le port serie des portable?
C'est pas uniquement sur les portables, la polarité "inversée" c'est pareil sur tous les trucs qui utilisent du RS-232. Et ça ne peut pas être changé par logiciel, en tout cas pas sur PC.
Le seul truc, c'est qu'en général, sur les portables, les tensions sont un peu plus faibles (du genre -6V/+6V au lieu de -10V/+10V sur un PC desktop).

Sinon, le convertisseur que tu montre semble OK.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

10

(Comme l'a dit GUNNM, c'est -12V/+12V sur desktop)

11

Jyaif (./10) :
(Comme l'a dit GUNNM, c'est -12V/+12V sur desktop)
En théorie... en pratique ça varie d'un PC à l'autre. De toute façon, il y a de la marge, les seuils valides sont -3 volts et +3 volts si je me souviens bien.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

12

Si j'ai bien suivi, sur tous les PC, desktop et laptop, les polarités sont inversées?
C'est étrange, comme le fait que rien ne soit prévus pour inverser cela.

Je découvre le RS232, j'avais prévenu. grin

13

GUNNM (./12) :
Si j'ai bien suivi, sur tous les PC, desktop et laptop, les polarités sont inversées?
Ouais. Et pas que les PCs, tout ce qui utilise du RS-232 fonctionne comme ça. Je ne connais pas la raison pour laquelle ils ont choisi d'inverser la polarité.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

14

je pense que +v (3<v<12) représente le niveau de repos (space, 0) et -v représente une inversion de polarité qui marque (mark) le signal "1"

j'imagine un truc à base de pull ups, ou tout simplement parce que les changeurs de niveau de tension sont basés sur des transistors qui sont cablés en porte "non" grin

15

OK, donc en fait ce sont les PIC qui ont leurs polarités inversées?

16

non, c'est le mode TTL qui a un mark à 5v et un space à 0v, pour simplifier l'analogie avec les valeurs des bits.

il existe des signaux TTL inversés avec un mark à 0v /space à 5v, en général c'est utilisés pour les signaux de validation, style /RD /WR on les marque avec une barre sur le dessus.

17

squalyl (./14) :
je pense que +v (3<v<12) représente le niveau de repos (space, 0) et -v représente une inversion de polarité qui marque (mark) le signal "1"
pencil
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

18

Google n'est pas très bavard sur le mode TTL.
C'est quoi ?

19

Niveaux TTL (en entrée) :
de 0,0 à 0,8 volts -> bit à 0
de 2,0 à 5,0 volts -> bit à 1
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

20

Merci.

21

J'ai acheté le circuit de conversion de niveaux, il pourra me resservir.
Il me vient une question, en supposant que tout ça se déroule "au mieux", est-il possible de récupérer le code actuel du PIC?
Car je voudrais juste le modifier, pas le recoder entièrement.

22

S'ils ont été jusqu'à mettre le circuit dans de la résine, il y a très peu de chances qu'ils n'aient pas pensé à activer l'option qui empêche la lecture du code.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

23

J'ai plusieurs de ces afficheurs, l'un est HS, alors j'ai enlevé la resine pour voir si par chance il y avait le type du PIC inscrit quelque part.
En fait le circuit est dans la résine car il n'a pas de boitier, la puce est "nue".
Si il n'y a pas de protection qui empêche la lecture du code, on le lit comment? Il y a une commande pour ça?

24

GUNNM (./23) :
En fait le circuit est dans la résine car il n'a pas de boitier, la puce est "nue".
Euh ça ressemble à quelque chose comme ça ?
globtop.jpg

Si c'est le cas, bon courage, ça peut être n'importe quel circuit... et probablement pas un PIC (même si théoriquement c'est possible).
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

25

Oué c'est un truc comme ça.
Il a une rom evidemment pour le code mais aussi une ram qui contient 128 caractères, si ça peut aider. Ce serait quoi comme type de circuit?

26

Ben ça peut être à peu près n'importe quoi... un microcontrôleur quelconque, un truc spécialisé, voire un circuit spécifique développé exprès pour ces afficheurs. On peut quasiment rien savoir avec ce genre de bestiole :/
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

27

comme l'a dit Zerosquare tes chances s'approchent de zéro sans la doc constructeur.

Et déja sur un pic le programme (si il est lisible) ne se récupère pas par port série, mais par un bus spécial (ISP, in system programming)

tes meilleures chances à ce point sont de chercher si il passe qc sur la liaison que tu supposes RS-232 (série)

après ptet on verra plus clair.

28

J'attend pour cela le convertisseur pour pouvoir cabler quelque chose. Je l'aurais en fin de semaine.
Mais je ne suis pas trop défaitiste, car en cherchant sur google, j'ai trouvé exactement les mêmes afficheurs avec un port serie. A un prix prohibitif puisque comme objet publicitaire, il ne se vend que par 1000 unités.
Ce port serie a 4 broches, donc comme mes quatres connecteurs. Je suppose que ce sont les deux connecteurs de l'alim, le rx et le tx.
En revanche, je ne vois pas à quoi me servira ce port serie, si je ne peux rien en tirer, d'où ma question.
Ne puis-je pas interroger le circuit avec une commande, qui me renverrait son type, ou autres infos interressante? (on peux rêver)

29

le port série sert sans doute à uploader le message dans l'afficheur.
et ça m'étonnerait qu'on y trouve un protocole "standard" il n'en existe aucun d'après moi. Ce genre de standard ne vient qu'avec l'USB.

on peut voir le lien vers le bidule?

30

Ce sont les même que ça : http://www.sztwe.com/shtml/54/2007101532.shtml , mais sans la prise.