Offline
Newbie
Karma: 0
Posts: 47
|
 |
« on: March 19, 2012, 12:20:26 pm » |
Im Thread "Erstes µC Projekt fertiggestellt" hatte ich von meiner Sorge mit der Programmierung eines standalone 328er berichtet. Nachdem der vorgeschlagene Weg, den nackten Controller mit dem Arduino Uno Board zu bespielen über ISP nicht funktioniert hat, habe ich mir den AVRISP mkII gekauft. Diesen habe ich angeschlossen, nachdem ich die AVR Studio 5 auf meinem Rechner installiert hatte. Dieses Programm hat den Programmer sofort gefunden und ich konnte relativ schnell den bespielten 328er, der auf dem Uno Board steckte auslesen. Ich hatte tatsächlich den Eindruck, jetzt wirklich im Controller zu arbeiten. (ARDUINO macht das ja zum Glück unnötig!)
Jetzt war meine Idee, mit der Arduino Software 1.0 über den Programmer AVRISP mkII meinen standalone 328er zu programmieren. Doch leider funktionierte das nicht, die ARDUINO Software fand den Programmer nicht. Erkennbar war das daran, dass ich zwar den Programmer und das zu bespielende Board auswählen konnte, jedoch kein USB Port auswählbar war (normalerweise wird meine USB-Schnittstelle als COM3 angezeigt). Also wieder einen Schritt zurück. Nachdem ich im Netz gelesen habe, das man den AVRISP entweder mit dem AVR Studio oder mit der ARDUINO Software verwenden kann, aber niemals gleichzeitig mit beiden, war ich verzweifelt. Aber nach nochmaliger Netzrecherche fan ich einen Weg. Wenn man in der ARDUINO Software das Programm mit "Verify" kompiliert, schreibt ARDUINO ein HEX-File in einen temporären Ordner. Dieses HEX-File habe ich mit dem AVR Studio auf den nackter 328er gebrannt, und es hat tatsächlich funktioniert. Nun kämpfe ich mit dem Anschluß meines LCD an meinen 328er, aber ich denke das kriege ich auch noch hin!
|
|
|
|
|
Logged
|
|
|
|
|
Germany
Offline
Edison Member
Karma: 33
Posts: 1800
Arduino rocks
|
 |
« Reply #1 on: March 19, 2012, 12:36:01 pm » |
Du musst einen alternativen Treiber für den MK2 benutzen, wenn du ihn aus der IDE heraus benutzen willst. Den Treiber findest du im Arduino-Verzeichnis unter hardware\tools\avr\utils\libusb.
Ach ja, nicht vergessen, den zu programmierenden µC mit Spannung versorgen, der 5V-Pin des MK2 liest nur die Spannung aus, liefert also keine Targetspannung.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 47
|
 |
« Reply #2 on: March 19, 2012, 03:46:53 pm » |
Nachdem was ich im Netz gelesen habe, ist die gleichzeitige Nutzung des AVRISP mkII unter AVR Studio und unter ARDUINO 1.0 nicht möglich, weil sich beide Treiber gegenseitig behindern. Ich möchte jetzt auch nicht wirklich den Treiber für die ARDUINO Software installieren um dann festzustellen, dass die Programmierung über das Studio nicht mehr funktioniert. Ich werde künftig das Arduino Board mit ARDUINO direkt bespielen, und Atmega im jeweiligen Projekt über ISP, AVRISP und das AVR Studio bespielen. Ist zwar etwas aufwendiger, aber da ich ja das Board zum Probieren habe, sollte es halbwegs vernünftig funktionieren!
Mit besten Grüßen ArduStemmi
|
|
|
|
|
Logged
|
|
|
|
|
D / Wuppertal
Offline
Jr. Member
Karma: 0
Posts: 64
Arduino rocks
|
 |
« Reply #3 on: April 23, 2012, 04:18:27 pm » |
Ich habe mir auch einen AVRISP MKII angeschafft. Eventuell hilfts ja jemandem: Leider funktioniert der arduinoeigene Treiber nicht unter Win7 64 Prof. Hier: http://mightyohm.com/blog/2010/09/avrisp-mkii-libusb-drivers-for-windows-7-vista-x64/habe ich einen funktionierenden Treiber gefunden. Sketch oder Bootloader aufspielen klappt prima (direkt aus der Arduinosoftware heraus). Soo viel schneller ist die Datenübertragung jetzt auch nicht - oder muß ich den MKII mit dem Originaltreiber dementsprechend umkonfigurieren? Ein Vorteil ist, das ein Terminalprogramm (Putty / Hterm) nichtmehr geschlossen werden muß um einen Sketch übertragen zu können. Ohne Bootloader ist so ein Arduino wirklich schnell gestartet, einfach nur den Sketch über den MKII übertragen - schon ist der Bootloader wech. Jetzt würde ich gerne mal den Atmega ohne Quarz laufen lassen, schade, das sich die Fuses nicht gleich in der Arduinosoft ändern lassen.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 65
|
 |
« Reply #4 on: April 24, 2012, 08:11:09 am » |
Um die Fuses zu setzen gibt es doch etliche Möglichkeiten. AVR-Studio z.B. oder eine der vielen GUI für avr-dude wie z.B. Burn-o-mat
LG Lena
|
|
|
|
|
Logged
|
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“
Albert Einstein
|
|
|
|
0
Offline
Faraday Member
Karma: 16
Posts: 3196
20 LEDs are enough
|
 |
« Reply #5 on: April 24, 2012, 10:49:12 am » |
Wenn man per Arduino IDE den Bootloader flasht werden automatisch die Fuses richtig gesetzt. D.h. solange Du nur Arduino machen willst brauchst Du selbst bei nackten Chips AVRStudio nicht.
Davon abgesehen kannst Du zur Not Arduino auch unter Linux laufen lassen. Dazu muss man nicht einmal neu booten, Linux kann auch in einer VM laufen und VMWare gibt den Player für private Nutzung für lau.
|
|
|
|
|
Logged
|
|
|
|
|
D / Wuppertal
Offline
Jr. Member
Karma: 0
Posts: 64
Arduino rocks
|
 |
« Reply #6 on: April 24, 2012, 11:15:47 am » |
Sicherlich könnte ich das alles auch mit meinem alten Rechner und dem selbstgelöteten parallelen ISP machen. Wäre zumindest ein Workaround. Aber wo doch jetzt schon so ein schickes Atmel MKII Döschen meinen Scheibtisch ziert  Wenn man per Arduino IDE den Bootloader flasht werden automatisch die Fuses richtig gesetzt. D.h. solange Du nur Arduino machen willst brauchst Du selbst bei nackten Chips AVRStudio nicht.
Ja, das stimmt. Aber ich will ja gerade die Fuses "falsch" stellen, damit der Atmega auch ohne Quarz läuft. Oder brauchts dazu auch einen angepassten Bootloader? Jetzt würde ich gerne mal den Atmega ohne Quarz laufen lassen, schade, das sich die Fuses nicht gleich in der Arduinosoft ändern lassen.
Um die Fuses zu setzen gibt es doch etliche Möglichkeiten. AVR-Studio z.B. oder eine der vielen GUI für avr-dude wie z.B. Burn-o-mat
Ja, aber was davon verträgt sich mit dem Treiber? Nachdem was ich im Netz gelesen habe, ist die gleichzeitige Nutzung des AVRISP mkII unter AVR Studio und unter ARDUINO 1.0 nicht möglich, weil sich beide Treiber gegenseitig behindern. Ich möchte jetzt auch nicht wirklich den Treiber für die ARDUINO Software installieren um dann festzustellen, dass die Programmierung über das Studio nicht mehr funktioniert.
|
|
|
|
|
Logged
|
|
|
|
|
Germany
Offline
Edison Member
Karma: 33
Posts: 1800
Arduino rocks
|
 |
« Reply #7 on: April 24, 2012, 11:29:15 am » |
Jetzt würde ich gerne mal den Atmega ohne Quarz laufen lassen, schade, das sich die Fuses nicht gleich in der Arduinosoft ändern lassen.
Doch, das geht eigentlich ganz einfach. Du kannst die Datei boards.txt editieren und dort die Fuses manuell eintragen. Am besten du kopierst dir einen Block (also den eines bestimmten Boards), änderst den Namen (z. B. auf "Atmega328 int.") und nimmst die Anpassungen der Fuses vor. Dann erscheint in der Boardauswahl auch dein nackter Mikrocontroller.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 16
Posts: 3196
20 LEDs are enough
|
 |
« Reply #8 on: April 24, 2012, 11:33:39 am » |
Wenn Du eh einen ISP hast, dann brauchst Du keinen Bootloader mehr.
|
|
|
|
|
Logged
|
|
|
|
|
D / Wuppertal
Offline
Jr. Member
Karma: 0
Posts: 64
Arduino rocks
|
 |
