Go Down

Topic: ATtiny und Co. programmieren - USBtinyISP oder was anderes? (Read 5017 times) previous topic - next topic

flomei

Hallo!
Ich möchte für zukünftige Projekte gerne auf kleinere Chips zurückgreifen. Einen ATMEGA 328 verwenden, wenn man nur 3 Output-Pins benötigt, fühlt sich mehr als nur verkehrt an. Deshalb sind die ATtinys in mein Blickfeld gerückt. Die kosten fast nix, können aber wohl meine Ideen verwirklichen...

Nun besitzen die ja kein USB-Interface und müssen deshalb über einen ISP programmiert werden. Soweit auch irgendwie kein Problem, ich habe einen USBtinyISP zuhause liegen. Leider gelingt es mir nicht, diesen ans Laufen zu bringen. Ich hab schon Treiber ohne Ende installiert und dies und jenes ausprobiert, ich bekomm damit einfach keinen Chip beschrieben.

Ich bin als am Überlegen mir aus einem Arduino (also einem ATMEGA 328 + Bauteilen) ein festes Programmiergerät zu bauen und das zu nutzen.

Spricht etwas, gerade für meinen konkreten Einsatzzweck, dagegen?
Und gibt es unterschiedliche ISPs? Hab das Gefühl in der Arduino-Welt wollen alle immer nur den Bootloader brennen und dann war es das...

Apropos Bootloader. Auf die ATtinys muss doch kein Bootloader drauf, oder? Ich habe ja einen ISP, der die Daten aus meiner IDE bzw. dem Compiler empfängt und draufbrennt, dafür brauch ich keinen Bootloader, oder denk ich falsch?

Danke!
Beste Grüße
Florian

http://www.flomei.de

pylon

Quote
Und gibt es unterschiedliche ISPs?


Ja, es gibt unterschiedliche ISPs, deshalb muss man in der IDE den Programmer-Typ einstellen, wenn man damit Sketches uploaden will.

Quote
Auf die ATtinys muss doch kein Bootloader drauf, oder?


Nein, bei einigen ATtinys würde das auch eng werden mit dem Flash-Speicher. Auch auf einem Arduino kannst Du den Bootloader weglassen, wenn Du immer mit dem Programmer die Sketches hochlädst. Das hat den Vorteil, dass der Sketch deutlich schneller startet, weil ja der Bootloader beim Start nicht abwarten muss, ob vielleicht ein Sketch seriell hochgeladen wird.

piepsvo

Hallo ich bin ein Anfänger und die habe die gleichen Ansichten wie Du.
Es muss nicht immer ein Arduino sein. Einen ATTINY zu programmieren geht zumindest mit der IDE und einem Arduino, ziemlich einfach.
Nur meine Hongkong ISP's bekomme ich nicht zum laufen. Somit muss ich auch immer den Arduino als Programmer nutzen.

Es gibt online viele Anleitungen und Tipps den ATTINY zu programmieren. Kennst Du bestimmt schon.
Hier eine gute und umfangreiche Anleitung für den ATTINY13; 45; 85 http://tronixstuff.wordpress.com/2011/11/23/using-an-attiny-as-an-arduino/
Ein ATTINY45 in deutsch http://www.sachsendreier.com/asw/clernen/arduinoasisp/arduinoasisp.html

mkl0815


.. ich habe einen USBtinyISP zuhause liegen. Leider gelingt es mir nicht, diesen ans Laufen zu bringen. Ich hab schon Treiber ohne Ende installiert und dies und jenes ausprobiert, ich bekomm damit einfach keinen Chip beschrieben.

...

Hab das Gefühl in der Arduino-Welt wollen alle immer nur den Bootloader brennen und dann war es das...

Apropos Bootloader. Auf die ATtinys muss doch kein Bootloader drauf, oder? Ich habe ja einen ISP, der die Daten aus meiner IDE bzw. dem Compiler empfängt und draufbrennt, dafür brauch ich keinen Bootloader, oder denk ich falsch?



Was genau klappt denn beim Beschreiben der Chips nicht und welche Treiber hast Du installiert? Wird der USBtinyISP nicht erkannt, oder wo genau ist das Problem. Es macht in der Regel wenig Sinn, ein Problem gegen ein anderes zu tauschen. Der tinyUSB sollte auf jeden Fall verwendbar sein. Ich verwende den auch, allerdings unter Mac OS X, daher kann ich bei einem Windows Problem nicht helfen.

Das "Alle immer den Bootloader" brennen wollen hat meist einen ganz trivialen Grund. Damit ein ATTINY verwendbar ist, müssen die Fuses korrekt gesetzt werden, die entsprechenden Einstellungen stehen in der boards.txt der IDE, wenn die Erweiterungen für die ATTINYs installiert hat. ABER ...
Beim "normalen" flashen eines Chips (egal ob ISP oder Bootloader) werden die Fuses eines Chips/Boards nicht verändert. Daher greift man zu einem Trick. Wählt man bei der IDE den Menüpunkt "Bootloader installieren" werden die in der boards.txt definierten Fuses mit hilfe von avrdude für das ausgewählte Board (z.B. ATtiny84 (internal 8MHz clock) ) gesetzt. Es geht also nicht darum einen bootloader auf den Tiny zu brennen, sondern nur darum die Fuses zu setzen.
Siehe auch hier: http://hlt.media.mit.edu/?p=1695
Quote

By default, the ATtiny's run at 1 MHz (the setting used by the unmodified "ATtiny45?, etc. board menu items). You need to do an extra step to configure the microcontroller to run at 8 MHz - necessary for use of the SoftwareSerial library. Once you have the microcontroller connected, select the appropriate item from the Boards menu (e.g. "ATtiny45 (8 MHz)"). Then, run the "Burn Bootloader" command from the Tools menu. This configures the fuse bits of the microcontroller so it runs at 8 MHz. Note that the fuse bits keep their value until you explicitly change them, so you'll only need to do this step once for each microcontroller. (Note this doesn't actually burn a bootloader onto the board; you'll still need to upload new programs using an external programmer.)

flomei

Nun, der tinyISP taucht im Geräte-Manager (Win 7 Pro, 64 Bit) unter den libusb-win32-device als USBtiny auf.

Treiberversion ist laut Geräte-Manager 1.2.1.0 vom 29. Juli 2010 und das Gerät ist betriebsbereit.

Schließe ich den ATmega 328 jetzt über die ICSP-Headerpins an den tinyISP an, wähle in der Arduino IDE das Programmiergerät aus und klicke beim Blink-Sketch auf "Upload mit Programmer", dann kompiliert er erst den Sketch und dann kommt folgendes:

Quote
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


Mehr hole ich da auch nicht raus...
Beste Grüße
Florian

http://www.flomei.de

TransWarp

Ich nutze: http://hlt.media.mit.edu/?p=1695

Vorsicht bei den Fuses, einmal auf 8 MHz EXTERN gestellt, funktioniert er auch nur noch mit einem externen Quarz.

flomei

So, ich wollte mich nochmal melden, weil Farnell gestern Chips geschickt hat. :-)

Ich habe auf mein Uno-Board jetzt den ArduinoISP-Sketch geladen und damit funktioniert die Programmierung problemlos (ein ATtiny85 blinkt hier fröhlich rum), während der USBtinyISP immer noch Fehlermeldungen ausspuckt.

Ich denke, ich habe damit meinen Weg gefunden. ;-)
Beste Grüße
Florian

http://www.flomei.de

Spexx

Ich bin auch gerade dabei, mit den ATtinys rumzuspielen, das Programmieren über mein Arduino Uno klappt auch soweit. Ich finde es aber nervig, immer den Uno zu verwenden, insbesondere wenn ich mir gerade eine andere Schaltung mit dem Breadboard aufgebaut habe und dann wieder umstecken muss.

