PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kommunikation zwischen 2 atmega



1.2.3.4.5.6.
20.08.2009, 13:04
Hallo zusammen - und erstmal herzlichen Glückwunsch zu diesem tollen Forum !!

Ich bastel gerade an einem Multifunktionsanzeige für mein altes Motorrad rum. Dabei möchte ich 2 atmega 8 und 32 einsetzen. Der atmega8 soll Temperaturen aufbereiten und dem atmega32 zur Verfügung stellen, der diese dann auf einem Nokia-Display anzeigt. Nach einigen erfolglosen Versuchen einer Direktverbindung und puldown-Schaltungen der Ein- und Ausgänge nun meine verzweifelte Frage an diese Runde:

gibt es einfache Beispiele (Schaltpläne und Software - programmiere in BASCOM) aus denen ich ablesen kann eine Verbindung von 2 atmegas funktioniert?

Würde mich über Hilfe freuen !!

Andreas

Crazy Harry
20.08.2009, 13:57
Hallo Andreas,

Verbindungsmöglichkeiten gibt es viele: I²C, SPI, RS232, ..... aber warum willst du einen Mega8 Temperaturen aufbereiten lassen ? Das macht der Mega32 doch locker noch nebenher.

gruss
Harry

1.2.3.4.5.6.
20.08.2009, 14:16
habe bisher einen ds1820 (raumtemperatur) als einen von 2 tempsensoren (der 2. für die öltemperatur) vorgesehen. die wait-intervalle machen mich nervös, da ich zusätzlich die drehzahl (ggf. grafisch) anzeigen möchte ... daher lag es für mich nahe, die zeitintensiven - aber nicht zeitkritischen- prozesse von einem sub-prozessor abwickeln zu lassen ... der 32'er soll sich dann um die drehzahl und das display (ggf noch weitere funktionen) kümmern ...

Andreas

BurningWave
20.08.2009, 16:07
ich weiß nicht, wie du die Temperaturen noch aufbereiten musst, aber wahrscheinlich braucht die Datenübertagung am Schluss länger, als ein paar Berechnungen. Zudem reicht es völlig das Display 1 mal pro Sekunde zu aktualisieren und ein Mega32 mit 16MHz kann in dieser Zeit sehr viel machen.

mfg

adelinde
20.08.2009, 16:29
habe bisher einen ds1820 (raumtemperatur) als einen von 2 tempsensoren (der 2. für die öltemperatur) vorgesehen. die wait-intervalle machen mich nervös,
Andreas

Hallo Andreas,
wo hast Du denn störende wait's bzw. wie stören die?
Ich denke auch, dass es eine einfachere Lösung gibt.

Ein wenig von deinem Code ist bestimmt hilfreich.

Gruß Siggi

oberallgeier
20.08.2009, 17:15
... Das macht der Mega32 doch locker noch nebenher ...Und wenn die 16 MHz beim m32 zu langsam sind, kann man einen mega328 nehmen - der hat zwar "nur" so wenig Pinne wie der mega 8, aber er fährt schon schneller, mit 20 MHz.

Vitis
20.08.2009, 18:55
hmmm ja, die DS1820 brauchen ne ganze Weile fürs Auslesen und der
µC ist unter Bascom in der Zeit blockiert ... doof halt.
Die Kommunikation kommt halt drauf an, sollen die Beiden µC auf
einer Leiterplatte sitzen, dann bietet sich I²C an.
Sitzen sie an verschiedenen Stellen des Krad, würde ich in
Richtung RS485 tendieren wegen der Störungsunanfälligkeit
der Verbindung.

Willa
20.08.2009, 19:23
Wieso dauert das auslesen denn so lange? Wenn ich mir den Beispielcode hier angucke:
http://mikrocontroller.jacob-pirna.de/1wire_bascom_ds1820_2.html
Scheint es so, als würde das ohne lange Wartezeiten funktionieren.....

