Forum: Mikrocontroller und Digitale Elektronik Atmega8 <> Tiny45 - Busprotokoll ausdenken


von Rene K. (draconix)


Lesenswert?

Hiho,

ich möchte einen Atmega8 und einen Tiny45 zusammenschließen und muß mir 
dafür ein Busprotokoll ausdenken über 2 Kabel - also eine Art TWI. 
Leider jedoch bin ich auf der Atmega8 Seite an zwei Pins fest gebunden 
(PD6/AIN0) und (PD7/AIN1).

Um Daten vom Atmega8 an den Tiny zu senden, wird es weniger kompliziert: 
Takt über eine Leitung und diese via Interrupt am Tiny abgreifen und mit 
der zweiten Datenleitung vergleichen. Jetzt zu meinem eigentlichen 
Problem: Wie bekomme ich denn Daten vom Tiny zum Atmega?! Sollte ich 
dies über ein klassiches I2C laufen lassen?! Sprich: der Atmega sendet 
einen Befehl zum lesen und der Tiny antwortet übernimmt die Datenleitung 
und antwortet.

Dies bringt mir aber schon wieder ein neueres Problem, an dem Tiny 
werden Tasten angeschlossen, mit der obigen Variante (dem klassichen 
i2c) müsste ich meinen Tiny in sehr "kurzen" Abständen abfragen um auch 
jeden Tastendruck mitzubekommen.

1.)

Meine zweiter überlegung wäre auch die Clock Leitung an den Tiny zu 
übergeben. Nun hänge ich ja am Atmega am Analogcomparator, welcher mir 
einen Interrupt auslösen kann, also beim Senden von:

Atmega zu Tiny > Comparator aus > Leitungen auf Ausgang > Daten senden > 
Comparator ein

Tiny zu Atmega > Leitungen auf Ausgang > Daten senden > Int via AC > bei 
jedem Int die Datenleitung vergleichen.

2.)

Oder, nach dem vom Atmega gesendet wurde die Datenleitung auf Comparator 
umstellen. Dort dann mit dem Tiny ein Puls geben, sobald etwas zu tun 
ist. Und der Atmega ließt dann gleich aus und funktioniert wieder als 
Master!?


Wie stelle ich sowas am dümmsten an?!

von Peter D. (peda)


Lesenswert?

Für 3 Tasten lohnt sich eigentlich kein extra MC.

Ein Protokoll selber zu entwickeln ist nicht einfach.
Hier mal ein fertiges Protokoll:
Beitrag "mehrere MC seriell über Datenbus verbinden (1Draht)"

Der ATmega8 sollte durch den ATmega88 ersetzt werden 
(Pin-Change-Interrupt).


Peter

von Rene K. (draconix)


Lesenswert?

Peter Dannegger schrieb:
> Für 3 Tasten lohnt sich eigentlich kein extra MC.

Es sind ja nicht nur die Tasten, der Tiny übernimmt berechnungen die ich 
vom Atmega8 abwenden will / muß.

Peter Dannegger schrieb:
> Der ATmega8 sollte durch den ATmega88 ersetzt werden
> (Pin-Change-Interrupt).

Leider nicht möglich, die Schaltung steht bereits und die Atmegas liegen 
schon in größerer Stückzahl vor.

Peter Dannegger schrieb:
> Ein Protokoll selber zu entwickeln ist nicht einfach.
> Hier mal ein fertiges Protokoll:
> Beitrag "mehrere MC seriell über Datenbus verbinden (1Draht)"

Vielen Dank für den Link, ich lese mich da mal ein.

von Lehrmann M. (ubimbo)


Lesenswert?

Ich kann Peter da nur zustimmmen. 2 Controller sind in 99% aller Fälle 
zu viel. Es gibt einen einzigen Fall, den ich kenne, in welchem 2 
Mikrocontroller gerechtfertigt sind. Das ist wenn ich schnell verdammt 
viel Daten verarbeiten muss. Das wäre z.B. bei einer Audiocodierung oder 
Ähnlichem der Fall. Wenn der Hauptcontroller mit 98% ausgelastet ist - 
dann kann man noch einen anderen µC dazu nehmen. Ansonsten ist das pure 
Verschwendung und ein sehr beliebter Anfängerfehler.

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.