Habe lange nichts mehr mit uC unternommen, habe jetzt aber Bedarf: für den Zweck genügt ein Atmel Tiny 45 aus meinem Bestand. Habe noch einen angestaubten JtagICE mk2 mit DebugWIRE-Support. Habe den früher mit Avr Studio unter Windows 7 betrieben. Den PC gibts nicht mehr. Hätte einen Notebook mit Mac OS X und ggf. einen Linux Rechner. Frage: kann ich den Jtagice mk2 sinnvoll ohne Windows einsetzen? Wie würde man heute so ein Mini-Projkt angehen, welche Tools? Assembler genügt für meinen Zweck.
Schau dir mal das Crosspack an (https://www.obdev.at/products/crosspack/index-de.html), ist zwar etwas älter, benutze ich aber auch. Es beinhaltet avrdude 6.0.1, den avr-gcc 4.3, läuft ab Snow Leopard, kann das JTAG MK2 und den Attiny45 in ASM und C, außerdem kann man zum Coden Xcode verwenden oder Eclipse mit dem entsprechenden AVR-Plugin. Bei Xcode >= 4 empfehle ich Eclipse da bei diesen Xcode-Versionen das Code-Folding nicht mehr funktioniert. Eclipse ist hier dann viel kompfortabler, vor allem kann man auch aus Eclipse noch das Flashen starten (geht bei Xcode nicht, muss man aus dem Terminal heraus machen) und auch das Setzen der Fuse ist da besser.
:
Bearbeitet durch User
Danke für die detaillierte Antwort, passt perfekt für meinen Zweck! Hatte kaum noch mit einer Rückmeldung gerechnet. Eclipse kenne ich noch aus der Zeit von Symbian OS (Nokia). Mal gespannt wie das heute aussieht.
Muss nochmal nachfragen, bekomme das System nicht zum Laufen: - Das CrossPack AVR mit AVRDude 6.01, gcc etc ist installiert. - Eclipse mit dem dem AVR Plugin auch, ein kleines Projekt lässt sich kompilieren. - Einen neuen Tiny45 über drei kurze Leitungen an den JTAGICE mkII gepackt und mit 2,5V versorgt: Masse, Vcc und Reset/dW. Will über DebugWire arbeiten, wegen der verfügbaren I/Os am 8-Pin uC. Liegt vielleicht da schon das Problem? Egal ob ich einen Upload zum uC versuche oder Fuses auslesen will, es kommt eine Timeout-Fehlermeldung: avrdude: jtagmkII_close(): timeout/error communicating with programmer ... Configuration AVRDude: id = "jtag2dw"; desc = "Atmel JTAG ICE mkII in debugWire mode"; baudrate = 115200; type = "jtagmkii_dw"; connection_type = usb; Kommandozeile: avrdude -cjtag2dw -b19200 [...part specific options...] Dabei blinken einige LED am JTAGICE mkII und wenn ich einen Oszi an die Reiseleitung lege sehe ich ein ca 75ms langes Low. Davor- und danach High. Und wenn ich die 2,5V wegnehme merkt es der AVRDude und es kommt eine passende Fehlermeldung. Deutet vieles darauf hin dass ich mit dem DebugWire etwas falsch mache: muss ich die DebugWire Fusel vorher irgendwie anders setzen? Hatte vor Jahren mal mit DebugWire und unter Windows und AVR-Studio 6 experimentiert, da konnte ich soweit ich mich richtig erinnere die Fuse direkt setzen. Hoffe mir kann jemand den entscheidenden Hinweis geben, ansonsten: Guten Rutsch!
Habe erstmal die ISP-Pins SCK, MOSI und MISO angeschlossen, um eine Fehlerquelle auszuschalten. Außerdem die ISP-Konfiguration für den JTAGICE mkII Debugger für AVRDrude geladen. Damit gibts eine neue Fehlermeldung: Launching /usr/local/CrossPack-AVR-20131216/bin/avrdude -cjtag2isp -b115200 -pm16 Output: avrdude: usbdev_open(): did not find any USB device "usb" avrdude execution aborted Ist mir auch nicht ganz plausibel, da sich auf den SPI-Leitungen durchaus etwas tut. Konfiguration AVRDrude: id = "jtag2isp"; desc = "Atmel JTAG ICE mkII in ISP mode"; baudrate = 115200; type = "jtagmkii_isp"; connection_type = usb; Hat jemand eine Idee, ist vielleicht etwas mit dem USB_Treiber nicht in Ordnung?
Bin nicht zu hause, werde morgen mal schaun. Ist deine Zeile zum übertragen bzgl avrdude auch richtig? -cjtag2isp sieht mir falsch aus, da müsste doch ein Leerzeichen rein und -c jtag2isp stehen, oder?
Also bei mir schaut eine Zeile so aus: avrdude -p atmega328p -P usb -c avrispmkii -b 19200 -U flash:w:main.hex Leerzeichen sind aber anscheinend kein Problem. Da ich den Atmel JtagICE MK II nicht hab kann ich leider auch nicht wirklich sagen was hier das Problem sein kann. Da hab ich mit avrdude wieder zu wenig Erfahrung.
Vielen Dank für die Rückmeldung. Anscheinend mag AVRDude meinen JTAGICE mkII nicht. Ist soweit ich weiss ein Clone, war aber im Atmel Studio nicht unterscheidbar. Die Leerzeichen sind egal, da hast du Recht. Meine Komandozeile direkt im Terminal abgeschickt, so dass ich die originalen AVRDude-Fehlermeldungen sehe und nicht das was Eclipse daraus interpretiert: _____________________________________________________ avrdude -pt45 -cjtag2isp -P usb -b19200 -B100 -i100 -Uflash:w:BlinkingLED.hex:a avrdude: jtagmkII_setparm(): bad response to set parameter command: RSP_FAILED avrdude: jtagmkII_getsync(): ISP activation failed, trying debugWire avrdude: jtagmkII_setparm(): bad response to set parameter command: RSP_DEBUGWIRE_SYNC_FAILED avrdude: failed to sync with the JTAG ICE mkII in ISP mode avrdude: jtagmkII_close(): timeout/error communicating with programmer (status -1) avrdude done. Thank you. _____________________________________________________ -B100 -i100 sind Bremsen für die Kommunikationsgeschwindigkeit, hilft aber auch nicht. Vielleicht komme ich noch dahinter was hinter "RSP_FAILED" stecken kann.
Habe mal mit Option -v die Kommunikation zum Programmer/Debugger getestet, die geht. USB-Kommunikation ist nicht das Problem. Eigentlich deutet alles auf einen Verkabelungsfehler zum uC hin, habe ich aber schon x-Mal kontrolliert. Auch 5V statt 2,5V Vcc bringen nichts. avrdude -pt45 -cjtag2isp -v avrdude: Version 6.0.1, compiled on Dec 16 2013 at 17:26:24 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "/usr/local/CrossPack-AVR-20131216/etc/avrdude.conf" User configuration file is "/Users/Haus/.avrduderc" User configuration file does not exist or is not a regular file, skipping Using Port : usb Using Programmer : jtag2isp avrdude: usbdev_open(): Found JTAGICE mkII, serno: 070000004685 JTAG ICE mkII sign-on message: Communications protocol version: 1 M_MCU: boot-loader FW version: 255 firmware version: 7.38 hardware version: 0 S_MCU: boot-loader FW version: 255 firmware version: 7.38 hardware version: 1 Serial number: 07:00:00:00:46:85 Device ID: JTAGICEmkII avrdude: jtagmkII_setparm(): bad response to set parameter command: RSP_FAILED avrdude: jtagmkII_getsync(): ISP activation failed, trying debugWire avrdude: jtagmkII_setparm(): bad response to set parameter command: RSP_DEBUGWIRE_SYNC_FAILED avrdude: failed to sync with the JTAG ICE mkII in ISP mode avrdude: jtagmkII_close(): timeout/error communicating with programmer (status -1)
Bin einen Schritt weiter: nachdem ich zum x-ten Mal die paar ISP-Kabel geprüft und für gut befunden habe, wurde der uC gegen einen neuen Tiny45 getauscht. AVRDude aus der Kommandozeile erkennt ihn nun!!! Ich muss den uC irgendwie aus Eclipse heraus abgeschossen haben, vermutlich über die Fuses. Eclipse belegt die defaultmäßig mit 00 und wenn beim HEX-Upload die Fuse-Programmierung gesetzt ist, ist es um den uC vermutlich geschehen. Habe aber noch ein Problem AVRDude direkt aus Eclipse zu nutzen, hier lesen der Fuses: Launching /usr/local/CrossPack-AVR-20131216/bin/avrdude -cjtag2isp -pt45 -Ulfuse:r:/var/folders/g5/72xmcgkn19d1z9x1_f0fhgt00000gp/T/fuse0.hex:h -Uhfuse:r:/var/folders/g5/72xmcgkn19d1z9x1_f0fhgt00000gp/T/fuse1.hex:h -Uefuse:r:/var/folders/g5/72xmcgkn19d1z9x1_f0fhgt00000gp/T/fuse2.hex:h Output: avrdude: usbdev_open(): did not find any USB device "usb" avrdude execution aborted Genau die gleiche Kommandozeile funktioniert im Terminal. Merkwürdig.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.