boxtec Forum
Microcontroller => AVR / ATtiny => : boxtec-support February 04, 2013, 06:27:57 PM
-
Weil sich die ATtiny Mikrokontroller im Arduino Umfeld immer grösserer Beliebtheit erfreuen haben wir eine Übersicht der ATtiny Modelle und eine Anleitung zum Programmieren der ATtiny mit der Arduino IDE im Playground (http://playground.boxtec.ch/) veröffentlicht:
http://playground.boxtec.ch/doku.php/arduino/attiny (http://playground.boxtec.ch/doku.php/arduino/attiny)
Für Anregungen und Kritik sind wir wie immer dankbar.
-
Christoph,
besten Dank für die nützliche Anleitung.
-
Wow, das ist eine super Anleitung ! Danke !
Ich muss doch gleich einen Tiny45 in Morsecode blinken lassen. ;D
-
Uh, für einen Duemilanove und Uno als ArduinoISP muss ein Kondensator zwischen Reset und GND hinzugefügt werden, sonst macht der Arduino ein Reset,
was die IDE bemängelt mit "avrdude: stk500_getsync(): not in sync: resp=0x15".
Aber nun morst er. 8) .... .- .-.. .-.. ---
-
Einen kleinen Fehler habe ich noch gefunden: die Tabellen für die Verbindung Arduino ISP und ATtiny sind zwischen X4 und X5 vertauscht.
-
Vielen Dank für die Rückmeldungen und Korrekturen!
Die Tabellen sind "rückvertauscht", es wäre in der Tat schwierig an einem ATtiny85 am Pin9 anzuschliessen ::)
Die Breadboardbilder und der Text sind um den Kondensator erweitert. Ich habe dies an einigen Stellen gelesen, aber interessanterweise benötige ich diesen hier mit einem Duemilanove beim Testen nicht und hab deswegen auch im Schema drauf im ersten Anlauf verzichtet. Ganz im Gegenteil bisher hab ich den Fehler sogar noch nie gesehen.
Desweiteren ist in der Übersicht noch der 4313 dazugekommen, der von der tiny Version auch unterstützt wird.
-
Aus irgend einem Grund wird der Kondensator nur beim Uno benötigt, nicht beim Duemilanove.
Die Anleitung ist sehr nützlich. Was vielleicht noch erwähnenswert wäre, ist dass man der Standard library auf einem tiny nicht unbedingt immer trauen kann. z.B. ist delayMicroseconds nur für gewisse Taktfrequenzen (20MHz, 16MHz, 8MHz) korrekt implementiert. Wenn man es auf einem 1MHz tiny aufruft, wird der Delay 8x zu lang.
-
Vielen Dank für die Klärung des Kondensator-Rätsels, ich hab das so erweitert.
Auch den anderen Hinweis hab ich gerne übernommen.
Und neu sind nun auch die Datenblätter zu den einzelnen tinys verlinkt.
P.S.: Wer will darf natürlich auch gerne selber im Playground editieren, erweitern und korrigieren.
-
Da ich mich im Augenblick gerade mit PWM auf ATtiny25/45/85 beschäftigte, habe ich noch eine kleine Korrektur in der Tabelle gemacht: Es stimmt zwar, dass die beiden Timer zusammen 6 verschiedene PWM Signale liefern, aber zum Herausführen dieser Signale stehen nur 4 Pins zur Verfügung. Zudem sind 2 dieser Pins (PB4 alias OC1B und PB3 alias ~OC1B) mehr oder weniger das gleiche Signal (man kann mittels Konfiguration da etwas herumschrauben, aber unabhängig sind sie nicht).
Deshalb würde ich sagen, dass im Arduino (analogWrite) Sinn nur 3 PWM Pins existieren, oder vielleicht nach gewissen Definitionen 4 PWM Pins, aber jedenfalls nicht 6. Mit dem Arduino-tiny Projekt sind 3 Pins ansteuerbar, mit ATtiny nur 2.
-
Danke für den Edit, das macht so auf jeden Fall mehr Sinn, ich hab die Werte ohne allzu grosses Reflektieren aus dem Datenblatt genommen - aber im Zusammenhang mit den beiden tiny-cores ist es überhaupt nicht hilfreich. Ich hab jetzt noch den Titel der Spalte auf nutzbare PWM geändert.
-
Aus irgend einem Grund wird der Kondensator nur beim Uno benötigt, nicht beim Duemilanove.
Aus irgend einem+1 Grund funktioniert mein Duemilanove nur mit Kondensator. Sachen gibt's... :o
-
*hmpf* :D
Ich hab den entsprechenden Abschnitt etwas weiter gefasst und versucht, die unter den Experten vorherschenden Differenzen möglichst textlich abzubilden ;-)
Nur aus Interesse:
Ist es möglich, dass ev. auf dem Board resp. dem 328er ein Uno Bootloader installiert wurde ? Mein Exemplar hat def. einen Duemilanove Bootloader drauf.
-
Das wurde in der Fabrik gemacht, kann man das reverse engineeren (rausfinden) ?
Allerdings unterscheiden sich die 2009er, manche haben eine grüne Lötstoppmaske, manche eine blaue.
Aber ich würde da nicht zuviel Zeit investieren, wenn es nicht geht, dann eben einen Kondensator einfügen.
-
Dann ist da sicher ein Duemilanove Bootloader drauf. Normalerweise ist der Bootloader das was man im Boards Menu anwählen muss um das Board zu programmieren. Also ein Duemilanove mit Uno Bootloader würde man als Uno programmieren (IIRC).
-
Um das Kondensator Rätsel noch noch etwas zu ergänzen hie meine Erfahrungen:
bei mir mit Windows IDE und Arduino ISP wird kein Kondensator gebraucht, jedoch auf dem Linux IDE mit der exakt gleichen Hardware schon :D
Gruss Reto
-
Um das Kondensator Rätsel noch noch etwas zu ergänzen hie meine Erfahrungen:
bei mir mit Windows IDE und Arduino ISP wird kein Kondensator gebraucht, jedoch auf dem Linux IDE mit der exakt gleichen Hardware schon :D
Könnte sein, dass die beiden OSes unterschiedliche Handshakes verwenden (Der RESET wird vom DTR pin aus getriggert, und der wird nicht unbedingt in jeder Situation angesteuert).
-
Hallo,
vielen Dank erstmal für die Anleitung.
Weiß jemand vielleicht wo ich die Erweitung für die Auswahl der Boards (ATtiny2313a) unter der Arduino IDE 1.6.6 bekomme? Die im Link angegebene funktioniert leider nicht. Bei denen, die ich gefunden habe, ist der ATtiny2313a nicht dabei.
Fehlermeldung: exec: "avr-g++": executable file not found in %PATH%
LG, Alex
-
Habe ich endlich gefunden :D
Damit geht es:
https://github.com/SpenceKonde/ATTinyCore (https://github.com/SpenceKonde/ATTinyCore)
LG, Alex
-
Hi Alex,
danke, unter dem Link habe ich auch ein Lösung für den Attiny1634 gesehen. Da bin ich schon länger am suchen. Hast Du das schon mal ausprobiert?
https://github.com/SpenceKonde/arduino-tiny-841
Gruss Reto
-
danke, unter dem Link habe ich auch ein Lösung für den Attiny1634 gesehen. Da bin ich schon länger am suchen. Hast Du das schon mal ausprobiert?
https://github.com/SpenceKonde/arduino-tiny-841
Für Arduino 1.0.6 hätte ich sonst noch meinen eigenen Core zu bieten:
https://github.com/microtherion/arduino-tiny1634-43u
-
Die Lösung von SpenceKonde funktioniert bestens für den Attiny1634 ich habe es gerade ausprobiert. Mit der aktuellen Arduino IDE 1.6.6 unter Windows muss man nur den alternativen Board Manager wie in dem Link beschrieben einrichten und danach den "ATTinyCore (Modern)" installieren.
Für Arduino 1.0.6 hätte ich sonst noch meinen eigenen Core zu bieten: https://github.com/microtherion/arduino-tiny1634-43u (https://github.com/microtherion/arduino-tiny1634-43u)
Ja danke microtherion, leider habe ich Deine Lösung nie zum Laufen gebracht weil mir das Auswechseln der Toolchain immer zu aufwendig war. Siehe: http://forum.boxtec.ch/index.php/topic,2417.msg3838.html#msg3838 (http://forum.boxtec.ch/index.php/topic,2417.msg3838.html#msg3838)
Gruss Reto
-
Hallo Zusammen,
der Board Manager der Arduino IDE funktioniert bestens mit der SpenceKonde Bibliothek auf Windows und Linux. Somit ist das programmieren von einem Attiny noch einfacher geworden und auch mein Sorgenkind 1634 wird problemlos unterstützt.
Den Playground habe ich etwas upgedatet:
http://playground.boxtec.ch/doku.php/arduino/attiny (http://playground.boxtec.ch/doku.php/arduino/attiny)
Grusss Reto
-
Hallo Reto,
Vielen Dank für das Erweitern der Dokumentation!
Grüsse - Christoph
-
Hallo Zusammen,
schon länger wollte ich den Attiny85 mit einem USB Bootloader bestücken, so wie es schon viele Hersteller tun. Dazu habe ich den Micronucleus Bootloader ausgewählt. Zum übertragen vom Bootloader habe ich einen Arduino als ISP genommen und dann 2 Zehner Dioden und 3 Widerstände das wars.
Hier die Details:
http://playground.boxtec.ch/doku.php/arduino/attinyusb/micronucleus? (http://playground.boxtec.ch/doku.php/arduino/attinyusb/micronucleus?)
Einen guten Rutsch in 2016
Gruss Reto