Forum: Mikrocontroller und Digitale Elektronik AVR-Dragon Problem mit SPIEN beim Debug on Wire


von U. B. (ub007)


Lesenswert?

Hallo !

Ich habe ein Board mit einem ATMEL uC und habe bisher wie folgt den Code 
zum uC rübergeladen. Debug - Start Debugging - und wenn SPIEN noch nicht 
gesetzt war kam ein Pop-Up mit ISP oder SPI. Danach habe ich SPI gesetzt 
und danach konnte ich debuggen. Das funktioniert auch immer wieder.
Jetzt haben wir das gleiche Board 10 mal fertigen lassen und ich sollte 
die ersten Boards mal programmieren.
Jetzt auf einmal ist das so, dass ich die neuen Boards zwar per Dragon 
erreiche, aber er versucht dann den SPI im benannten Pop-Up zu setzen 
und dann kommt - Failed to enter SPI mode. Check if Cable... If SPIEN 
fuse is not enabled, the part must be programmed in high voltage.
Setze ich wieder mein altes Board ein, funktioniert alles wie gehabt und 
kann debuggen.
Selbst wenn ich die Fuse SPIEN bzw. DWEN programmiere macht er es zwar 
aber beim auslesen hat er wieder die alten Werte drinstehen.
Wer kann mir helfen ?

Gruß Uli

von Arnold (Gast)


Lesenswert?

Hallo Uli,

Was hast Du für einen Controller?
Kannst Du mit ISP die Fuses auslesen? Wie ist dann deine SPI Fuse?
Kommst Du wirklich auf den µC? Täuscht ev. nur die Fehlermeldung?
Ist Deine Beschaltung (Auch Reset) auf dem neuen Board 100% identisch 
zum Testboard?

Das nur als erste Idee...

Gruß
Arnold

von U. B. (ub007)


Lesenswert?

Hallo Arnold !

Controller ist der AT90PWM3B.
Also der Dragon liest zwar aus, aber ich bin mir nicht so sicher ob das 
stimmt was er da anzeigt, weil bei meinem TestBoard was ja funktioniert,
die Fuses bei SPIEN und DWEN auch nicht gesetzt sind und trotzdem 
programmiert werden kann (zumindest das HEX-File kann ich zum uC 
rüberschieben). Das Adapter-Kabel ist nur eines - für beide Geräte. 
Insofern kann am ISP-Stecker nichts falsch sein, sonst könnte ich beim 
TestBoard keine Programme mehr rüber bringen.
Ich habe gerade ein Upgrade von AVR-Studio 4.17SP3 auf 4.18SP3 gemacht 
mit anschließendem Upgrade des Dragons, aber das hat auch nichts 
gebracht.

Gruß Uli

von Arnold (Gast)


Lesenswert?

Hallo Uli,

ich denke es gibt ein Hardwareproblem auf Deinen neuen Boards.
Versuch doch mal die hex Datei aus dem Controller zu lesen und per 
Ultraedit mit der Originalen zu vergleichen. So kannst Du feststellen, 
ob Du wirklich programmierst.

Kannst Du denn per ISP debuggen?

Ist Deine Prog./Debug Beschaltung bei Deinem Testboard identisch zu den 
neuen Boards?

Gruß Arnold

von U. B. (ub007)


Lesenswert?

Hi Arnold !

Ich schreibs zwischen die Zeilen...

Arnold schrieb:
> Versuch doch mal die hex Datei aus dem Controller zu lesen und per
> Ultraedit mit der Originalen zu vergleichen. So kannst Du feststellen,
> ob Du wirklich programmierst.

Das habe ich aber im PP/HVSP-Modus wieder zurückgelesen, denn mit ISP 
funktioniert gar nichts.
Das rübergeladene HEX-Intel-File ist mit lauter FF voll - also konnte er 
gar nichts brennen.

>
> Kannst Du denn per ISP debuggen?
>

Im ISP-Modus geht gar nichts. Bei meinem Test-Board mußte ich auch auf
den PP/HVSP-Modus schalten damit das debugging funktioniert.

> Ist Deine Prog./Debug Beschaltung bei Deinem Testboard identisch zu den
> neuen Boards?

Was die Reset-Leitung/MISO/MOSI und SCLK angeht ist sie identisch aber 
ein Umbau bei anderen PINS hat natürlich stattgefunden.

Gruß Uli

von Fantastisch (Gast)


Lesenswert?

nur so als info:

mittels ISP kann nicht debuggt werden !

ISP ist für die In System Programmierung.

DW oder Debug Wire kann zum debuggen genutzt werden.

PP/HVSP kann ebenfalls nur zur Programmierung genutzt werden.

zwei weitere möglichkeiten zum Debuggen:
JTAG und PDI

Welche Debugvariante verwendet werden kann ist Device abhänig.

eine weitere Stolperfalle: wenn SPIEN deaktiviert ist (je nach 
Programmingtool Bit gesetzt oder gelöscht) ist ISP nicht mehr möglich.
Dann kann das Device nur noch via PP/HVSP wider in den ursprungszustand 
gesetzt werden.

gruss Vier

von U. B. (ub007)


Lesenswert?

Hallo !

Ich hab mir nochmal den Schaltplan angeschaut und auf meinen Testboard 
fehlte die serielle Schnittstelle (über SPI) für das Debugging, da wir 
das Bauteil nicht beschaffen konnten.
In den neuen Boards war diese aber eingebaut und nachdem diese 
Schnittstelle kein CS hatte, lag es an der SCLK-Leitung die mir in die 
Suppe spuckte.
Widerstand mit 4.7k in die SCLK-Leitung eingesetzt und siehe da - es 
funktioniert !
Insofern hatte Arnold recht !

Danke !

Gruß Uli

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.