Forum: Compiler & IDEs Synchronisation bei RS485 ohne UART


von Thomas (Gast)


Lesenswert?

Hallo alle miteinander,

Wir haben in der Schule ein Projekt laufen, bei dem ein Master mit 
mehreren Slaves (AT90USB162) kommunizieren soll. Wir haben keine UART 
zur Verfügung (aufgrund der Pinbelegung die uns vorgegeben ist) und auch 
keinen Interrupt. Daher müssen wir mit einem Internen Counter arbeiten. 
Wir wollen ein Zeitschlitzverfahren verwenden. Jetzt sollen sich Master 
und Slave bei jedem Durchgang Synchronisieren (den Counter wieder 
richtig auf Null setzen) befohr sie kommunizieren. Ich habe keine Ahnung 
wie man sowas realisieren kann?

Würd mich über ein paar Vorschläge oder Tipps freuen.

mfg Thomas

von gascht (Gast)


Lesenswert?

warum so kompliziert?

Wenn es dedizierte master / slaves gibt ist das thema vom tisch.
Der Master ist chef die slaves halten die klappe bis sie gefragt werden.
Jeder SLave hat seine Adresse und reagiert darauf.
andere Slaves die sich nicht angesprochen fühlen reagieren eben nicht.

Wenn es um die UART geht ...
Ein TimerInterrupt geht aber immer.
Und in diesem Fragst du den Pin ab.

Der RX PIN muss dann nur zyklisch abgefragt werden.
ändert sich der Pegel dort könnte es ein eingehendes Protokoll sein.


Synchron muss da nix laufen
Einzig die Abfrage des PINS muss zyklisch erfolgen wenn du keinen 
Pinchangeinterrupt hast.

von Thomas (Gast)


Lesenswert?

Ja, einen Timer Interrupt gibt es natürlich schon. Genau so hätten wir 
das auch vorgehabt ohne Synchonisation. Allerdings meint unser Betreuer, 
dass es nach mehreren "Durchgängen" zu Problemen kommen kann, da die 
Timer/Counter ja nicht zu 100% die Zeit einhalten (Der Quartz hat ja 
eine ungenauigkeit von +/- 10%). Dadurch verschiebt sich der 
Abtastpunkt.

Ich denke, wir werdens mal ohne Synchronisation porbieren und wenn 
porbleme auftreten uns hier noch etwas dazu überlegen.

mfg Thomas

von möööp (Gast)


Lesenswert?

was willst du da syncronisieren ??
sobald die erste flanke erkant wird ist die empfangsroutine quasi 
syncron mit dem sender.

von Peter D. (peda)


Lesenswert?

Thomas schrieb:
> (Der Quartz hat ja
> eine ungenauigkeit von +/- 10%).

Dann ist es kein Quarz.
Quarze haben üblich 100ppm (0,01%).

Und 10% ist für ne UART völlig unbrauchbar.
Man sollte max 1% anstreben.


> Dadurch verschiebt sich der
> Abtastpunkt.

Aber nur innerhalb des Bytes.
Beim nächsten Byte mußt Du mit dem Startbit neu synchronisieren 
(Pin-Change Interrupt).


Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.