Ist es möglich, dass ich mir eine Schaltung mit einem Atmega328 aufbaue (also standalone) und dann mit Hilfe eines USB-ISP-Programmer den ATtiny programmiere? Mein China-ISP-Programmer ist leider noch nicht gekommen, sonst hätte ich es einfach mal getestet  :D

Oder gibt es ansonsten noch eine Möglichkeit, einen ATtiny mit der Arduino IDE zu programmieren? Hab leider nichts gefunden...

J3RE

Quote
Ist es möglich, dass ich mir eine Schaltung mit einem Atmega328 aufbaue (also standalone) und dann mit Hilfe eines USB-ISP-Programmer den ATtiny programmiere? Mein China-ISP-Programmer ist leider noch nicht gekommen, sonst hätte ich es einfach mal getestet  smiley-grin


Du kannst die ATtiny´s dann auch direkt mit dem USB-ISP-Programmer programmieren.

Ansonsten könntest du dir ein Shield(für den UNO) bauen, wo du nur mehr die ATtiny´s reinstecken brauchst und keine Kabel rumstecken.
So werde ich meine ATtiny´s programmieren, wenn die Bauteile endlich ankommen. ;)

Grüße,
J3RE

Spexx

Geht das denn direkt über den USB-ISP-Programmer und der Arduino IDE, oder muss ich da AVR Studio oder so benutzen? Bin über Google nicht schlau geworden, die Anleitungen beziehen sich meistens auf den Arduino Uno... Kennt jemand eine Seite, wo das am Besten Schritt für Schritt für einen Anfänger beschrieben wird?

J3RE

vielleicht hilft dir dieser Link: http://hlt.media.mit.edu/?p=1801
ist zwar für den TinyProgrammer, aber müsste IMO mit einem normalen USB-ISP-Programmer auch funktionieren.

Grüße,
J3RE

Helmuth

Hi Spexx,

michael_x hat mich gerade auf dieses Projekt von Nick Gammon hingewiesen, vielleicht hilft Dir das?!

http://www.gammon.com.au/forum/?id=11638

Gruß

Helmuth

Spexx

Danke, muss ich mir mal in Ruhe anschauen. Hab leider festgestellt, dass nicht jedes Sketch 1:1 übernommen werden kann :smiley-roll: Muss ich mich doch erst bisschen intensiver das Thema einarbeiten...

Eisebaer

hi,

hab' grade probleme mit dem eben erhaltenen usbtinyasp und da ist mir dieser thread wieder eingefallen. und siehe da:
Quote
Nun, der tinyISP taucht im Geräte-Manager (Win 7 Pro, 64 Bit) unter den libusb-win32-device als USBtiny auf.

Treiberversion ist laut Geräte-Manager 1.2.1.0 vom 29. Juli 2010 und das Gerät ist betriebsbereit.

Schließe ich den ATmega 328 jetzt über die ICSP-Headerpins an den tinyISP an, wähle in der Arduino IDE das Programmiergerät aus und klicke beim Blink-Sketch auf "Upload mit Programmer", dann kompiliert er erst den Sketch und dann kommt folgendes:


Quote
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

Mehr hole ich da auch nicht raus...


genau das gleiche bei mir. ich sehe das problem allerdings da, daß kein COM-port im gerätemanager mit dem ISP verbunden ist.
libusb-win32-device ist zwar da, aber wie soll sich die IDE ohne COM-port verbinden?

kennt das jemand?

win7 64bit, IDE 1.0.1, treiber von ladyada heruntergeladen für dieses betriebssystem.

gruß stefan

Eisebaer

hi,

gegoogelt hätt' ich ja, aber nach dem falschen.
wenn ich nach der fehlermeldung suche, kommt die richtige auskunft:
Quote
This response from avrdude means that it can talk to the programmer but the programmer can't talk to the chip.

also den programmer sieht er, bestätigt sich auch, wenn man ihn abhängt und probiert.
daß er nicht mit dem chip reden kann, ist eine "no na" sache, hängt ja nix drauf.
also nächster schritt...

gruß stefan

Go Up