Mikrocontroller kommunizieren über 1 Leitung

Gast #3727408
Lesenswert?

Hi, ich habe fünf ATmega8 Mikrocontroller. Einer soll jedem der anderen 
vier Controller gelegtentlich 2 Byte spezifische Daten schicken.

Alle Mikrocontroller haben die gleiche Masse und ein gemeinsames Vcc. 
Ich will für die Datenübetragung nur eine oder max. zwei Leitungen 
verwenden. Ist das möglich?

SPI braucht 3 Leitungen + Chip Select. Kommt also nicht in Frage. Gibt 
es eine andere einfache Lösung?

Grüße, 006
Gast #3727445
Lesenswert?

UART ist das Stichwort!

Einfacehe UART, Den TX des "Master ATmenga" auf die RXe der Slave-Megas.
Jeder Slave empfängt dann die Daten.
Als Sync einfach einen "Idle" Frame nehmen, fertig ist dein Protokoll!
#3727449
Lesenswert?

006 schrieb:
> eine andere einfache Lösung?

Wenn es ein wenig Hardware sein darf, nimm doch die vorhandenen UARTs 
(wenn du die anderweitig brauchst, gibt es auch Soft-UART). Du musst nur 
die Tx-Leitungen per Open Drain und externem Pullup verodern (Ruhepegel 
muss dann natürlich auf HIGH am Koppelpunkt sein, ggfs noch einen 
Inverter).

Jeder Protz bekommt eine Adresse und du sendest ein Telegramm "Flag, 
Zieladresse, Absender, Daten, 8-bit Prüfsumme, Flag".

Wenn zwei gleichzeitig senden, knallt es, das Telegramm wird zerstört 
und du merkst es an der falschen Prüfsumme. Oder du baust dir noch in 
Software eine "Kanal belegt" Kontrolle ein. Auch das ist simpel.
(Firma: guloshop.de) #3727460
Lesenswert?

006 schrieb:
> Hi, ich habe fünf ATmega8 Mikrocontroller. Einer soll jedem der anderen
> vier Controller gelegtentlich 2 Byte spezifische Daten schicken.
>  ...
> SPI braucht 3 Leitungen + Chip Select. Kommt also nicht in Frage. Gibt
> es eine andere einfache Lösung?

Jein.
Wenn bei SPI die Übertragung nur in eine Richtung laufen muss, braucht 
man nicht unbedingt ein MISO. Und Chip-Select lässt sich auch per 
Adressierung erreichen: du verschickst nicht 2 Bytes, sondern generell 3 
Bytes, wobei das erste Byte die Zieladresse enthält. Falls die an alle 
anderen 4 Controller zu versendenden Bytes aber sowieso gleich sind, 
brauchts natürlich auch kein Chip-Select.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren