Hallo allerseits, ich hätte mal eine kurze - vielleicht triviale - Frage: Ich möchte zwischen einem ATmega für eine recht simple Anwendung eine I2C Kommunikation zwischen einem ATmega und meinem Raspberry Pi aufbauen. Die ATmegas in meiner Bastelkiste wünschen sich alle VCC=5V. Der Raspberry mag ja an den GPIO's nur 3.3V. Zunächst dachte ich an Pegelwandler, allerdings ist mir dann der ATmega32L über den Weg gelaufen (http://www.atmel.com/Images/doc2503.pdf). Das Datenblatt spricht von Operating Voltage: 2.7V - 5.5V. Kann ich den Mega nicht einfach über die 3.3V vom Raspberry speisen und alle Sorgen gehören der Vergangenheit an? Sprich geht VCC=3.3V beim ATmega32L und hab ich dann auch im High-Zustand diese 3.3V an den Pins? Danke schön für's Lesen! Peter N.
Aber dann nur 8 MHz und keine 16 MHz. Schau ins Datenblatt! fchk
Frank K. schrieb: > Aber dann nur 8 MHz und keine 16 MHz. Mehr macht der ATmega32*L* offiziell auch bei 5 V aber nicht …
Frank K. schrieb: > Aber dann nur 8 MHz und keine 16 MHz. Schau ins Datenblatt! > > fchk Jepp danke, das hab ich gesehen. Eine ergänzende Frage noch: Ist es nötig irgendwelche Fuse-bits zu setzen wenn ich eine andere VCC nehme, oder nicht? Sprich, kann ich ihn aus einer 5V-Schaltung herausnehmen und in eine 3,3V Schaltung einsetzen, ohne irgendetwas umzuprogrammieren? Danke soweit.
Peter N. schrieb: > Ist es > nötig irgendwelche Fuse-bits zu setzen wenn ich eine andere VCC nehme, > oder nicht? Musst du nichts umstellen. Lediglich, wenn du einen anderen Oszillator benutzen willst (bspw. 8 MHz statt der standardmäßigen 1 MHz), musst du Fuses ändern. > Sprich, kann ich ihn aus einer 5V-Schaltung herausnehmen und in eine > 3,3V Schaltung einsetzen, ohne irgendetwas umzuprogrammieren? Ja. CMOS halt. „Klassische“ CMOS-ICs (CD40xx) funktionieren ja auch zwischen 5 und 15 V.
Peter N. schrieb: > ich hätte mal eine kurze - vielleicht triviale - Frage: Ich möchte > zwischen einem ATmega für eine recht simple Anwendung eine I2C > Kommunikation zwischen einem ATmega und meinem Raspberry Pi aufbauen. > Die ATmegas in meiner Bastelkiste wünschen sich alle VCC=5V. Der > Raspberry mag ja an den GPIO's nur 3.3V. Bei I2C ziehen alle angeschlossenen Geräte nur gegen GND, nie gegen VCC. Das machen nur die zwei Pullups. Der RasPi hat schon relativ kleine Pullups zu 3.3V integriert (jeweils 1.8kΩ). Alle nicht ganz alten AVRs (und selbst die meistens) erkennen das zuverlässig als High-Pegel, selbst wenn sie mit VCC 5V laufen, solange die Leitungen nicht kilometerlang werden. Sogar wenn die I2C-Bibliothek des AVR den internen Pullup (20-50kΩ, siehe Datenblatt) eingangsseitig aktivieren sollte, passiert immer noch nichts gravierendes. Du kannst also bei I2C getrost RasPi und AVR direkt miteinander verbinden. Natürlich sollte der AVR nie einen Ausgangs-High-Pegel auf eine I2C-Leitung legen. LG, Sebastian
Sebastian W. schrieb: > > Natürlich sollte der AVR nie einen Ausgangs-High-Pegel auf eine > I2C-Leitung legen. > > LG, Sebastian Das klingt riskant :)
No risk, no fun. Für Tilda (http://tilda.googlecode.com) z.B. lasse ich den Attiny mit 5V laufen, um einen Ultraschallsensor mit nur einer Datenleitung anbinden zu können:
1 | // Note: The HC-SR04 Echo line is pulled down with about 36 Ohms.
|
2 | // A 3.3V Attiny has not enough power on the output pin to pull the HC-SR04 Echo line
|
3 | // high enough to prepare the Trigger, thus PDISTTRIG!=PDISTECHO
|
4 | // At 5V Attiny sources 60mA to the Echo line to pull the Trigger to 2.2V,
|
5 | // which is sufficient for the HC-SR04.
|
Aber mit 3.3V VCC für den Atmega/Attiny bist du natürlich immer auf der sichereren Seite. LG, Sebastian PS: Der RasPi hat manchmal Probleme mit I2C, siehe http://elinux.org/BCM2835_datasheet_errata#p35_I2C_clock_stretching, https://github.com/raspberrypi/linux/issues/254, http://www.advamation.com/knowhow/raspberrypi/rpi-i2c-bug.html und https://dl.dropboxusercontent.com/u/3669512/2835_I2C%20interface.pdf. Du solltest also Mechanismen einbauen, um korrupte I2C-Kommunikation aufzufangen (Checksums, Retransmissions, ...).
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.