Forum: Mikrocontroller und Digitale Elektronik ATmega32U4 über ISP Programmieren


von Andreas H. (terrapatrol)


Angehängte Dateien:

Lesenswert?

Hi Community,
für ein Projekt habe ich eigene Platinen bestellt. Im Grunde werden 
lediglich Messungen durchgeführt und auf einer SD-Card gespeichert.
Als µC verwende ich den ATmega32U4 den ich mittels ISP Schnittstelle und 
einem Arduino als ISP-Programmer programmiere. Normalerweise 
funktioniert das recht gut. Jedoch wenn der MISO Pin vom µC (Schaltplan 
siehe Bild 1) und der MISO Pin von der SD-Karten Schaltung (siehe Bild 
2) verbunden sind kommt ein Fehler in der Arduino Software, dass die 
Signatur des µC nicht passe.
Seit tagen probier ich das Problem zu lösen, finde jedoch keinen 
funktionierenden Weg.

Ich hoffe einer von euch kann mir helfen und verbleibe mit besten 
Grüßen!

von Mick (Gast)


Lesenswert?

Da musst du wohl oder übel den R9 zum Programmieren jeweils entfernen.

von BlaBla (Gast)


Lesenswert?

Bild 2: was ist IC1 für ein Baustein?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das dürfte ein 74xx125 sein, der wird gerne als Pegelwandler 
missbraucht.

von Andreas H. (terrapatrol)


Lesenswert?

Das ist ein LVC125A Chip.

von Frank K. (fchk)


Lesenswert?

Nimm ein 74AHCT1G126.

Pin 5: VCC -> VCC vom AVR
Pin 4: OUT -> MISO vom AVR
Pin 3: GND -> GND vom Rest
Pin 2: IN -> MISO direkt von der SD-Karte (ohne den Umweg über den 
74LVC125A)
Pin 1: OE -> !RST vom AVR

Dazu noch 1*100n direkt zwischen VCC und GND des 74AHCT1G126.

Was macht das?
Dieses IC lässt MISO nur durch, wenn das Reset-Signal high ist. Das ist 
es immer im normalen Betrieb. Beim Flashen ist Reset Low, und der 
Ausgang des Chips wird hochohmig und stört damit das Programmieren nicht 
mehr.

Außerdem sorgt der Chip als AHCT-Typ für eine korrekte Pegelwandlung 
3.3V -> 5V.

Weiterer Tipp: an SD-CS einmal 10k Pullup, damit die Karte beim 
Programmieren tatsächlich garantiert passiv bleibt.

fchk

: Bearbeitet durch User
von Timmo H. (masterfx)


Lesenswert?

Du musst den MISO Ausgang der aus dem LVC125A kommt über den SD_CS 
enablen, sonst treibt er nämlich gegen deinen ISP

von Andreas H. (terrapatrol)


Lesenswert?

Mit einem Transistor?

von Timmo H. (masterfx)


Lesenswert?

Nö, einfach das SD_CS parallel auf 4OE, anstatt ihn fest auf gnd zu 
legen.
Die meisten China SD-Karten Adapter machen es auch fast immer falsch und 
die Leute wundern sich dass warum man den uC dann nicht mehr 
programmieren kann. Diejenigen die den uC über den arduino bootloader 
flashen merken es natürlich nicht, bzw erst dann wenn ein zweiter SPI 
slave dazu kommt

: Bearbeitet durch User
von Andreas H. (terrapatrol)


Angehängte Dateien:

Lesenswert?

Also so?

von Timmo H. (masterfx)


Lesenswert?

Jup

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.