Autre manipulation du drapeau TBSY (en mode MC) entre PCD3 / PCD2.M5 et les systèmes plus anciens
FAQ #100655
Le diagnostic drapeau TBSY du "Mode caractères" (utilisé pour envoyer des caractères sur une ligne série) n'est pas géré la même façon sur un PCD3 par rapport aux systèmes « anciennes » comme par exemple le PCD2.M170.
Symptôme
Si le port pertinent est assigné en mode MC, l'indicateur de diagnostic TBSY indique que le port série est occupé à envoyer des caractères. C'est le cas par exemple un PCD2.M170.
Ce comportement n'est pas la même chose sur un PCD2.M5xxx ou un PCD3.Mxxxx, surtout pas quand en utilisant un PCD3.F121 ou un modules de F2xx(x). Sur un PCD3/PCD2.M5 le drapeau TBSY n'est pas n'importe quel plus élevé pendant tout le temps, que le port est occupé. Au lieu de cela, c'est la haute seulement un peu de temps au tout début de la tâche d'envoi.
Raison
La raison de cette différence est une nouvelle manière d'accéder à l'UART du port. Sur les anciens systèmes les caractères ont été directement écrit pour l'UART tandis que sur le PCD3 un tampon est placé entre les deux. Au lieu d'indiquer la "envoyer l'État" de l'UART comme sur les anciens systèmes, le TBSY représente l'état de ce tampon (la taille se trouvent à la fin de cette FAQ) sur le PCD3 ou le PCD2.M5.
Solution
Cette différence ne devrait pas conduire à problème est la plupart des cas. Toutefois, dans certaines applications, l'état de la TBSY est utilisé pour contrôler par exemple le signal RTS de la ligne (à l'aide de l'instruction SOCL). Dans ce cas, la communication (travail sur un PCD2.M170) ne fonctionne plus sur un PCD3 ou un PCD2.M5.
Dans ce cas une des solutions de contournement suivantes pourrait être appliquée :
- Au lieu d'assigner le port dans MC0, il pourrait être assigné en MC4 (MC4 est généralement décrit comme "MC pour RS485"). Dans ce mode l'UART gère la RTS autonome (et il n'y a donc plus besoin de mettre de la RTS par le programme utilisateur). Notez que dans ce cas les commandes SOCL doivent être retirés du programme !
- La durée, alors que la RTS doit être réglé a pu être calculée au préalable (basé sur la quantité de caractères à envoyer) et chargé dans une minuterie. Cette minuterie est élevée, la RTS peut être réglée à l'aide de la commande SOCL.
Notez que cette solution n'est pas vraiment une « belle » et pouvez fonctionnent uniquement avec des vitesses de transfert très faible.
Notes
- Toutes les versions du firmware de la PCD3xxx et la PCD2.M5xxx traitent-ils le TBSY comme décrit dans cette FAQ.
- La taille du tampon est selon le port utilisée :
PCD3 port 1 et 02:24 caractères
PCD3 port 0 et 3: 2 caractères
PCD2.M5 port 0 et 01:24 caractères
PCD2.M5 port 2 et 3: 2 caractères
Categories
PCD2 / _Firmware Classic
PCD2 / Fxxx
PCD3 / _Firmware Classic
PG5 2.0 / Mode-C
PCD3 / Fxxx
Last update: 20.05.2015 11:06
First release: 04.01.2007 13:44
Views: 8672