mikrocontroller.net

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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Tony S. (tooony)


Angehängte Dateien:

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

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.

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