Problème de communication avec le TAE

Bonjour,

Je n’arrive pas à établir une communication stable entre mon ordinateur et le TAE. Voici ce que j’obtiens sur l’écran si je fais un programme de test qui envoie le caractère “A” toute les 100ms :

Lorsque le terminal remplace un caractère par “?”, il envoie 0x1a à mon ordinateur.

J’ai l’impression que lorsqu’il est resté allumé pendant un certain temps, le taux d’erreurs diminue. Au deuxième test, je suis descendu à 10 caractères incorrects sur l’écran complet. Au troisième, j’en ai plus que 3.

Mais si je supprime le délai de 100ms entre caractère envoyé par l’ordinateur, le taux d’erreur augmente énormément, il affiche énormément de “P” à la place des “A”. J’ai testé différents délais, à partir de 10ms entre chaque caractère envoyé par l’ordinateur, ça fonctionne plutôt mieux (moins de 5 caractères erronés par page écran).

L’adaptateur péri-informatique que j’utilise fonctionne très bien sur tous les autres modèles de minitel que j’ai testés.

Avez-vous déjà rencontré des problèmes similaires ? Il y a quelque chose à y faire ou c’est juste une conséquence du vieillissement du terminal ?

Par ailleurs, sur les autres modèles de minitel quand j’envoie ESC PRO1 ENQROM, il me répond avec les 3 caractères d’identification. Ce TAE ne répond rien ; c’est normal ?

Si je bascule la communication en 300 bauds, ça devient vraiment stable :

Mais là, il ne faut vraiment pas être pressé…

Pour les P à la place des A, c’est parce que il s’attend peut être à 1.5/2 bit de stop ou bien l’horloge ne tourne plus à la fréquence donnée:

Envoi de données avec 1 stop (3 “A” d’affilé):

1111111010000010101000001010100000101111111

Lecture:

1 stop: | A : 0100000101 | A : 0100000101 | A : 0100000101 |

2 stop: | A : 0100000101 | | P : 0000010101 |

Les retours 0x1A signifient au périphérique que le caractère a une erreur de parité (l’addition des 8 bits envoyés n’est pas pair - 7 bits de donnés + 1 bit de parité).

Quand à pourquoi il lit mal la donnée il peut y avoir plusieurs raisons:

  • résistance pullup trop faible (le signal met trop de temps à remonter) → utiliser une résistance avec une valeur en Ohm plus petite
  • différence de fréquence d’écriture et de lecture trop grande (>10%) → changer la fréquence d’écriture / changer l’horloge ?
1 « J'aime »

Je pense plus que la résistance soit la cause puisqu’il n’y a pas de problèmes à 300bauds.

J’ai essayé de passer à 2 bits de stop au lieu d’un. Lorsque je fais ça je peux réduire d’1ms le temps d’attente entre chaque caractère envoyé par l’ordinateur (9ms au lieu de 10ms). Le bit de stop en plus correspond à 0,83ms, donc… ça me donne l’impression que le minitel n’arrive pas à traiter les données à la vitesse où elles arrivent. Ça pourrait correspondre pas mal à ta suggestion de vitesse d’horloge incorrecte.

Il faut alors mesurer précisément le temps d’arrivée des bits pour le retour 0x1A pour voir (en envoyant un message erroné), ça te donnera une piste.

C’est faisable depuis l’ordinateur, ou il faudrait un oscilloscope numérique pour mesurer ça ?

Si tu passe par un arduino ou un microcontrôleur du même genre c’est possible de faire un programme pour mesurer les timmings entre les transitions. Tu peux faire aussi par essai/erreur en changeant légèrement le baudrate (si tout le matériel te permet d’utiliser des baudrates non standard).