www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Datenübertragung zwischen ATMegas - SPI/TWI/Ser


Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: fubu1000 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.