mikrocontroller.net

Forum: Compiler & IDEs Synchronisation bei RS485 ohne UART


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: gascht (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: möööp (Gast)
Datum:

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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.