Hallo, ich möchte gern zwischen 2 ATMegas Daten bidirektional übertragen, wobei einer als Master fungiert (d.h. er initiiert die Übertragung). In meinem Fall möchte ich einen ATMega8 mit 8MHz/intern verwenden, um ein GLCD incl. Touchpanel anzusteuern, und eine API zur Ausgabe und Eingabe (Text, Buttons ...) zur Verfügung zu stellen. Diese "LCD-Einheit" will ich dann in anderen Geräten wiederverwenden. Die Ansteuerung dieser "LCD-Einheit" soll über einen anderen µC (z.B. ATMega8 @16MHz-extern), der dann als Master dient, erfolgen. Alle ATMegas werden aber die ISP-Schnittstelle verwenden (die "LCD-Einheit" evt. noch den ADS7843 an der SPI haben) und die TWI/I²C-Schnittstelle ist auch benutzt (Temperaturfühler, RTC, ...). Ich würde gern die SPI-Schnittstelle bevorzugen, weiss aber nicht, wie ich den dadurch entstehenden Problemen aus dem Weg gehen kann (in der ApplicationNote042 habe ich etwas von Widerständen gesehen, um ISP und SPI zu verwenden). Nach meinem derzeitigen Kenntnisstan, würde ich meinen, das die Verwendung von TWI leichter umzusetzen ist. Die serielle Schnittstelle setzt wohl voraus, das ich bei den miteinander verbundenen ATMegas externe Taktgeber verwende, den ich aber bei der "LCD-Einheit" aus Platzgründen sparen wollte. Hat jemand schon Erfahrungen sammeln können, um mir hier einige Tipps zu geben damit mir einige Tage der Verzweifelung erspart bleiben? Vielen Dank Alex
ich habe auch mehrere geräte an einem spi-bus hängen und programmiere auch die zwei atmels, die daran hängen per isp. geht völlig problemlos. du musst nur aufpassen, dass der bus nicht belegt ist, wenn du programmieren willst. dazu evtl deine reset- (und SS-) pins ver-oder-n und jeweils an einen portpin der atmels legen. wenn beim oder-gatter eine 1 rauskommt, haben alle atmels ruhig zu sein.
Hallo, du brauchst keine externen Taktgeber bei SPI, du verwechselst das wohl mit USART. Aber so weit ich seh, verwendest du den USART noch nicht. Also benutz diesen doch einfach und mach den Quarz an deinem Slave, das bissl Platz. Falls viele Daten in kurzer 'Zeit gesendet werden müssen ist SPI wohl am besten. TWI und USART sind nit so schnell. GRUSS und nacht
alex wrote: > Die serielle Schnittstelle setzt wohl voraus, das ich bei den > miteinander verbundenen ATMegas externe Taktgeber verwende, den ich aber @fubul1000 er meint damit wohl einen externen baudratenquarz, um fehler zu vermeiden, die sich aus unpassender und variirender frequenz des internen osziallators ergeben. außerdem er hat serielle schnittstelle geschrieben, was eher auf die uart als auf spi hindeutet... fubul1000 wrote: > Falls viele Daten in kurzer 'Zeit gesendet werden müssen ist SPI wohl am > besten. TWI und USART sind nit so schnell. twi ist wirklich lahm, dafür hat es das nette feature des automatischen adress-vergleichs und sogar bei manchen avrs die möglichkeit, den µc so aus dem sleep zu holen. uart geht iirc mit max fcpu/8, spi geht mit max fcpu/2. da musst du dann aber schon auf deine leitungen aufpassen.
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.