Hallo,
Ich verwende AVR Studio 6 SP1 und einen AVR Dragon.
Platine 1: mit ATMEGA32 DIP, ISP10, bereits mit Firmware geflasht, fuse
bits
SPIEN
BOOTSZ 256W_3F00
BODLEVEL 4V0
BODEN
EXTHIFXTALRES_16KCK_64MS
Ich kann die Device Information und Fuses auslesen und habe erfolgreich
ein Update der Firmware geflasht. Der Adapter ISP10->ISP6 ist Eigenbau,
aber scheint zu funktionieren ( zwei Pfostenleisten, etwa 20cm
Flachbandkabel, Adern am ISP10 Stecker entsprechend neu angeordnet ).
Setze ich einen neu gekauften und noch nie programmierten ATMEGA32 ein
scheitert das Auslesen der Device ID, Target Voltage wird mit nur 0.7V
angezeigt.
Platine 2: Pollin Atmel Evaluationsboard V 2.0, ATMEGA32 DIP, ISP10,
JTAG
Den bereits geflashten ATMEGA aus Platine 1 kann ich hier einsetzen und
über ISP auslesen. JTAG geht nicht da über die Fuses disabled.
Einen neuen ATMEGA kann ich über JTAG auslesen, über ISP bekomme ich den
gleichen 0.7V Fehler beim ID auslesen. Die initialen Fuse Bits des neuen
ATMEGA sind
JTAGEN
SPIEN
BOOTSZ 2048W_3800
BODLEVEL 2V7
INTRCOSC_1MHZ_6CK_64MS_DEFAULT
Ich hatte zunächst den ISP Takt in Verdacht, und im Dragon von 1MHz auf
125kHz reduziert ( sollte mit dem INTRCOSC 1MHz dann laufen ). Kein
Erfolg. Dann habe ich den neuen ATMEGA komplett mit Firmware und Fuses
für Platine 1 per JTAG bespielt, und dort eingesetzt. Funktioniert
einwandfrei und er lässt sich in Platine 1 über ISP auslesen.
Das Problem ist also, dass ich neue ATMEGAS nicht über ISP ansprechen
kann, nur über JTAG. Nach Programmieren über JTAG geht auch ISP.
Leider gibt es nun eine Platine 3, mit einem fest verlöteten ATMEGA32
SMD und nur ISP10 auf dem Board. Auch den kann ich nicht über ISP
ansprechen, 0.7V werden angezeigt.
Die Spannungsversorgung der Platinen habe ich jeweils aktiviert und
geprüft, das sollte es auch nicht sein, zumal es über JTAG ja geht, und
auch über ISP wenn der Chip nicht neu ist...
Übersehe ich hier etwas Offensichtliches?
spess53 schrieb:> Wie hoch ist dein ISP-Takt? Bei einem neuen ATMega32 muss er *kleiner*> als 250 kHz sein.
Stimmt nur bedingt, er muss nur kleiner als 1/4 des Taktes sein. Also in
diesem Fall nur, wenn der Atmega mit 1MHz getaktet ist. Bei 8MHZ gehen
bis 2MHz ISP Frequenz.
Hi
>Stimmt nur bedingt, er muss nur kleiner als 1/4 des Taktes sein. Also in>diesem Fall nur, wenn der Atmega mit 1MHz getaktet ist. Bei 8MHZ gehen>bis 2MHz ISP Frequenz.
Ein ATMega32 wird mit 1MHz Takt ausgeliefert.
MfG Spess
Er hat doch schon 125kHz ISP Takt versucht, weil er das mit dem ISP Takt
versus CPU Takt schon verstanden hat. Tip: Erst zweimal lesen, dann
antworten.
Ich habe mal gelesen, dass das Kabel zwischen dem Dragon und dem
Mikrocontroller nicht länger als 30cm sein soll.
> 0.7V werden angezeigt.
Das hat aber nichts mit der Kommunikation zum AVR zu tun. Die Spannung
wird einfach gemessen. Prüfe mal, ob der VCC Pin des ISP Stecker
beschaltet ist. Falls nciht, verbinde ihn mit VCC vom AVR.
Der Dragon hängt vom VCC am ISP Stecker ab. Wenn der Pin nicht
beschaltet ist, funktioniert er nicht.
Das Pollin Board (zumindest meins) hat einen recht großen Kondensator am
Reset Pin. Ich musste ihn erheblich verkleinern (auf 100nF), damit die
ISP Schnittstelle zuverlässig funktionierte.
Stefan, dein Tipp hat mich auf die richtige Spur gebracht!
Ich habe VCC am Pollin Board gemessen, war ok. Dann direkt auf dem
Dragon an den ISP Pins gemessen, und hatte die ominösen 0.7V.
Die VCC Leitung des Adapters war ok. Aber ich habe GND beim ISP10 nur
auf Pin 4 gelegt. Sollte eigentlich gehen, da Pin 4, 6,8, 10 GND sind
und normal auf der Leiterplatte verbunden. Bei Pollin hat man sich aber
überlegt nur 6,8,10 auf GND zu legen, und 4 in der Luft hängen zu
lassen. Einfach 4-6 auf dem Pollin Board gebrückt, jetzt geht es!
Ich vermute, dass das Problem mit der Platine 3 der ISP Takt war. Den
habe ich zwar später auf 125 kHz reduziert, aber nicht mehr mit Platine
3 getestet, sonder mit dem Pollin Board.
Auf Platine 3 gibt es noch etwas zu reparieren, wenn das gemacht ist
probiere ich es über ISP nochmal, ich glaube das müsste dann
funktionieren.