ATtiny und Co. programmieren - USBtinyISP oder was anderes?

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!

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.

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.

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

flomei:
.. 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

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.)

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:

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...

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.

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

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. :wink:

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 :smiley:

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

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. :wink:

Grüße,
J3RE

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?

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

Hi Spexx,

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

Gruß

Helmuth

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

hi,

hab' grade probleme mit dem eben erhaltenen usbtinyasp und da ist mir dieser thread wieder eingefallen. und siehe da:

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

hi,

gegoogelt hätt' ich ja, aber nach dem falschen.
wenn ich nach der fehlermeldung suche, kommt die richtige auskunft:

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

Ist die Spannungsversorgung des zu programmierenden Mikrocontrollers sichergestellt?
Einige ISPs versorgen den Mikrocontroller, andere hingegen nicht (MK2 von Atmel).

hi,

uuuaaaaahhhhh. bin eingeschlafen. hat gutgetan.

bisher funktionierts ja, hab' allerdings noch keinen atmel drangehängt. muß mal nach tutorials suchen. da sind noch etliche sachen unklar.
UNO drangehängt, stromversorgung dürfte gewährleistet sein, jedenfalls leuchten leds am UNO, wenn ich ihn anhänge.
ist ein DK USBtinyISP v2.0, hab da noch keine gute anleitung gefunden, was macht zb der jumper. warum muß ich bei preferences.txt was ändern, obwohl ich doch sowieso "upload mit programmer" sag, und etliches mehr. hab einige 328er und tiny85 da...
ich melde mich dann, wenn ich nicht weiter weiss
danke und
gruß stefan