« Reply #9 on: April 24, 2012, 01:09:49 pm » |
Danke für die Unterstützung, ich stell mal meinen Versuch (modifizierter Auszug aus boards.txt) hier ein. Zielsetzung ist ein Atmega, der ohne Quarz läuft. Wenn keiner schreit, lass das blos - dann werde ich mal einen Versuch starten. ############################################################## #ürsprünglich => Arduino Diecimila or Duemilanove w/ ATmega168 #
diecimila.name=ATmega168 OHNE Quarz standalone
diecimila.upload.protocol=arduino diecimila.upload.maximum_size=14336 diecimila.upload.speed=19200
diecimila.bootloader.low_fuses=0xe2 diecimila.bootloader.high_fuses=0xdd diecimila.bootloader.extended_fuses=0xf8 diecimila.bootloader.path=atmega diecimila.bootloader.file=ATmegaBOOT_168_diecimila.hex diecimila.bootloader.unlock_bits=0x3F diecimila.bootloader.lock_bits=0x0F
diecimila.build.mcu=atmega168 diecimila.build.f_cpu=8000000L diecimila.build.core=arduino diecimila.build.variant=standard
##############################################################
|
|
|
|
|
Logged
|
|
|
|
|
Germany
Offline
Edison Member
Karma: 33
Posts: 1800
Arduino rocks
|
 |
« Reply #10 on: April 24, 2012, 01:36:52 pm » |
Hast du die Fußes schon entsprechend angepasst? Ich würde, um Dopplungen zu vermeiden, auch auf die Bezeichnung Diecimila verzichten.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 65
|
 |
« Reply #11 on: April 24, 2012, 01:43:22 pm » |
Wenn Du einen 328er verwenden willst, solltest Du keinen 168er definieren.
Die Fuses sollten dann so aussehen:
lfuse: e2 hfuse: d9 efuse: ff
LG Lena
|
|
|
|
|
Logged
|
„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“
Albert Einstein
|
|
|
|
D / Wuppertal
Offline
Jr. Member
Karma: 0
Posts: 64
Arduino rocks
|
 |
« Reply #12 on: April 24, 2012, 04:24:08 pm » |
Danke für Eure Hilfe.
Nee, einen 168er hab ich schon eigeplant - die gibts halt bei Reichelt.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 3
|
 |
« Reply #13 on: February 24, 2013, 12:36:45 pm » |
Hallo zusammen, ich hab mittlerweile auch den AVRISP mkII und wollte den 328P-Pu auf dem Arduino Duemilanove mithilfe Arduino IDE programmieren. Habe den auch die Treiber von SaschaW unter http://mightyohm.com/blog/2010/09/avrisp-mkii-libusb-drivers-for-windows-7-vista-x64/ installiert da ich Win 7 Professional 64bit habe. Die Version der Arduino IDE ist 1.0.3. Nach Datei -> Upload mit Programmer bekomme ich immer diese Meldung: Binäre Sketchgröße: 6.162 Bytes (von einem Maximum von 30.720 Bytes) C:\Program Files\arduino-1.0.3\hardware/tools/avr/bin/avrdude -CC:\Program Files\arduino-1.0.3\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328p -cstk500v2 -Pusb -Uflash:w:C:\Users\maexel\AppData\Local\Temp\build7099265919451142835.tmp\lamp.cpp.hex:i
avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "C:\Program Files\arduino-1.0.3\hardware/tools/avr/etc/avrdude.conf"
Using Port : usb Using Programmer : stk500v2 avrdude: usbdev_open(): did not find any USB device "usb"
Das richtige Board und den richtigen Programmer auch. Der Eintrag unter programmers.txt im Arduino-Verzeichnis sieht so aus: avrispmkii.name=AVRISP mkII avrispmkii.communication=usb avrispmkii.protocol=stk500v2
Der Eintrag vom ausgewählten Board sieht so aus: atmega328.name=Arduino Duemilanove w/ ATmega328 atmega328.upload.protocol=stk500v2 atmega328.upload.maximum_size=30720 atmega328.upload.speed=57600
atmega328.bootloader.low_fuses=0xFF atmega328.bootloader.high_fuses=0xDA atmega328.bootloader.extended_fuses=0x05 atmega328.bootloader.path=atmega atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex atmega328.bootloader.unlock_bits=0x3F atmega328.bootloader.lock_bits=0x0F
atmega328.build.mcu=atmega328p atmega328.build.f_cpu=16000000L atmega328.build.core=arduino atmega328.build.variant=standard
Im preferences.txt unter C:\Users\<username>\AppData\Roaming\Arduino habe ich die Upload-Config angepasst: (das hab ich so im Internet gefunden...) upload.using=avrispmkii
Ich würds gern zum Laufen bekommen, da die lange Wartezeit beim Startup bei meiner Anwendung unerwünscht ist Vielen Dank für Tipps. Gruß Maexel
|
|
|
|
|
Logged
|
|
|
|
|
|