Hallo,
Entschuldigen Sie bitte miner Deutsch, es ist not meine Mutter Sprache.
Ich habe STK500 und Dragon, unter Linux Debian etch, aber
avarice/avrdude/usw aus testing lenny (avarice: 2.7-2, avrdude: 5.5-4).
Wenn Ich "avrdude" benutzen, Ich kann lesen aus den ATTiny45
Mikrokontroller:
1
avrdude -p t45 -c dragon_isp -P usb -U lfuse:r:_rfl.txt:b
2
cat _rfl.txt
3
0b11100010
Aber mit "avarice" Ich habe:
1
root@debian:/home/alexey# avarice -g -j usb -P attiny45 -r
2
AVaRICE version 2.7, Jan 21 2008 13:02:19
3
4
Defaulting JTAG bitrate to 1 MHz. Make sure that the target
5
frequency is at least 4 MHz or you will likely encounter failures
6
controlling the target.
7
8
JTAG config starting.
9
Found a device: AVRDRAGON
10
Serial number: 00:a2:00:00:45:ea
11
Reported JTAG device ID: 0x0
12
Configured for device ID: 0x9206 attiny45 -- FORCED with attiny45
13
JTAG config complete.
14
JTAG ICE: Cannot synchronise
Ich kann finden diesen error nicht in Internet oder diesen Forum.
Bitte füge mal zusätzlich zu den schon vorhandenen Optionen die
Option -d hinzu. Diese schaltet die Debug-Informationen ein, und
man kann dann die Kommunikation des AVaRICE mit dem AVR Dragon
verfolgen. Das sollte uns einen Rückschluss geben, was denn genau
schief geht.
Allgemeine Abklärung: Ich wunsche zuerst die Sicherungen (fuses) zu
lesen, dann beginn zu programmiren/debug. Deshalb habe Ich die DWEN
Sicherung in 1 (ISP enabled, debug disabled). Unter Windows (AVR Studio
4) und mit derselbe Einrichtung Ich kann die Sicherungen zu lesen.
Danke Jörg!
Die Antwort 0xa9 heißt ``Illegal JTAG ID''. Jetzt wird es mir auch
sonnenklar: du versuchst, deinen ATtiny45 mit JTAG anzusprechen.
Das kann er natürlich nicht. Bitte füge die Option -w (oder
--debugwire) hinzu, dann müsste es gehen.
Unglücklicherweise es sagt wenig für mich.
Ich versuchte auch die "DWEN" Sicherung zu programmiren (1->0). Änliche
Antwort, aber mit eine asynchronous events (CRC OK, timeout).
Alexey wrote:
> Jetzt gibt es "a9" nicht. Aber "ac":
RSP_DEBUGWIRE_SYNC_FAILED
Das heißt, dass der debugWIRE-Modus nicht eingeschaltet ist. Den
muss man mittels ISP einschalten. AVaRICE kann aber kein ISP, dafür
muss man AVRDUDE benutzen.
> Ich versuchte auch die "DWEN" Sicherung zu programmiren (1->0).
Die Sicherungen (Fuses) lassen sich mittels debugWIRE weder lesen noch
schreiben. Das ist dem Prinzip von debugWIRE geschuldet.
Martin F. schrieb:
> habe einen ähnlichen Fehler glaube ich.
Dann mach doch bitte einen neuen Thread auf, statt nach über einem
Jahr irgendwas aufzuwärmen, was mit deinem Problem fast nichts zu
tun hat.
> response: 81 FF FF FF FF> JTAG id = 0xFFFFFFFF : Ver = 0xf : Device = 0xffff : Manuf = 0x7ff> Reported JTAG device ID: 0xFFFF
Huch!
> Configured for device ID: 0x9704 atmega1281 -- FORCED with atmega1281
^^^^^^
Wenn man eine Brechstange braucht, sollte man sich vor deren Einsatz
überlegen, ob's nicht ohne geht... Das Device sollte er schon
automatisch erkennen, sonst brauchst du auch nicht weiterzumachen.
> avarice --mkII --jtag usb --jtag-bitrate 6400KHz :4242 --ignore-intr> --write-fuses ff19c2 --part atmega1281 --read-fuses --debug
Bist du dir völlig sicher, dass dein ATmega1281 mit mehr als 25,6 MHz
Takt läuft? Oder warum sonst versuchst du, den JTAG-Takt so hoch
zu drehen?
Hallo Jörg,
ich dachte mir, dass das topic wohl auch ungefähr mein Problem
widerspiegelt. Habe halt nur ein anderes Gerät. Versuche es aber auch
über avarice. Ich habe allerdings erst seit kurzer Zeit mit der Materie
zu tun und Linux habe ich auch erst seit kurzem laufen.
Bei der JTAG device ID steht ja die Broadcastadresse. Das kann ja schon
nicht richtig sein.
Die Bitrate ist erstmal egal. funktioniert auch nicht mit der
Standardeinstellung von 250 kHz.
Was mich ansonsten stutzig macht:
Found a device: JTAGICEmkII
Serial number: 00:a0:00:00:2c:9d
JTAG ICE mkII sign-on message:
Communications protocol version: 1
M_MCU:
boot-loader FW version: 255
firmware version: 6.02
hardware version: 0
S_MCU:
boot-loader FW version: 255
firmware version: 6.02
hardware version: 0
Das die jeweilige Hardware version = 0 ist. Habe da schon den Verdacht
das der JTAG ICE einfach ne Macke hat.
Gruß Martin
Martin F. schrieb:
> Bei der JTAG device ID steht ja die Broadcastadresse.
Nein, mit "broadcast" hat das nicht viel zu tun. Offenbar werden vom
JTAG nur 1-bits rückgelesen. Das kann von einem Controller, der gar
nicht richtig am JTAG klemmt, über einen, desse JTAGEN-Fuse
ausgeschaltet ist, bis zu einem kaputten Kabel oder tatsächlichen
Problemen der Kommunikation des AVaRICE mit dem ICE alles Mögliche
sein.
> Die Bitrate ist erstmal egal.
Nicht wirklich. Eine zu hohe Bitrate ist eine Garantie dafür, dass
man sich zwar initial mit dem Target unterhalten kann, dann aber nicht
debuggen. OK, ich glaube, das Auslesen der JTAG ID müsste trotzdem
funktionieren.
> Was mich ansonsten stutzig macht:>> Found a device: JTAGICEmkII> Serial number: 00:a0:00:00:2c:9d> JTAG ICE mkII sign-on message:> Communications protocol version: 1> M_MCU:> boot-loader FW version: 255> firmware version: 6.02> hardware version: 0> S_MCU:> boot-loader FW version: 255> firmware version: 6.02> hardware version: 0>> Das die jeweilige Hardware version = 0 ist.
Das passt. Ist ein altes JTAG ICE aus der ersten Generation, sieht
man auch an der 00:a0 am Anfang der Seriennummer. Hier die Meldungen
meines eigenen JTAG ICE, auch ein A-Typ:
Found a device: JTAGICEmkII
Serial number: 00:a0:00:00:12:da
JTAG ICE mkII sign-on message:
Communications protocol version: 1
M_MCU:
boot-loader FW version: 255
firmware version: 5.44
hardware version: 0
S_MCU:
boot-loader FW version: 255
firmware version: 5.44
hardware version: 0
Ist halt noch nicht die allerneueste Firmware drauf, ansonsten
funktioniert das Teil aber so. Zum Vergleich, hier die Meldungen
eines neueren ICE:
Found a device: JTAGICEmkII
Serial number: 00:b0:00:00:11:5e
JTAG ICE mkII sign-on message:
Communications protocol version: 1
M_MCU:
boot-loader FW version: 255
firmware version: 5.37
hardware version: 0
S_MCU:
boot-loader FW version: 255
firmware version: 5.37
hardware version: 1
Wie man sieht, dort ist die S_MCU hardware revision gerade mal um 1
höher.
Schonmal großen Dank für die Info's.
Muss das mit den fuses mal checken. Es kann ansonsten noch sein, dass
der unter Linux noch nicht ganz bekannt ist. Wie gesagt, kenne mich mit
Linux noch nicht so gut aus, aber jeden Tag ein bißchen mehr. :)
Gruß Martin
Martin F. schrieb:
> Es kann ansonsten noch sein, dass> der unter Linux noch nicht ganz bekannt ist.
Nein, damit hat das nichts zu tun. Die Kommunikation zwischen Computer
und JTAG ICE klappt hervorragend. Was nicht klappt, ist die
Kommunikation des JTAG ICE mit deinem AVR.