Hallo, ich plane ein Projekt mit einem ATmega32, mein erstes Projekt mit einem AVR. Ich studiere gerade das Datenblatt und habe festgestellt, daß I2C und SPI unterschiedliche Pins benutzen. Da ich mit dem AVR einen IC über SPI steuern möchte und gleichzeitig ein EEPROM (i2c) verwenden möchte stelle ich mir nun die Frage, ob man beides parallel laufen lassen kann? Derzeit habe ich nichts gegenteiliges im Datenblatt gefunden. Doch kenne ich es von den PICs, daß dies nicht möglich ist. Vielleicht kann mir das jemand von den AVR Profis beantworten ;) Danke im Vorraus, Netbandit
Und schon taucht die nächste Frage auf: ISP :-) Das Prinzip ist mir ja vom PIC bekannt, doch werden die PINs fürs SPI (GND,VCC,SCK,MOSI,MISO,RESET) ja auch in der Schaltung verwendet. Daher ist es bei bestimmten Pins eben notwendig beim Programmieren, den rest der Schaltung abzukoppeln. Ich habe dazu ein AMP Note von Atmel gefunden ( http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf ) bei dem die SCK,MOSI,MISO Pins mit 4,7KOhm Widerständen vom Rest der Schaltung abgekoppelt werden. Reicht das tatsächlich aus? Und behindert das nicht das SPI Modul bei der normalen Arbeit? Reset muß ja nicht abgekoppelt werden, aber bei VCC sehe ich noch nicht richtig durch... speist der Standart AVR ISP Programmer zum Programmieren keine Spannung ein, sondern versorgt sich durch die Spannung, welche die Schaltung selbst versorgt? In diesem Falle muß VCC ja nicht abgekoppelt werden. In diesem Falle schalte ich meine Schaltung einfach ein, stecke den Programmer ran und starte mit AVR Studeo einfach das Programmieren und nachdem er fertig programmiert ist geht der RESET Pin wieder auf 1 und das Programm beginnt... sehe ich das richtig?
Ich denke die Note ist dabei doch sehr ausdrücklich. Die meisten Programmer haben tristate outputs, d.h. wenn nicht programmiert wird hängen die in der Luft und stören deine schaltun nicht. Andersrum können die devices deine Schaltung nicht stören, da die 4k7 Widerstände bloß 1mA durchlassen und somit die Leitung nicht auf ihren wert ziehen können, sollte dieser vom programmer auf einem anderen pegel gehalten werden. Und zu spinnen sollten irgendwelche slaves auch nicht anfangen, da die bei spi erst über cs aktiviert werden müssen. Also u.U halt einen Pulldown/up je nach logik des cs pins an den pin ran, damit er deaktiviert ist und gut ist. Und ja du kannst spi und i2c gleichzeitig verwenden. Lässt sich meines wissens beides über interrupts regeln. mfg Flo
Hi Flo, ja an das mit dem /CS habe ich ja gar nicht gedacht, dann ist es ja einleuchtend :) Die Datenbätter von Atmel sind in der Tat gut gehalten, doch da mein englisch nicht so perfekt ist wollte ich mich eben nochmal absichern. Duch meine PIC Erfahrungen bin ich es halt gewohnt, daß I2C und SPI durch die gleiche µC Hardware realisiert wird, daher diese vielleicht etwas dummen Fragen. Danke für deine Antwort Netbandit
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.