Forum: Mikrocontroller und Digitale Elektronik EEProm als zwischenspeicher.???


von Fichte (Gast)


Lesenswert?

Hay Leute

Ich möchte gerne 3 Atmel Verbinden bzw. daten senden geht sowas auch
über einen EEPROM bzw. wenn ich beide IC´s an eine I2C Leitung hänge
und dazwischen einen EEProm kann den ein IC reinschreiben und der
andere Lesen oder würde das nicht Funktionieren.?

Oder hat jemand eine andere Idee wie man 3-4 IC´s an eine Leitung
Hängt.


MFG: Fichte

von Andi (Gast)


Lesenswert?

das könnte funktionieren.... allerdings nicht besonders lange. Ein
EEPROM hat meistens ca. 100000 Schreibzyklen. Ich weis zwar nicht was
du übertragen willst und wieoft, aber die 100000 Schreibzyklen sind
unter Umständen schnell erreicht und das EEPROM unbrauchbar.

Mein Vorschlag mehrere Controller miteinander zu Verbinden wär eine
Übertragung über die RS232-Schnittstelle. Du verbindest einfach die
TX-Ausgänge eines µC's mit den RX-Eingängen aller anderen µC's.
(Auf diese Art haben wir in der Ausbildung mal ein komplettes Netzwerk
aus 12 MFA-Systemen gebaut)

viel Erfolg beim Basteln!

Andi

von Florian Pfanner (Gast)


Lesenswert?

Hallo,

für so ein Projekt wäre ein Bussystem besser geeignet. Denn der RS232
ist eigentlich nur zur Kommunikation zwischen 2 Geräten gedacht, bei
mehr muss mann Trixen. Ich würde entweder Direkt den I2C-Bus nehmen.
Also in jedem Controller eine I2C-Slave Routine einbauen, mit eigenem
Adressbyte und diesen dann per Protokoll daten übermitteln. Oder den
RS485- bzw. RS422-Bus. Dieser ist vom Prinziep her dem RS232 ähnlich,
nur dass er für mehrere Controller gedacht ist, und eine längere
Leitungslänge erlaubt. Zuletzt währe noch den CAN-Bus zu nennen. Dieser
ist zwar sicher und schnell, aber nicht ganz einfach zu Implementieren.

Gruß, Florian

von Peter D. (peda)


Lesenswert?

@Florian,

"bei mehr muss mann Trixen"

Besser ist daher die Reihenschaltung: TXD an RXD des nächsten usw.
Dann ist nichts mit Trixen, das geht sogar sehr gut.

Man arbeitet dann am besten im 9Bit-Modus (Adrese/Daten) und jeder, der
ein Byte empfängt, was nicht für ihn bestimmt ist, reicht es einfach
weiter.

Im ungünstigsten Fall hat man gerade angefangen zu senden und empfängt
nicht für einen selber bestimmte Daten. Dann muß man diese Nachricht
komplett zwischenspeichern, d.h. die Nachrichtenlänge sollte begrenzt
sein. 8 Byte (wie bei CAN) ist ein guter Wert.

Ein weiterer Vorteil ist auch, daß es keine Prioritäten gibt, jeder
darf zu jeder Zeit senden.


Peter

von Fichte (Gast)


Lesenswert?

@peter dannegger


Hast du mal ein Schalplan beispiel und in was für eim Compiler
schreibst du das.???


MFG: Fichte

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.