Forum: Mikrocontroller und Digitale Elektronik Kommunikation zwichen 2 Microcontrollern


von Marcel F. (shadow992)


Lesenswert?

Hallo zusammen,

Ich habe ein kleines Problem:

Ich habe 2 Microcontroller und möchte auch beide behalten, also die 
Alternative auf einen Umzusteigen ist keine Alternative für mich.

Mein Problem ist, dass ich zwar jeweils an den Eingängen der MCs (ATMega 
16) 5.0V messe (wird durch einen 5V Spannungsregler bereitgestellt), 
aber ich bei folgender Pin-Belegung nur 3.8V am Ausgang des MC1 kriege:


MC1:           MC2:
PD0  --------  PA0
PD1  --------  PA1
PD2  --------  PA2
PD3  --------  PA3

Die Minuse (------) entsprechen einem Kabel ohne jeglichen extra 
eingebauten Widerstand usw.

Das ganze soll eine Kommunikationsmöglichkeit zwischen den 2 MCs werden, 
wobei MC1 ausschließlich Befehle versendet und MC2 ausschließlich 
Befehle empfängt.
Die PullUp-Widerstände sind logischerweise bei MC1 alle auf aus gesetzt 
und bei MC2 alle auf an.

Nur wenn ich den Pin (z.b. PD0) gegen Masse messe, dann zeigt er mir 
3.8V an.
Damit sieht MC2 es nicht als high an und schreibt auch nichts in eine 
Variable.

Andere Pinausgänge laufen jedoch (zumindest die getesteten) auf 5.0V.

Muss ich die Datenverbindungen auch mit eine Widerstand versehen (wie 
bei Schaltern/Tastern), die gegen Masse geschalten sind?
Das wäre sicherlich besser aber würde ja nichts an meinem Problem 
ändern, weil 3.8V bleiben 3.8V egal ob das noch zusätzlich an - geht 
oder nicht oder irre ich mich da?

von Busfahrer (Gast)


Lesenswert?

Warum nimmst Du für die Kommunikation nicht den SPI-Bus? Dafür ist er 
gemacht!

von spess53 (Gast)


Lesenswert?

Hi

Nur zur Sicherheit: Die Massen beide Controller sind verbunden?

MfG Spess

von Kaj (Gast)


Lesenswert?

SPI oder U(S)ART und alles wird einfacher.

Aber davon mal ab: wie programmierst du die µC?
Sind es Arduino-Boards?
Sind die µC fest verdrahtet in der schaltung oder machst du das z.B. 
über Sockel mit externen Programmer (z.B. Avr Dragon) und musst den µC 
immer aus der Schaltung nehmen zum proggen?
Wie flasht du die µC (ISP oder JTAG)?

Wenn die JTAG-Fuse gesetzt ist, hast du das Problem das ein paar Pins 
andere Pegel haben! Weiß aber grad nicht aus dem Kopf, welche Pins das 
jetzt genau sind.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Marcel Forer schrieb:
> Das ganze soll eine Kommunikationsmöglichkeit zwischen den 2 MCs werden,
> wobei MC1 ausschließlich Befehle versendet und MC2 ausschließlich
> Befehle empfängt.

und was ist wenn der Befehlsempfänger etwas zurückmelden möchte, weil 
z.B.
- ein verstümmelter oder grundsätzlich unverstandener Befehl ankommt?
- dem Empfänger grad nicht wie Befehlsausführung zuwohle ist?
- der Empfänger irgendwie fröhlich mitteilen möchte "ich habe fertig"?

--> In dem Falle wäre es meines Erachtens zweckmäßig, wenn da nicht nur 
das "du bist ein dummer Sklave und machst was ich verlange", sondern dem 
Sklaven auch ein gewisses Mitspracherecht (sogar: Mitsprachepflicht) 
eingeräumt wird.

Selbst die primitivste Parallelport-Schnittstellenimplementation kennt 
da ja ein hin-und-her Handshake in Form von "strobe" und "busy"

von Marcel F. (shadow992)


Lesenswert?

Die 2 MCs sind fest verlötet auf der Platine und sollen auch nicht mehr 
runter.
Zum Programmieren nehme ich 2 selbstgebaute Pin-Stecker, die fest auf 
der Platine verlötet sind und programmiere über ISP.

Die softwareseitige Kommunikation ist kein Problem.
Fuse-Bits habe ich keinen einzigen gesetzt.

Die Minuse sind miteinander verbunden genauso wie die Pluse.

Ein Aus/Umlöten ist nicht möglich, ich möchte also zwingend diese 4 Pins 
zur Kommunikation verwenden.

Es ist einer dieser 4Pins für eine derartige "Habe Fertig" Nachricht. 
Das ist aber nicht das Problem.

von platin watcher (Gast)


Lesenswert?

Marcel Forer schrieb:
> Die 2 MCs sind fest verlötet auf der Platine und sollen auch nicht mehr
> runter.

Ist ja vielleicht nicht nötig. Zeig mal die beiden "Platinen". Dann wird 
vielleicht noch was anständiges draus.

