Forum: Mikrocontroller und Digitale Elektronik AVR: SPI und ISP über Pegelwandler


von Tony S. (tooony)


Angehängte Dateien:

Lesenswert?

Hallo in die Runde,

aktuell stehe ich vor folgendem Problem:

Ein AVR, konkret der ATmega2560, kommuniziert via SPI mit einigen 
Slaves. Der AVR läuft mit 5V (16 MHz), die SPI-Slaves laufen auf 5V oder 
3,3V. Durch die unterschiedlichen Spannungsebenen setze ich Pegelwandler 
für die SPI-Leitungen ein:

- von 5V auf 3,3V (SCK, MOSI, CS1, ...): 74HC4050D
- von 3,3V auf 5V (MISO): 74AHCT1G125

Das ganze funktioniert auch wunderbar. Das Gatter für die MISO-Leitung 
(74AHCT1G125) wird aktiviert, wenn der AVR mit einem 3,3V SPI-Slave 
kommunizieren soll. Die Programmierung des AVR erfolgt via ISP-Interface 
auf der 5V Ebene (klassischer ISP Pinheader). Den aktuellen 
Schaltungsteil habe ich im Bild avr-spi-interface.png angehangen, 
dargestellt ohne SPI-Slaves.

Zum Problem: Auf der Platine wird ein Compute Module 3+ eingesetzt. Mit 
diesem soll es möglich sein, den AVR via avrdude zu programmieren. 
Folglich muss das CM3+ auf der 3,3V Ebene an die SPI-Leitungen 
angebunden werden. Hierfür habe ich die Schaltung entsprechend erweitert 
(Bild avr-spi-isp-interface.png). Das Ganze habe ich via Breadboard 
aufgebaut und verkabelt. Im Fokus des ersten tests steht dabei zunächst 
mittels avrdude vom CM3+ auf den AVR zu kommen, deswegen ist das Gatter 
für MISO testweise permanent aktiviert. Später muss dieses dann 
natürlich umschalten in Abhängigkeit der Resetleitung (ISP) bzw. wenn 
mit 3,3V SPI-Slaves gesprochen werden soll.

Nun ist es so, dass das Ansprechen des AVRs via ISP und avrdude vom CM3+ 
mit dem Schaltungsentwurf nicht funktioniert (initialization failed, 
rc=-1). Testweise habe ich die SCK und MISO-Leitungen ohne Gatter direkt 
an den AVR gehangen, da dieser ja auch 3,3V Signale bei 5V erkennt - 
ohne Erfolg.

Die einzelnen Signale kommen ordnetlich an den entsprechenden Stellen 
an. Kann dies ein Timing-Problem sein? Aktuell sieht es so aus, dass die 
MOSI-Leitung das Problem verursacht: Ersetze ich den Pegelwandler für 
die MOSI-Leitung mit einem Spannungsteiler, funktioniert alles wie es 
soll.

Hat jemand eine Idee, was das Problem sein könnte?  Ist der 
Schaltungsentwurf der eleganteste Ansatz für mein Vorhaben?

Vielen Dank für eure Mühe!

Gruß,
Tony

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
Noch kein Account? Hier anmelden.