Hallo, kann mir jemand mal ein paar LLinks geben wo man nachlesen kann, möglichst in C wie man mit einem ATMega8 andere ATMega8 ansprechen kann? Felgendes vorhaben:ich möchte ein Grafikdisplay mit Touch an einen ATMega8 hängen, gleichzeitig soll dieser noch 2 temperaturen auslesen. Dann soll der ATMega8 auf dem LCD mehrere Menüs anzeigen. Wenn Menü 1 angezeigt wird und auf dem Touchscreen wird was gedrückt soll er das dann an ATMega8 1 weiter geben. Wenn Menü 2 angezeigt wird und auf dem Touchscreen wird was gedrückt soll er das dann an ATMega8 2 weiter geben. Wenn Menü 3 angezeigt wird und auf dem Touchscreen wird was gedrückt soll er das dann an ATMega8 3 weiter geben usw. Mir stellen sich hier nun die fragen, wie verbindet man mehrere als nur 2 ATMega8 miteinander? Wie sagt man dann "welchen" ATMega8 der "Haupt" ATMega8 ansprechen soll? Kann sich der "Haupt" ATMega8 merken welchen Menü zuletzt angezeigt wurde wenn man den Strom dann abschaltet und nach 1 - 2 Tagen wieder einschaltet? Wie wird das Touchscreen angeschlossen und ausgelesen? Danke euch schonmal.
Das geht mit jedem beliebigem Bus der vom mega8 unterstützt wird, ich würde mal I2C vorschlagen.
Hi Stellt sich die Frage: Warum mehrere kleine ATMega statt eines großen. MfG Spess
würde ich einen großen nehmen müsste ich von dort an alle leitungen die ich so benötige verlegen. Das werden einige Leitungen die von dort ab weggehen müssten. So dachte ich mir das ich überall dort wo ein Knotenpunkt ist, ich einen ATMega8 hinsetzen kann und dann nur die "paar" Leitungen zum "Haupt" ATMega8 legen muss.
Hi Um welche Entfernungen handelt es sich denn? MfG Spess
Wenn's denn sein muesste und das UART jeweils frei waere wuerd ich auf einem Kabel einen Bidirektionalen UART Bus mit RS422 verwenden. Wenn's auf einer Leiterplatte waere, wahrscheinlich SPI. I2C ist Ramsch, da muss man die Richtung umschalten. Aber. Auf einer Leiterplatte machen mehrere AVR wenig Sinn. So ein System ist schwer debugbar. Dafuer wuerde man viel Erfahrung brauchen, welche wahrscheinlich fehlt.
... schrieb: > I2C ist Ramsch, da > muss man die Richtung umschalten. Hö? I2C können die megas doch in Hardware, da muss man nichts umschalten.
Tobias N. schrieb: > Hallo, > > kann mir jemand mal ein paar LLinks geben wo man nachlesen kann, > möglichst in C wie man mit einem ATMega8 andere ATMega8 ansprechen kann? > > Felgendes vorhaben:ich möchte ein Grafikdisplay mit Touch an einen > ATMega8 hängen, gleichzeitig soll dieser noch 2 temperaturen auslesen. > Dann soll der ATMega8 auf dem LCD mehrere Menüs anzeigen. > > Wenn Menü 1 angezeigt wird und auf dem Touchscreen wird was gedrückt > soll er das dann an ATMega8 1 weiter geben. > > Wenn Menü 2 angezeigt wird und auf dem Touchscreen wird was gedrückt > soll er das dann an ATMega8 2 weiter geben. > > Wenn Menü 3 angezeigt wird und auf dem Touchscreen wird was gedrückt > soll er das dann an ATMega8 3 weiter geben Zunächst: Du wirst merken, dass für den zentralen Knoten ein Mega 8 etwas eng werden kann. Ich würde einen größeren nehmen, sowas in Richtung 644p oder so. Da passen dann auch noch mehrere Fonts rein. Und für die anderen nimmst Du besser Mega88p. Davon gibts bei Bedarf auch Versionen mit mehr Speicher: 168p, 328p. p steht für PicoPower, d.h. weniger Stromverbrauch. Und schneller sind die Teile auch noch, und sie haben noch einige Zusatzfunktionen. Der Mega8 ist eine alte Kamelle, lass den im Katalog. > Mir stellen sich hier nun die fragen, > > wie verbindet man mehrere als nur 2 ATMega8 miteinander? Schau mal nach RS485. Dazu brauchst Du den UART und einen MAX485 pro Knoten. Lies das hier: http://www.embeddedsys.com/subpages/resources/images/documents/microsys_art_RS485.pdf > Wie sagt man dann "welchen" ATMega8 der "Haupt" ATMega8 ansprechen soll? Einer spricht, die anderen hören mit, und der, der gemeint ist, merkt sich die Mitteilung. > Kann sich der "Haupt" ATMega8 merken welchen Menü zuletzt angezeigt > wurde wenn man den Strom dann abschaltet und nach 1 - 2 Tagen wieder > einschaltet? Ja. Für sowas gibts das EEPROM. > Wie wird das Touchscreen angeschlossen und ausgelesen? Googel nach der Appnote AVR341. Da stehts drin. Du brauchst 4 oder 5 analoge Eingänge, je nach Typ. Beim Mega 8 und den modernen Nachfolgern Mega88/168/328 hast DU nur 6 analoge Eingänge, und wenn Du dann noch I2C benutzen willst, hast Du nur noch 4, und wenn Du dann noch zwei analoge Temperatursensoren (KTY, AD592 oder PTC) hast, dann hast Du ein Problem. Deswegen die Empfehlung, einen 40-poligen Chip wie den Mega644p zu nehmen.
Frank K. schrieb: >> Wie sagt man dann "welchen" ATMega8 der "Haupt" ATMega8 ansprechen soll? > > Einer spricht, die anderen hören mit, und der, der gemeint ist, merkt > sich die Mitteilung. Ja, ok, aber die anderen sollen ja nicht nur "mithören" sondern sollen dem Hauptchip auch Datenmitteilen, also ob was geschaltet ist oder nicht usw. Frank K. schrieb: > Googel nach der Appnote AVR341. Da stehts drin. Du brauchst 4 oder 5 > analoge Eingänge, je nach Typ. Beim Mega 8 und den modernen Nachfolgern > Mega88/168/328 hast DU nur 6 analoge Eingänge, und wenn Du dann noch I2C > benutzen willst, hast Du nur noch 4, und wenn Du dann noch zwei analoge > Temperatursensoren (KTY, AD592 oder PTC) hast, dann hast Du ein Problem. > Deswegen die Empfehlung, einen 40-poligen Chip wie den Mega644p zu > nehmen. Also die Temperatursensoren werden schon digitale sein. An die anderen Chips kommen sachen wie ein Lichtsensor, Regensensor, Windsensor etc. allerdings an verschiedenen stellen, also es kommt nicht wirklich auf die sek. genau an wann die Daten im Konotenchip eintreffen sondern das sie halt eintreffen. Also die anderen Chip müssen Daten an den Knotenchip senden sowie enpfangen können.
Hi, Ich can die nur can Bus empfehlen. Entweder via SPi mcp Chip dranhängen oder auf at90can umsteigen
Hi Die Frage nach der Entfernung steht immer noch im Raum. MfG Spess
Tobias N. schrieb: >> Einer spricht, die anderen hören mit, und der, der gemeint ist, merkt >> sich die Mitteilung. > > Ja, ok, aber die anderen sollen ja nicht nur "mithören" sondern sollen > dem Hauptchip auch Datenmitteilen, also ob was geschaltet ist oder nicht > usw. Ein Rechnerverbund ist selten eine Demokratie. Einer spricht und die anderen hören zu, ist wörtlich zu nehmen. Der eine der spricht, kann ja seine Kumpanen reihum fragen: Hast du was für mich? Der eine in der Mitte ist der, der alles anleiert. Die anderen antworten nur, wenn sie gefragt werden. Das vermeidet das ganze Durcheinander, wenn alle zur gleichen Zeit 'reden'.
spess53 schrieb: > Hi > > Die Frage nach der Entfernung steht immer noch im Raum. > > MfG Spess Also von 2/3 Meter bis 20/30 Meter ist da so ziemlich alles drinne.
Tobias N. schrieb: > Frank K. schrieb: >>> Wie sagt man dann "welchen" ATMega8 der "Haupt" ATMega8 ansprechen soll? >> >> Einer spricht, die anderen hören mit, und der, der gemeint ist, merkt >> sich die Mitteilung. > > Ja, ok, aber die anderen sollen ja nicht nur "mithören" sondern sollen > dem Hauptchip auch Datenmitteilen, also ob was geschaltet ist oder nicht > usw. Klar. Ich habe ja nicht gesagt, dass nur einer senden kann. Alle Knoten sind gleichberechtigt. Heißt: Senden kann jeder, aber nur einer zur Zeit. Die anderen müssen hören. Dafür musst Du programmtechnisch sorgen. Lies den Artikel, dann weißt Du mehr. Hier wurde auch die Empfehlung CAN-Bus gegeben. Diese Empfehlung hat auch ihre Vorteile, aber es gibt nur relativ große AVRs mit CAN, und keiner hat DIL oder SO-Gehäuse. Dagegen gibts es viele PIC18 und PIC24 mit CAN im DIL-Gehäuse, oder Du musst einen extra CAN-Controller dazubauen, was nochmal extra Aufwand ist. Bei Microchip bekommst Du für nur wenig Geld mehr zum CAN-Controller noch einen Microcontroller im gleichen Gehäuse dazu (der in einem anderen Posting empfohlene Controllerchip MCP2515 ist praktisch der CAN-Controller, der in vielen PICs wie zB dem PIC18F26K80 eingebaut ist, und zwischen dem PIC18F26K80 und dem MCP2515 liegt nicht mal ein Euro Preisunterschied; dazu kann der PIC schneller auf seinen internen Controller zugreifen als ein AVR auf den externen). > Frank K. schrieb: >> Googel nach der Appnote AVR341. Da stehts drin. Du brauchst 4 oder 5 >> analoge Eingänge, je nach Typ. Beim Mega 8 und den modernen Nachfolgern >> Mega88/168/328 hast DU nur 6 analoge Eingänge, und wenn Du dann noch I2C >> benutzen willst, hast Du nur noch 4, und wenn Du dann noch zwei analoge >> Temperatursensoren (KTY, AD592 oder PTC) hast, dann hast Du ein Problem. >> Deswegen die Empfehlung, einen 40-poligen Chip wie den Mega644p zu >> nehmen. > > Also die Temperatursensoren werden schon digitale sein. An die anderen > Chips kommen sachen wie ein Lichtsensor, Regensensor, Windsensor etc. > allerdings an verschiedenen stellen, also es kommt nicht wirklich auf > die sek. genau an wann die Daten im Konotenchip eintreffen sondern das > sie halt eintreffen. > > Also die anderen Chip müssen Daten an den Knotenchip senden sowie > enpfangen können. Klar. Lies Dich schau und komm dann noch mal wieder. Und meine Chipempfehlungen stehen trotzdem. fchk
Hi >Also von 2/3 Meter bis 20/30 Meter ist da so ziemlich alles drinne. Dann wohl eher RS485. Geht aber auch mit CAN-Treiber (nicht CAN-Controller). Das ganze mit UART im Multi-processor Mode. Damit ist das, was Karl-Heinz hier Beitrag "Re: Wie mehrere ATMega( und LCD verbinden / kommunizieren" beschrieben hat einfach realisierbar. MfG spess
spess53 schrieb: >>Also von 2/3 Meter bis 20/30 Meter ist da so ziemlich alles drinne. > > Dann wohl eher RS485. Geht aber auch mit CAN-Treiber (nicht > CAN-Controller). Das ganze mit UART im Multi-processor Mode. Oder RS422, wenn eine 5-Draht-Leitung zur Verfügung steht (2 symmetrische Paare) + GND. Damit wäre Vollduplex möglich und man spart sich die Sende-/Empfangs-Umschaltung und braucht lediglich eine Slave-Adressierung um jeweils den sendeberechtigten Slave zu aktivieren. Gruß, Thorsten
Hi >Oder RS422, wenn eine 5-Draht-Leitung zur Verfügung steht (2 >symmetrische Paare) + GND. Damit wäre Vollduplex möglich und man spart >sich die Sende-/Empfangs-Umschaltung und braucht lediglich eine >Slave-Adressierung um jeweils den sendeberechtigten Slave zu aktivieren. Wenn ein Controller den Master übernimmt braucht man kein fullduplex. MfG Spess
Hallo, also bei diesen Anforderungen kann ich dir nur nochmal can bis empfehlen. Ein At90can32 macht seine Sache wirklich gut und den kann man auch leicht selber löten das ist ein großes tqfp Gehäuse. Vor allem der programmieraufwand ist durch can hält sehr gering da dass meiste Wie cdc oder Bus abitrierung in der Hardware steckt
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.