Besserwessi
20.08.2009, 22:15
Es ist vermutlich einfacher das alles mit einem µC zu manchen, wobei auch 1 MHz als Takt schon reichen könnte. Das wäre dann immer noch schneller als früher mal ein Heimcomputer wie C64, Apple 2, Atri Spielkonsolen, Schneider CPC. Das einzige was eventuell zeitkritisch sein kann wäre das Display.

Vitis
20.08.2009, 22:19
ja, der µC wartet nicht lange, der DS1820 braucht aber
ewig für die Messung der Temperatur bis er den Wert
zurück gibt ... und zwischenzeitlich hängt die Kiste fest,
sprich der Drehzahlmesser wird da hängen, leider.

Mit LM75 schaut das besser aus, die gehen richtig fix
über den I²C-Bus

Besserwessi
21.08.2009, 09:39
Das ist dann wohl ein Problem der Implementierung des 1-Wire Interface bei BASCOM. Wenn es allein die Wartezeit ist, sollte es ja kein Problem sein die so abzufangen, das der µC nicht blockiert ist.

Vitis
21.08.2009, 16:16
die implementierung von 1-wire in software ist
halt so ne geschichte ... die erste fallende flanke
muss halt erkannt werden.
geschickt wär, das 1-wire auf nen Int-Pin des
µC zu legen, dann könnt man den dateneingang
int-basierend machen, auch in software 1-wire.
bei soft-uart hab ich das schon gemacht, geht tadellos.

Crazy Harry
21.08.2009, 19:28
Ich weiß nicht: ich messe 2 temperaturen, die bordspannung, frage den gang ab, werte nen gps-empfänger aus, messe die drehzahl und nen schaltblitz gibts auch noch ..... display 132x32 pixel ..... und hab keine probleme :D

achja: LM75 oder DS1820 für öltemperatur kannst du knicken

Vitis
22.08.2009, 08:39
da 1.2.3.4.5.6. sich eh nicht mehr zu Wort meldet wird die Diskussion eh
müßig sein, oder?

1.2.3.4.5.6.
22.08.2009, 13:27
... totgesagte leben länger ... :-) kann leider nicht so oft online sein (ca. jeden 2. tag - man müsste einfach mehr freizeit haben) :-(

für die öltemperatur hatte ich einen vdo-temp-sensor mit entsprechendem gewinde als ölablassschraubenersatz vorgesehen. den code für den ds habe ich hier aus dem forum zusammengesucht.
Leider kann ich bisher nur teilkomponenten testen und nicht das realverhalten des gesamtpaketes (was sich leider auch räumlich schwierig gestaltet - motorrad in köln und ich die ganze woche in bremen :-(
die drehzahl hole ich über einen interrupt (code hier aus dem forum), was für mich die wichtigste information ist.
derzeit gebe ich die einzelergebnisse (drehzahl über taster simuliert) über die rs232 aufm rechner aus - und wenn ich mir das da so anschaue wäre es mir zu langsam - daher die idee mit der parallelkonstruktion ...
die kombination ds und interrupt hört sich interessant an - finde ich hierzu irgendwo im forum ein paar tipps?

Vitis
22.08.2009, 21:16
hmmm ... weis ich nicht ob das schon wer gemacht hat hier.
wie gesagt, mit UART hab ich das schonmal gemacht, lief anstandslos.
Müsste man probieren.

Crazy Harry
26.08.2009, 20:11
für die öltemperatur hatte ich einen vdo-temp-sensor mit entsprechendem gewinde als ölablassschraubenersatz vorgesehen.
Aber hoffentlich einen potentialfreien ? Also mit 2 Anschlüssen und nicht massegebunden. Ansonsten wünsche ich dir viel Spaß mit dem Ding :lol:

Pr0gm4n
31.08.2009, 16:33
kann leider nicht so oft online sein (ca. jeden 2. tag - man müsste einfach mehr freizeit haben) :-(

also wenn du SO wenig freizeit hast, dann kannst du das Projekt sowieso knicken^^

trotzdem viel glück!