C Programm auf Attiny schreiben?

Hallo zusammen,
für ein Taschenlampen UI möchte ich gerne C Programme mit dem Arduino als ISP auf einen Attiny13A schieben.

Ein solches Programm sieht z.B. so aus:

Der Arduino ist schon als Programmer eingerichtet und das beschreiben/flash eines Attiny44A klappt auch schon problemlos.

Ich frage mich jetzt nur ob es überhaupt möglich ist mit der Arduino IDE das C Programm zu compilieren (HEX File) und es auf den Attiny13A zu schieben? Odr brauche ich dazu eine andere Software?

Falls es funktioniert: Gibt es Optimierungsmechanismen/Einstellungen um das HEX File möglichst klein zu halten?

Danke!

Hallo nofear, warum Attiny13?

Ohne jetzt das ganze zu kompilieren, würde ich aber sagen, es passt knapp drauf. Für welchen Attiny ist das Programm geschrieben, den solltest du auch am besten verwenden, wegen abweichenden Speicheradressen etc.

Du kannst das ganze auch in Atmel Studio kompilieren und auf das Gerät laden.

Hallo :slight_smile: Was macht Looping Louie :stuck_out_tongue:

Weil auf den meisten Taschenlampentreibern der Attiny13A verbaut ist. Kompiliert die Arduino IDE so ein Programm problemlos? Mit Atmel Studio komm ich noch nicht so zurecht. Bist du da fit?

Das Looping Louie Dinge is so halb fertig, seit paar Monaten keine Zeit für gehabt.

Zum Atmel Studio sollte es im Netz genügend Tutorials geben.

File > New > Project
GCC C Executable Project

Attiny13 rausscuehn
Programm reinkopieren in die GccApplication1.c

F5 drücken, geht einfacher als den Zweig dafür aufzurufen.
Dort den Programmer AVR ISP auswählen (falls kein orginaler, musste mal schauen, wie du deinen dort hinzufügst)
Dann oben auf Tools > Device Programming > irgendwo auf Fuses und dort erst einmal den CKDIV8 rausnehmen. Kann genau nicht gerade nachschauen, der AVRISP ist nicht am PC angeschlossen. Sitzt noch am Linux Rechner.
Dort dann einfach die Fuses Programmieren. Das Fenster schließen, erneut F5 drücken und fertig.

Geht mir genauso :smiley:

Hmmm...das werd ich mir wohl mal in Ruhe anschauen müssen.

Mit der Arduino IDE kannst du es wohl nicht empfehlen? Findet er da überhaupt die ganzen Includes?

Ich warte ohnehin noch auf einen SOIC 8 Clip, denn die Attinys will ich nicht vom Treiber löten.

Arduino IDE sehe ich selber als einen schlechteren Editor jedoch mit einigen Zusatzfunktionen, die einem das Compilieren auf der Konsole ersparen.

Die Libarys die du da zeigst, haben mit der Arduino IDE nichts am Hut. Bei Arduino ist vieles verschleiert, damit hier die Neulinge nicht nach dem ersten Projekt den Wald vor lauter Bäumen sehen.

Ich arbeite meiste Zeit mit Atmel Studio und schreibe den Code in AVR-GCC. Da fallen die Komfortfunktion weg. Hat aber auch den Grund, dass ich keine Atmegas mehr nutze, bzw. sehr selten. Arbeite mehr mit den Attiny841 (nicht 84A!). Die werden soweit bekannt auch noch nicht über ein Addon in der Arduino IDE unterstützt. Hatte mir damals für 60€ ink. Versand bei Mouser 100Stk bestellt im SOIC14.

So...

avrdude -p t13 -c usbasp -n

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: programm enable: target doesn't answer. 1 
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

Das schien nicht zu gehen.

avrdude -p t13 -c usbasp -n -F

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: programm enable: target doesn't answer. 1 
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0xc867d0
avrdude: Expected signature for ATtiny13 is 1E 90 07

avrdude done.  Thank you.

Dann das ganze nochmal mit -F (sieht erstmal ganz gut aus...oder?)

Kann ich die Fehlermeldung umgehen in dem ich was manuell setze?

EDIT: sieht wohl doch nicht gut aus :smiley:

http://flashlightwiki.com/AVR_Drivers#Set_up_your_clip

Irgendwie ändern die hier die Kabelbelegung...ist das nötig?

Dann habe ich noch das gefunden:

Was sagst du dazu?

avrdude: warning: cannot set sck period. please check for usbasp firmware update.

Veraltete Software auf dem USBasp.
Sollte aber trotzdem zum funktionieren zu bekommen sein....

Ich nutze 2 identische USBasp mit der ArduinoIDE.
Einen mit der alten Software um meine ATTiny85 zu beschreiben.
Und einen mit der neuen Software um meine ATMegas zu beschreiben.

Auf deinem (alten) USBasp sollte sich ein Jumper befinden, um die Taktfrequenz zu senken. Evtl muss du den noch einlöten.
Versuche das mal.
Auf dem Neuen wird der Jumper nicht mehr genutzt. Stattdessen kann man dem avrdude den -B Parameter mitgeben.

Danke erst einmal!

http://budgetlightforum.com/node/36216

Hier wird die Kabelbelegung komplett geändert und vor allem Pin8 auf die 9 (Mosi) gelegt. Ich denke ohne das wird es nicht gehen. Oder?

Ich habe den USBASP V2.0 JP1 ist da mit Jumper , JP2 und 3 sind lediglich vorgesehen.

Ich bin etwas verwirrt...ich dachte die SOIC 8 Clips funktionieren out of the box :frowning:

Von deinen Clips, habe ich KA!
Aber richtig anschließen, wirst du ihm müssen!

Der LowSpeed Jumper JP3 braucht eine Brücke,

Ich probiere es mal nach dieser Skizze! Und melde mich dann zurück. Evlt geht es ja dann auch schon ohne den Jumper.

Danke!

jetzt sieht das ganze schon so aus:

avrdude -p t13 -c usbasp -n

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9007

avrdude: safemode: Fuses OK (H:FF, E:FD, L:72)

avrdude done.  Thank you.

Ich überlege ob ich JP3 überbrücke oder lieber mal eine aktuelle Firmware aufspiele?

Tuts doch!

Also: Vollkommen genug.
So lassen und erst wieder nachdenken, wenn es klemmt.

Ok, also kann ich den SCK Fehler ignorieren?

nofear87:
Ok, also kann ich den SCK Fehler ignorieren?

Eigentlich ja.
Ich würde es lassen.
avrdude jammert nur rum, weil es seine -B Funktionalität nicht nutzen kann.

Und wie gesagt, mit der neuen Firmware kann ich meine ATTiny85 nicht beschreiben.
Woran das liegt habe ich noch nicht untersucht, denn ich habe ja auch noch einen mit der alten Firmware.

Flashen hat wunderbar funktioniert! Wie macht man denn mit AVR Dude aus einem C Programm ein hex File. Und das möglichst Ressourcenschonend :smiley:

Wie macht man denn mit AVR Dude aus einem C Programm ein hex File.

Gar nicht!

Avrdude ist Teil der AVR ToolChain.
Das letzte Tool in dieser Chain.
Und jedes Tool dieser Toochain hat seinen Job.

Das Stichwort, welches du suchst, heißt "Makefile"

Danke! Schau ich mir an!