Port série minitel et erreur de parité

Bonjour,

je voulais savoir si quelqu’un avait remarqué des erreurs de parités avec un connecteur DIN 5 et RS232 DB25 qui est connecté sur un SBC dans mon cas agon avec la librairie Minitel1B_Hard.

Je ne parle pas avec un rs232 usb/tll qui fonctionne bien sans erreurs de partié
j’utilise le minitel 2 en 9600 7 E 1.

la sortie série sur agon est un connecteur UEXT, VCC 3.3v GND TX, RX.

J’ai le module UEXT vers DB9 Male (MOD-RS232 olimex), j’utilise donc des adaptateurs pour le relier au DB25 du minitel.

lors des acquittement je recoit des FFFFFFFF ou bien ou 0x1B3AFFFF au lieu de 0x1B3A757F

FF indique une erreur de parité par rapport à la fonction readByte() de la librairie.

  uint8_t b = serial_read();
  
  // Le bit de parité est à 0 si la somme des autres bits est paire
  // et à 1 si elle est impaire.
  bool parite = 0;
  for (int i=0; i<7; i++) {
    if (bitRead(b,i) == 1)  {
      parite = !parite;
    }
  }
  if (bitRead(b,7) == parite) {  // La transmission est bonne, on peut récupérer la donnée.
    if (bitRead(b,7) == 1) {  // Cas où le bit de parité vaut 1.
      b = b ^ 0b10000000;  // OU exclusif pour mettre le bit de parité à 0 afin de récupérer la donnée.
    }    
    return b;
  }
  else {    
    return (uint8_t)0xFF;  // Pour indiquer une erreur de parité.
  }
}

Merci de votre aide.

J’ai résolu le problème de parité sur l’adaptation de la librairie Minitel1B_Hard, toutes les demos de la librairie fonctionne sur agon ez80 en tant que client, la démo est écrit en C sur agon.

1 « J'aime »