von Marcel F. (shadow992)


Lesenswert?

Die komplette Elektronik ist richtig verlötet und funktioniert. Das 
Ganze ist für einen kleinen Aufzug mit Fernbedienung gemacht. 1 MC 
überwacht alle Knöpfe, der andere kümmert sich um die Motorsteuerung, 
Zeitüberwachung usw.
Also da jetzt alles runterzulöten ist keine Alternative, bevor ich das 
alles ablöten muss, geb ich das Projekt auf.

Aber das will ich ehrlich gesagt auch nicht. :D
Nein also ich will bloß herausfinden wieso ich nur 3.8V statt 5.0V 
rauskriege obwohl ich alles parallel geschalten habe (wobei ich anmerken 
muss, dass momentan nur eine einzige LED angesteuert wird, der Rest 
nicht, also sollte das auch nicht der Auslöser sein).

Ich habe zwar theoretisch auch einen Schaltplan, aber der ist 
gigantisch.

von messlatte (Gast)


Lesenswert?

Marcel Forer schrieb:
> Nein also ich will bloß herausfinden wieso ich nur 3.8V statt 5.0V

Wie lang sind die Leitungen, wie und mit was hast du gemessen?

von spess53 (Gast)


Lesenswert?

Hi

>Nur wenn ich den Pin (z.b. PD0) gegen Masse messe, dann zeigt er mir
>3.8V an.

Gegen was anderes als Masse misst du sonst.

>Damit sieht MC2 es nicht als high an und schreibt auch nichts in eine
>Variable.

Das stimmt nicht. Ab einem Pegel von 0,6xVCC wir ein H erkannt.

Fall die Schaltung in Ordnung ist würde ich sagen hier kämpfen zwei 
Ausgänge gegeneinander.

MfG Spess

von Thomas E. (thomase)


Lesenswert?

spess53 schrieb:
> Fall die Schaltung in Ordnung ist würde ich sagen hier kämpfen zwei
> Ausgänge gegeneinander.
Das riecht danach.

mfg.

von Wilhelm F. (Gast)


Lesenswert?

spess53 schrieb:

> Fall die Schaltung in Ordnung ist würde ich sagen hier kämpfen zwei
> Ausgänge gegeneinander.

Hätte er dann nicht eher U/2 gemessen? Angenommen natürlich, daß die 
Ausgänge am µC symmetrisch sind, und die Pins zur Messung im statischen 
Zustand sind. Bei CMOS-Gatterbausteinen ist das bspw. so, wenn man 
irgendwo einen "Kurzen" zwischen zwei Ausgängen mit gegensätzlichem 
Pegel hat.

Am Ende hängt da an diesem Ausgang noch die genannte LED mit dran, mit 
höherem Strom? Das verzieht die Pegel natürlich auch, weg von VCC.

von Karl H. (kbuchegg)


Lesenswert?

Marcel Forer schrieb:
> Die komplette Elektronik ist richtig verlötet und funktioniert. Das
> Ganze ist für einen kleinen Aufzug mit Fernbedienung gemacht. 1 MC
> überwacht alle Knöpfe, der andere kümmert sich um die Motorsteuerung,
> Zeitüberwachung usw.
> Also da jetzt alles runterzulöten ist keine Alternative, bevor ich das
> alles ablöten muss, geb ich das Projekt auf.

Das einzige was du aufgeben solltest, ist der Einsatz von 2 µC, wo einer 
alleine sich schon fadisiert.

Mehrere µC machen die Dinge nicht einfacher, sondern schwieriger.

Und in deinem Fall ist die Aufgabenstellung so dermassen trivial, dass 
der µC nebenher noch Sudoku lösen kann, damit ihm nicht vor Langeweile 
die Pins ausfallen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Marcel Forer schrieb:
> Die Minuse sind miteinander verbunden genauso wie die Pluse.
Was ist denn das für eine Sprache?

Marcel Forer schrieb:
> Nur wenn ich den Pin (z.b. PD0) gegen Masse messe, dann zeigt er mir
> 3.8V an. Damit sieht MC2 es nicht als high an und schreibt auch nichts
> in eine Variable.
Das würde mir zu denken geben. Denn 3,8V ist ein tadelloser Highpegel.

> Das wäre sicherlich besser aber würde ja nichts an meinem Problem
> ändern, weil 3.8V bleiben 3.8V egal ob das noch zusätzlich an - geht
> oder nicht oder irre ich mich da?
Du kämpfst da gegen Windmühlenflügel! Dein Problem liegt ganz 
woanders...

Marcel Forer schrieb:
> Die komplette Elektronik ist richtig verlötet und funktioniert.
Ja, anscheinend aber noch nicht ganz...
> Nein also ich will bloß herausfinden wieso ich nur 3.8V statt 5.0V
> rauskriege obwohl ich alles parallel geschalten habe
Dann zeig erst mal den Schaltplan. Damit aus "Raten" noch "Rat" werden 
könnte...
> Ich habe zwar theoretisch auch einen Schaltplan, aber der ist
> gigantisch.
Juckt doch nix.

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.