[AVR] Pin gleichzeitig setzen?

OP #3349137
Hallo,

folgende Situation:
Mehrere AVRs sind über einen Bus verbunden. Der Bus ist im Grunde eine 
Leitung, jeder AVR hängt mit einem IO-Pin darauf.
Die Busleitung soll nun von einem AVR auf High gesetzt werden, indem er 
vorher prüft ob sie schon High ist, wenn nicht, setzt er sie eben.

Nun meine Frage:
Wie hoch ist die Wahrscheinlichkeit, bzw. wird das jemals passieren, 
dass zwei AVRs zur selben Zeit die Busleitung prüfen, erkennen dass sie 
frei ist und dann beide auf High setzen?

Danke im voraus

Fabian
Persönliche Seite
Fabian K. schrieb:
> Wie hoch ist die Wahrscheinlichkeit, bzw. wird das jemals passieren,
> dass zwei AVRs zur selben Zeit die Busleitung prüfen, erkennen dass sie
> frei ist und dann beide auf High setzen?

So hoch, dass du diesen Zustand definitiv abfangen musst.
Schau mal nach CDMA.
https://de.wikipedia.org/wiki/Carrier_Sense_Multiple_Access/Collision_Detection
(Firma: guloshop.de)
Fabian K. schrieb:
> Wie hoch ist die Wahrscheinlichkeit, bzw. wird das jemals passieren,
> dass zwei AVRs zur selben Zeit die Busleitung prüfen, erkennen dass sie
> frei ist und dann beide auf High setzen?

Die Wahrscheinlichkeit ist sehr gering. Als Ergänzung zu Alexanders 
Vorschlag: CSMA/CA löst das Problem. Ein geniales Beispiel ist die 
Arbeitsweise des CAN-Bus.

https://de.wikipedia.org/wiki/CAN-Bus#Arbitrierung.2C_Priorit.C3.A4t
@ Fabian K. (fabian_k)

>Mehrere AVRs sind über einen Bus verbunden. Der Bus ist im Grunde eine
>Leitung, jeder AVR hängt mit einem IO-Pin darauf.


Hmm.

>Die Busleitung soll nun von einem AVR auf High gesetzt werden, indem er
>vorher prüft ob sie schon High ist, wenn nicht, setzt er sie eben.

Und warum? Mach es wie I2C und nutze die IOs als Open Drain. Dann 
geht schon mal nix kaputt, wenn mehrere AVRs aktiv sind.
Den Rest muss deine Software abfangen, damit sie nicht stehen bleibt und 
Fehler erkennt.
Moderator Persönliche Seite
Falk Brunner schrieb:
> Dann geht schon mal nix kaputt, wenn mehrere AVRs aktiv sind.

Es geht auch nichts kaputt, wenn zwei Ausgänge mal eine Mikrosekunde
lang gegeneinander treiben.  Allerdings entstehen dabei erstens
undefinierte Pegel, zweitens fließen ziemliche Ausgleichsströme über
die Masse- und Versorgungsleitungen, die im Impulsbetrieb als Spikes
auftreten und dann diverse wundersame Wirkungen entfalten können.

Schon deshalb sollte man diesen Zustand lieber meiden.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.