Verschillende behandeling van de vlag van de TBSY (in MC modus) tussen PCD3 / PCD2.M5 en oudere systemen
FAQ #100655
De diagnostische vlag TBSY van de "tekenmodus" (gebruikt voor het verzenden van tekens via een seriële lijn) niet is behandeld de dezelfde manier op een PCD3 in vergelijking met "oudere" systemen zoals bijvoorbeeld PCD2.M170.
Symptoom
Als de desbetreffende poort is toegewezen in de MC modus, is de diagnostische vlag TBSY die aangeeft dat de seriële poort is bezig verzenden tekens. Dit is het geval op bijvoorbeeld een PCD2.M170.
Dit gedrag is niet hetzelfde op een PCD2.M5xxx of een PCD3.Mxxxx, met name niet wanneer met behulp van een PCD3.F121 of een F2xx(x)-modules. Op een PCD3/PCD2.M5 de TBSY vlag is niet een meer hoog tijdens de hele tijd die de poort bezig is. In plaats daarvan, is het enige hoog een korte tijd aan het begin van de taak verzenden.
Reden
De reden voor dit verschil is een nieuwe manier voor toegang tot de UART van de haven. Op oudere systemen werden de tekens rechtstreeks geschreven naar de UART terwijl op de PCD3 een buffer tussen is geplaatst. In plaats van die aangeeft dat de "verzenden-staat" van de UART zoals op oudere systemen, heeft de TBSY de status van deze buffer (de grootte kan worden gevonden op het einde van deze FAQ) op de PCD3 of de PCD2 vertegenwoordigt.M5.
Oplossing
Dit verschil mag niet leiden tot probleem is meestal. Echter, in sommige toepassingen is de staat van de TBSY gebruikt om bijvoorbeeld het RTS-signaal van de lijn (met behulp van de instructie SOCL). In dit geval de mededeling (bezig met een PCD2.M170) werkt niet meer op een PCD3 of een PCD2.M5.
In deze situatie kan een van de volgende methoden worden toegepast:
- In plaats van het toewijzen van de haven van MC0 kunnen worden toegewezen in MC4 (MC4 wordt meestal beschreven als "MC voor RS485"). In deze modus de UART autonoom de RTS beheert (en daarom is er niet meer behoefte aan de RTS door het gebruikersprogramma). Merk op dat in dit geval de SOCL opdrachten zijn worden verwijderd uit het programma!
- De duur terwijl de RTS is te stellen vooraf kan worden berekend (gebaseerd op de hoeveelheid tekens worden verzonden) en geladen in een timer. Terwijl deze timer hoog is, kan de RTS worden ingesteld met de opdracht SOCL.
Merk op dat deze oplossing niet echt een "mooi is" en kan alleen werken met zeer lage baud-rates.
Notities
- Alle firmwareversies van de PCD3xxx en de PCD2.M5xxx doen de TBSY behandelen zoals beschreven in deze FAQ.
- De buffergrootte is afhankelijk van de poort gebruikt:
PCD3 poort 1 en 2:24 tekens
PCD3 poort 0 en 3: 2 tekens
PCD2.M5 poort 0 en 1:24 tekens
PCD2.M5 port 2 en 3: 2 karakters
Categories
PCD2 / _Firmware Classic
PCD2 / Fxxx
PCD3 / _Firmware Classic
PG5 2.0 / Mode-C
PCD3 / Fxxx
Last update: 11.05.2015 10:42
First release: 04.01.2007 13:44
Views: 8674