Hallo mikrocontroller Gemeinde,
Was ich möchte: ich möchte unter Linux C/C++ programme schreibe und die
auf dem ATtiny85 laufen lassen.
Ich habe eine Vorstellung und hoffe das ihr meine Fragen beantworten /
mich Unterstützen könnt.
Es gibt sehr viel Information im www, allerdings habe ich noch offene
Punke.
Hinzu kommt, dass ich kaum Erfahrung (vergessen oder nie verstanden) in
Elektrotechnik habe.
Ich stelle (Wunschvorstellung) so vor:
* breadboard / steckerboard
* kabel
* LED (als Output)
* ATtiny85
* Verbindung zwischen Computer und breadboard, um C/C++ Programm auf den
ATtiny85 zu flashen. USBasp?
Das Problem ist,
1. Was kaufe ich wo ein? Vielleicht macht sich jemand die Mühe und
schickt mir Beispiellinks für ein breadboard, kabel, ...
2. Wenn ich dann alle Komponenten habe, weiß ich nicht wie es es
anschließe
Vielen Dank für eure Unterstützung.
dummyuser schrieb:> Was ich möchte: ich möchte unter Linux C/C++ programme schreibe und die> auf dem ATtiny85 laufen lassen.
Ja. Machen.
> Ich stelle (Wunschvorstellung) so vor:> * breadboard / steckerboard> * kabel> * LED (als Output)> * ATtiny85
Das ist alles trivial.
> * Verbindung zwischen Computer und breadboard, um C/C++ Programm> auf den ATtiny85 zu flashen. USBasp?
USBASP kann man nehmen (mache ich z.B.). Gibt es sehr billig aus China.
Allerdings meist mit steinzeitalter Firmware, so daß man als erste
Aktion die Firmware updaten muß. Deswegen sollte man zwei von den
Dingern kaufen. Dann kann man den einen mit dem anderen updaten.
Es gibt aber unzählige ISP-Adapter am Markt. Lies den Artikel
AVR In System Programmer im hiesigen Wiki.
Geflashed wird aber nicht das C- oder C++-Programm, sondern der daraus
compilierte Maschinencode.
Ich hätte übrigens eher erwartet, daß du fragst, welche Software du
brauchst. Denn die meisten Anleitungen im Web gehen davon aus, daß man
Windows verwendet und da ein Rundum-sorglos-Paket wie etwa die AVR-IDE
installiert. Das hast du bei Linux nicht (braucht man auch nicht).
> Das Problem ist,> 1. Was kaufe ich wo ein? Vielleicht macht sich jemand die Mühe und> schickt mir Beispiellinks für ein breadboard, kabel, ...
Wenn du noch gar nichts hast, kannst du auch ein fertiges Starterset
kaufen. Z.B. bei https://www.ehajo.de/startersets/. Oder Einzelteile bei
Conrad oder Reichelt oder Pollin oder wo du sonst einkaufst.
> 2. Wenn ich dann alle Komponenten habe, weiß ich nicht wie es es> anschließe
Dann fang mit einem Tutorial an. Z.B.
AVR-GCC-Tutorial oder
AVR-Tutorial oder
http://stefanfrings.de/mikrocontroller_buch/index.html
Fang halt an. Und dann stell konkrete Fragen.
dummyuser schrieb:> Ich stelle (Wunschvorstellung) so vor:> * breadboard / steckerboard> * kabel> * LED (als Output)> * ATtiny85> * Verbindung zwischen Computer und breadboard, um C/C++ Programm auf den> ATtiny85 zu flashen. USBasp?
Oder nimm einfach ein Arduino. Ist zwar kein tiny, aber für die ersten
Gehversuchen nicht verkehrt.
Je nach Linux Distro gibt auch hier komplette Pakete für AVR
Programmierung, einfach mal im Paket Manager suchen. Man füge noch den
Texteditor nach Wunsch zu und das sollte es sein.
> USBASP kann man nehmen (mache ich z.B.). Gibt es sehr billig aus China.> Allerdings meist mit steinzeitalter Firmware, so daß man als erste> Aktion die Firmware updaten muß. Deswegen sollte man zwei von den> Dingern kaufen. Dann kann man den einen mit dem anderen updaten.
Das verstehe ich bspw. nicht. Reicht den eins nicht? Ich schließe es am
USB Port an und mache ein Firmware update. Hier hole ich die Firmware:
https://www.fischl.de/usbasp/. Wie ich das anstelle weiß ich natürlich
noch nicht.
Ich hatte mich bereits etwas über ISP-Adapter informiert und USBASP
scheint mir "linux"-freundlich zu sein (u.a. auch open source).
> Ich hätte übrigens eher erwartet, daß du fragst, welche Software du> brauchst. Denn die meisten Anleitungen im Web gehen davon aus, daß man> Windows verwendet und da ein Rundum-sorglos-Paket wie etwa die AVR-IDE> installiert. Das hast du bei Linux nicht (braucht man auch nicht).
Software traue ich mir zur. Aber die Hardware ist etwas unübersichtlich.
Ich möchte erstmal nur eine Umgebung (= Hardware), wo ich mein C/C++
HelloWorld ausführen kann.
Ich möchte kein Arduino oder dergleichen. Sonder direkt auf den ATTiny85
flashen. So wie ich das verstanden habe, hat bspw. Arduino, Digispark,
... der Flash belegt (mit Bootloader).
> Wenn du noch gar nichts hast, kannst du auch ein fertiges Starterset> kaufen. Z.B. bei https://www.ehajo.de/startersets/. Oder Einzelteile bei> Conrad oder Reichelt oder Pollin oder wo du sonst einkaufst.
Ich habe absolut nichts. Kannst du mir bitte Beispiellinks von Händlern
für USBASP schicken?
> http://stefanfrings.de/mikrocontroller_buch/index.html
Das Buch scheint echt gut zu sein: von Elektrotechnik, USBASP,
Baukomponenten, .... Danke
> Fang halt an. Und dann stell konkrete Fragen.
Danke für deine Antworten.
Habe dein Buch Band 1 überflogen. Es sieht super aus. Danke für deine
Mühen.
Der Link auch: http://stefanfrings.de/avr_hello_world/index.html
Kannst du mir statt dem Atmel AVRISP MK-II ein USBASP empfehlen?
Oder funktioniert der Atmel AVRISP MK-II out-of-the-box unter Linux?
Ausserdem ist der Atmel AVRISP MK-II teuer?
Martin H. schrieb:> P.S.: Auf dem Linux-Rechner brauchst Du noch die Software> micronucleus,> um die erstellten hex-Files zu übertragen:> https://github.com/micronucleus/micronucleus
Ok danke für den Hinweis. Gibt es keine alternativen? ich dachte das
(compiler, hex, elf, oder was es sonst so gibt) geht mit gcc avr
dummyuser schrieb:> Das verstehe ich bspw. nicht. Reicht den eins nicht? Ich schließe es am> USB Port an und mache ein Firmware update.
USBASP ist ein Programmieradapter der zwischen PC und deinem
Mikrocontroller gesteckt wird. Der USBASP Programmieradapter kann sich
nicht selbst updaten.
Ich halte das Firmwareupdate für überflüssig, solange er funktioniert.
Meine USBASP Programmieradapter haben bisher immer out-of-the-box
funktioniert.
> Kannst du mir statt dem Atmel AVRISP MK-II ein USBASP empfehlen?
Die USBASP Adapter haben fast alle den Nachteil, dass sie (trotz 3,3V
Jumper!) nur 5V Signale unterstützen. Da ich meine Bateleien sehr häufig
mit Batterien betreibe, ist das für mich ein Knackpunkt. Ich achte dann
darauf, 4 frisch geladene NiMh Zellen zu verwenden, die sind nahe genug
an den 5V.
Ansonsten funktionieren sie in der Regel ohne Probleme. Wenn nicht,
kannst du immer noch einen anderen kaufen.
> Kannst du mir bitte Beispiellinks von Händlern für USBASP schicken?
Amazon, Ebay, Ali Express
> Oder funktioniert der Atmel AVRISP MK-II out-of-the-box unter Linux?
Ja tut er. Das ist nach meinem Kenntnisstand immer noch der beste
Programmieradapter, den du kaufen kannst. Er ist sehr robust und zickt
niemals herum. Er passt sich automatisch an die Versorgungsspannung der
Zielschaltung an und zweigt schon beim Anstecken mit einer grünen LED
an, ob die Verbindung zum µC OK ist. Ich benutze ihn sehr gerne.
> Ausserdem ist der Atmel AVRISP MK-II teuer?
Ja er ist teuer. Aber sein Geld Wert. Leider wird er nicht mehr
produziert, doch viele Händler bieten ihn noch an. Insofern: greif zu,
wenn du kannst!
Achtung: Es werden asiatische Klone mit sehr ähnlichem Namen aber
teilweise stark abweichender Innenschaltung verkauft. Wenn in der
Artikelbschreibung "Atmel" steht, heißt das noch nichts. Achte auf die
Fotos. Der originale sieht wie im Anhang aus und hat diesen weißen
Siegelaufkleber.
dummyuser schrieb:> Ok danke für den Hinweis. Gibt es keine alternativen? ich dachte das> (compiler, hex, elf, oder was es sonst so gibt) geht mit gcc avr
Damit erstellst Du Dein name_of_the_file.hex aus dem Quelltext. Um das
Programm dann auf den ATtiny zu bekommen, brauchst Du "micronucleus", Du
schließt das kleine Board an USB an und...
Usage on Ubuntu:
sudo micronucleus --run name_of_the_file.hex
Usage on Mac:
micronucleus --run name_of_the_file.hex
Usage on Windows
micronucleus.exe --run name_of_the_file.hex
Damit ersparst Du Dir das Programmiergerät und den ISP-Anschluss, alles
läuft über USB, sowohl Spannungsversorgung als auch Programmieren und
(wenn Du willst) die Datenübertragung zwischen PC und AVR (siehe z.B.
https://www.obdev.at/products/vusb/easylogger-de.html)
Martin H. schrieb:> Damit erstellst Du Dein name_of_the_file.hex aus dem Quelltext. Um das> Programm dann auf den ATtiny zu bekommen, brauchst Du "micronucleus", Du> schließt das kleine Board an USB an und...
folgendes Scenario:
ATtiny ist auf dem breadboard angesteckt. Wie am Beispiel von
http://stefanfrings.de/avr_hello_world/DSCF0437.JPG
Welches USB Kabel muss ich nehmen und wie verbinde ich es mit dem
breadboard bzw. pins von ATtiny?
Ich habe aktuell überhaupt keine Komponente, weder breadboard, noch
Widerstand, noch den ATtiny85.
Martin H. schrieb:> Damit ersparst Du Dir das Programmiergerät und den ISP-Anschluss, alles> läuft über USB, sowohl Spannungsversorgung als auch Programmieren und> (wenn Du willst) die Datenübertragung zwischen PC und AVR (siehe z.B.> https://www.obdev.at/products/vusb/easylogger-de.html)
ok ich glaube, du meinst die Lösung mit Digispark. Ich suche allerdings
die direkte Lösung mit breadboard und ATtiny.
dummyuser schrieb:> Welches USB Kabel muss ich nehmen und wie verbinde ich es mit dem> breadboard bzw. pins von ATtiny?
Du brauchst ein USB Kabel, das an den Programmieradapter passt. Der
USBASP ist dafür vorgesehen, direkt in den Laptop oder USB-Hub auf dem
Tisch gesteckt zu werden.
Zwischen Programmieradapter und Steckbrett verwendet man typischerweise
Dupont Kabel.
Axel S. schrieb:>> Ich stelle (Wunschvorstellung) so vor:>> * breadboard / steckerboard>> * kabel>> * LED (als Output)>> * ATtiny85>> Das ist alles trivial.
Für dich und mich und alle Fachleute, für totale Anfänger nicht.
>> * Verbindung zwischen Computer und breadboard, um C/C++ Programm>> auf den ATtiny85 zu flashen. USBasp?>> USBASP kann man nehmen (mache ich z.B.). Gibt es sehr billig aus China.> Allerdings meist mit steinzeitalter Firmware, so daß man als erste> Aktion die Firmware updaten muß. Deswegen sollte man zwei von den> Dingern kaufen. Dann kann man den einen mit dem anderen updaten.
Eben darum ist das NIX für Anfänger! Es gibt preiswerte Alternativen
OHNE Gefrickel!
https://www.reichelt.de/programmer-f-avr-stk500-atmega-attiny-at90-diamex-usb-isp-p110344.html?r=1> Es gibt aber unzählige ISP-Adapter am Markt. Lies den Artikel> AVR In System Programmer im hiesigen Wiki.
Tja, aber das ist die Qual der Wahl! Der Anfänger wird vom (Über)angebot
erschlagen! Darum sollte man eher was explizites empfehlen.
Siehe Anhang. Das ist der Minimalaufbau. Eine DIL8-Fassung, ein
Steckverbinder, Kondensator und 5V aus nem Steckernetzteil oder
Powerbank.
https://www.mikrocontroller.net/articles/AVR_In_System_Programmer#ISP
Stefan F. schrieb:> Martin, du bist auf dem falschen Gleis. Er möchte keinen Digispark> verwenden.
Sorry, es dauerte zu lange, meinen Text zusammenzukopieren und
abzuschicken - so hat er sich mit der Aussage "Steckbrett statt
Digispark" überschnitten - bitte ignorieren.
dummyuser schrieb:> Anschließend, baue ich das Beispiel nach:> http://stefanfrings.de/avr_hello_world/DSCF0437.JPG> Für die Strom-Versorgung, nehme ich Batteriehalter (3x) 3,6V. Das stecke
?? Ein 3xAA Batteriehalter hat ca. 4,5V Nennspannung.
> ich ebensfalls am BReadboard an.>> Könnt ihr das bitte absegnen? Fehlt was?
Deine LED und der Vorwiderstand (1k). Der Rest paßt. Also Software
sollte man Atmelstudio nehmen, das ist Plug & Play, wenn gleich es das
nur für Windows gibt.
Martin H. schrieb:> Um das Programm dann auf den ATtiny zu bekommen, brauchst Du> "micronucleus"
Du solltest aber dazu sagen, daß das nur eine Option ist. Und sowieso
nur für Leute relevant ist, die das Digispark Board nutzen. Und daß das
einen bereits geflashten (mit dem Bootloader) µC voraussetzt.
> Usage on Ubuntu:> sudo micronucleus --run name_of_the_file.hex
Au weia. Nein, das will man so sicher nicht tun. Was man statt dessen
will, ist eine udev-Regel, die das Digispark USB-Gerät für normale
Nutzer (Gruppe plugdev) beschreibbar macht. Fremde Software als
Superuser auszuführen, ist auf allen Betriebssystemen eine blöde Idee.
> Damit ersparst Du Dir das Programmiergerät und den ISP-Anschluss
Genau. Und bindet sich für alle Zeiten an diesen Bootloader. Dann doch
lieber einmal die zwei Euro für einen usbasp ausgeben und danach alleAVR mit ISP Schnittstelle flashen können. Insbesondere auch fabrikneue.
Axel S. schrieb:> Du solltest aber dazu sagen, daß das nur eine Option ist. Und sowieso> nur für Leute relevant ist, die das Digispark Board nutzen. Und daß das> einen bereits geflashten (mit dem Bootloader) µC voraussetzt.
Von nix anderem als dem Digispark sprach ich in meinem Post direkt über
dem zitierten, dort ist das alles erfüllt.
Axel S. schrieb:>> Usage on Ubuntu:>> sudo micronucleus --run name_of_the_file.hex>> Au weia. Nein, das will man so sicher nicht tun. Was man statt dessen> will, ist eine udev-Regel, die das Digispark USB-Gerät für normale> Nutzer (Gruppe plugdev) beschreibbar macht. Fremde Software als> Superuser auszuführen, ist auf allen Betriebssystemen eine blöde Idee.
Mann, das ist der Text aus dem Readme vom micronucleus, um zu schnellen
Ergebnissen zu kommen, logischerweise gibt es dafür - wie auch z.B. für
die OBDev-Applikationen oder den USBAP - eine Handvoll udev-Regeln. Es
ging doch hier um ein hello_led.c.
Axel S. schrieb:> Genau. Und bindet sich für alle Zeiten an diesen Bootloader. Dann doch> lieber einmal die zwei Euro für einen usbasp ausgeben und danach alle> AVR mit ISP Schnittstelle flashen können. Insbesondere auch fabrikneue.
Bindest Du Dich für alle Zeiten an eine Biersorte, wenn Du die einmal
getrunken hast? Den USBASP (oder was vergleichbares) hat man doch
sowieso, sobald es etwas professioneller sein soll; genauso wie noch
einen STK500 und den ICE.
Aber für Spielereien und Anfänger ist nix portabler als der Digispark am
Laptop; in der Mittagspause im Job, abends vor der Glotze, auf der
Terrasse...
Außerdem weißt Du, dass das Ding funktioniert, weil es beim ersten
Bestromen erstmal blinkt, keine Wackler oder Vertauscher am Steckbrett,
keine vergessenen Drahtbrücken, ...
Aber vielleicht bin ich zu pragmatisch, wenn ich einem Einsteiger
empfehle, dass erstmal die HW nachweislich laufen muss, bevor man Fehler
in der SW sucht. Anschließend ab auf's Wackelkontakt-Brett und dann die
PCB beim Chinesen bestellen.
Nachtrag:
Da es hier sowieso seit heute 12:21 nicht mehr um Digispark geht, und
ich auch schon geschrieben hatte, dass man meine Beiträge zu diesem
Thema bitte ignorieren solle, ist diese Diskussion eh' für /dev/null.
Hallo von dummyuser und Mitleser,
ich schlage einen anderen Weg, auch für die Zukunft, vor.
Das aTeVaL (Microchip AVR Evaluationsboard)
#
https://www.ehajo.de/bausaetze/bedrahtet/89/ateval-microchip-avr-evaluationsboard
Damit hat man eine Plattform MIT ISP Programmer on Board und kann auch
gleich mit unterschiedlichen AVR8 Erfahrungen sammeln!
Selbst habe ich eines der ersten Boards und es funktioniert sehr gut.
Der ISP Programmer ist über die Steckerleisten auch als externer Adapter
nutzbar.
Über den 40-poligen Erweiterungsstecker ist der Anschluss eines
Bread-Boards möglich.
# https://www.ehajo.de/startersets/128/starterkit-breadboard
Ein ATtiny85 ist schon sehr klein und die I/O begrenzt, so dass sich
hier ein Standard, der ATmega328p, anbietet.
#
https://www.ehajo.de/bauelemente/aktiv/mikrocontroller/115/atmega328p-pu
Der ATtiny23131 passt natürlich auch, wie viele andere DIP AVR8, auf das
AVR Evaluationsboard. Die Preisdifferenz zum ATmega328p ist aber
marginal.
#
https://www.ehajo.de/bauelemente/aktiv/mikrocontroller/110/attiny2313a-pu
Die Größten AVR8 sind im 40 pol. DIP Gehäuse, das sind u.a. - eine
Auswahl - die ATmega32, ATmega644, ATmega1284.
Die -A und -P Kennzeichnungen lasse ich bewusst mal weg.
Axel S. schrieb:> Martin H. schrieb:> Um das Programm dann auf den ATtiny zu bekommen, brauchst Du> "micronucleus">> Du solltest aber dazu sagen, daß das nur eine Option ist. Und sowieso> nur für Leute relevant ist, die das Digispark Board nutzen. Und daß das> einen bereits geflashten (mit dem Bootloader) µC voraussetzt.>> Usage on Ubuntu:> sudo micronucleus --run name_of_the_file.hex>> Au weia. Nein, das will man so sicher nicht tun. Was man statt dessen> will, ist eine udev-Regel, die das Digispark USB-Gerät für normale> Nutzer (Gruppe plugdev) beschreibbar macht. Fremde Software als> Superuser auszuführen, ist auf allen Betriebssystemen eine blöde Idee.
Das ist u.a. einer der gründe wieso nicht digispark.
Mein primäres ziel ist, software c/c++ in einem microcontroller zu
bringen und etwas über die architektur zu erfahren, zu verstehen.
ich danke für die antworten in relativ kurzer zeit.
Falk B. schrieb:> Also Software> sollte man Atmelstudio nehmen, das ist Plug & Play, wenn gleich es das> nur für Windows gibt.
Da Linux hier Voraussetzung ist, hilft Atmelstudio nicht wirklich
weiter.
Allerdings ist das unter Linux wirklich kein großes Problem.
Die Pakete
gcc-avr
binutils-avr
avrdude (zum Flashen)
avr-libc
gdb-avr
sollte man in jeder Distro so oder so ähnlich benannt finden.
Dazu kann man ein eclipse mit eclipse-cdt und avr-plugin installieren,
wenn man eine IDE haben möchte.
http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin
Muss man aber nicht. "Von Hand" kompilieren oder per Makefile geht auch.
In der Doku zu avrdude kann man auch nachlesen, welche Programmer
avrdude unterstützt. Man kann auch avrdude selbst fragen: avrdude -c ?
Siehe auch:
https://www.mikrocontroller.net/articles/AVRDUDEhttp://ladyada.net/learn/avr/avrdude.html
Ansonsten würde ich von Arduino und Bootloadern erst einmal die Finger
lassen. M.E. verstellt das nur den Blick auf die Technik.
Man will ja etwas lernen und anschließend beherrschen?
Ein USBasp von AliExpress wird's tun. Traut man dem Chinamann nicht,
oder wenn's etwas schneller gehen soll, kann man auch z.B. einen
guloprog von guloshop.de nehmen.
Dort gibt's auch Breadboards, Kabel usw. und sogar den Attiny.
(Nein, ich bin mit dem Laden nicht verbandelt. Ich finde aber das
Angebot für Einsteiger sehr stimmig und auch vernünftig gepreist.
Natürlich gibt es jede Menge anderer Alternativen. Man hat die Qual der
Wahl...)
Schön daß der Thread langsam zum Topic zurück findet.
Np R. schrieb:> Da Linux hier Voraussetzung ist, hilft Atmelstudio nicht wirklich> weiter.>> Allerdings ist das unter Linux wirklich kein großes Problem.> Die Pakete> gcc-avr> binutils-avr> avrdude (zum Flashen)> avr-libc> gdb-avr> sollte man in jeder Distro so oder so ähnlich benannt finden.
So sieht es aus. Als IDE geht natürlich auch etwas schlankeres als
Eclipse, z.B. Code::Blocks. Wenn man nicht gleich einen Texteditor und
ein Makefile benutzt. Apropos Makefile; da wäre noch mfile zu erwähnen:
http://alfred.sax.de/~joerg/mfile/
Als Controller würde ich für den Einstieg übrigens nicht den ATTiny85
empfehlen, sondern eher einen ATMega88. Der hat dann auch genügend Pins,
daß man ein Display angeknüppert kriegt. Und man muß nicht laufend die
ISP-Anschlüsse an- und wieder abstecken. Außerdem passen dann viele der
Projekte aus der Anfangszeit, wo der ATMega8 sehr beliebt war. Der 88er
ist ja nur eine minimal aufgebohrte Variante des 8er.
Außerdem hat man vom ATMega88 einen glatten Upgradepfad zum ATMega328,
mit identischem Pinout und bis auf mehr Speicher auch identischem
Innenleben. Es spricht auch kaum etwas dagegen, gleich den ATMega328 zu
nehmen. Preislich nimmt sich das nicht viel. Ich nehme für Prototypen
auch gerne erstmal einen ATMega328. Und wenn der Code am Ende kleiner
ist, compiliere ich ihn einfach nochmal für einen ATMega168 oder 88 oder
gar 48 und tausche den µC.
Martin H. schrieb:> Bindest Du Dich für alle Zeiten an eine Biersorte, wenn Du die einmal> getrunken hast?
Wer bindet sich denn für alle Zeiten, indem er einen 2€
Programmieradapter kauft? Den Gedanken verstehe ich nicht.
Zum Thema AVR unter Linux gibt es neben den distributionsspezifischen
Tools noch das Herstellertool namens MPLABX (anstatt AtmelStudio).
Hierbei würde ich auch niemals 20€ in einen diamex investieren, wenn
auch 15€ für einen SNAP reichen (manchmal im Angebot für 10€).
Breadboard ist o.k. Vergess nur nicht die bedrahteten 100n
Abblockkondensatoren. Am besten in rauhen Mengen. Und ein Paar der Teile
als 0805er SMD.
USBasp kann dir Nerven kosten. Bei mir laufen die Kisten anstandslos,
wohingegen andere nur darüber fluchen. Fischls Teile sind zwar etwas
langsam und unkomfortabel, aber besser als nichts. Habe früher mal
avrdude gepatcht, damit ein pickit2 als AVR-Programmer die
Spannungsversorgung des Target übernimmt. Das PK2 war vom Speed mit dem
USBasp vergleichbar, macht aber Levelshifting. Die Spannungsversorgung
war für einfache Schaltungen
ausreichend (und wählbar 3v3 oder 5v).
Allerdings würde ich nicht mit Tiny85 beginnen. Nimm eine der großen
Kisten. Mit JTAG, falls du dich für den SNAP entscheidest. Ist robuster
als debugWire. Und im Jahr 2019 brauchst du insbersonders als Anfänger
keine Frickelprogrammierung. Reduzier deine Baustellen.
Zu den HW-Tools gehört auch eine serielle Schnittstelle. Nicht als
RS232, sondern so ein einfacher usb<->uart Umsetzer.
> Wenn ich dann alle Komponenten habe, weiß ich nicht wie es es anschließe
Zur Not eines Elektronikers würdig. Mit dem Lötkolben. Dann kannst du
auch die SMD 100n direkt auf den AVR löten.
Axel S. schrieb:> Als IDE geht natürlich auch etwas schlankeres als> Eclipse, z.B. Code::Blocks.
Richtig. Ist bei Debian-Abkömmlingen auch schon in den Repos. Also
apt-get install ... und läuft.
Ein Arduino ist das Schweizer Taschenmesser der Mikrocontroller. Lädt
man das ISP-Programmer Sketch auf einen Arduino Uno, hat man in 2
Minuten einen ISP-Programmer:
https://www.instructables.com/id/Arduino-Attiny85-programmer-Shield-on-PCB-ATTinyS/
Deshalb: Eine Axt ...ähh... Arduino im Haus erspart den Zimmerman
...ähh... den ISP-Programmmer.
neuer PIC Freund schrieb im Beitrag #6047657:
> Breadboard ist o.k. Vergess nur nicht die bedrahteten 100n> Abblockkondensatoren. Am besten in rauhen Mengen. Und ein Paar der Teile> als 0805er SMD.
Kondensator:
Sorry ich kenne die Bauteile nicht.
Der Kondensator ist dafür da, um die Spannung stabil zu halten?
Reicht ein einfacher Kondensator mit 100n nicht? Was ist ein
Abblockkondensator oder ein 0805 SMD.
USB - UART:
das muss ich mir dann auch noch im detail ansehen. auf jeden fall
erscheint mir das sinnvoll direkt mit dem microcontroller zu
"kommunizieren".
Axel S. schrieb:> Als Controller würde ich für den Einstieg übrigens nicht den ATTiny85> empfehlen, sondern eher einen ATMega88. Der hat dann auch genügend Pins,> daß man ein Display angeknüppert kriegt. Und man muß nicht laufend die> ISP-Anschlüsse an- und wieder abstecken. Außerdem passen dann viele der> Projekte aus der Anfangszeit, wo der ATMega8 sehr beliebt war. Der 88er> ist ja nur eine minimal aufgebohrte Variante des 8er.
Danke werde ich dann auch mal ausprobieren.
dummyuser schrieb:> Der Kondensator ist dafür da, um die Spannung stabil zu halten?
Ja
> Reicht ein einfacher Kondensator mit 100n nicht?
Reicht
> Was ist ein Abblockkondensator
Dieses Wort beschriebt die Funktion, wofür man den Kondensator benutzt.
Er block Störungen auf der Stromversorgungsleitung ab. Das ist kein
Spezial-Bauteil.
> oder ein 0805 SMD.
Beschreibt die Größe eines SMD Bauteil. Bauteile in der Größe 0805 kann
man direkt zwischen zwei Pins/Löcher auf eine Lochrasterplatine löten.
Nicht zu verwechseln mit "0815", das bedeutet soviel wie "gewöhnlich".
Wegen ATtiny85 versus ATmega88:
Ich mag den Attiny85, weil er schön klein ist. Tatsächlich benutze ich
diese Bauform häufiger, als alle anderen Mikrocontroller: als Timer,
Tiefentladeschutz für Akkus oder schlicht um ein LED etwas komplexer
blinken zu lassen als einfach nur an/aus.
Der ATmega88 ist der direkte Nachfolger vom Urvater aller AVR (das war
der ATmega8). Für den Atmega 8 gibt es sehr viele alte Anleitungen, die
du exakt genau so auch auf dem Atmega88 laufen lassen kannst. Noch eine
Nummer weiter wäre der Atmega328, den du auf Arduino Boards vorfindest.
Inzwischen ist der ATmega328 vermutlich das meistgenutzte Modell.
Alles was du auf einem kleinen AVR lernst, kannst du beinahe 1:1 auch so
auf den größeren machen. Die Unterschiede sind sehr gering und
offensichtlich, wenn man sich das jeweilige Kapitel im Datenblatt
anschaut.
Die größeren haben natürlich mehr Pins, mehr Funktionen, mehr Speicher,
was ihre Anwendung vereinfacht. Die kleineren (insbesondere der
Attiny13A) zwingen dich hingegen dazu, dir mehr zu überlegen, wie du
Hardware und Programm gestaltest. Dabei lernt man was.
Auf jeden Fall würde ich mich am Anfang auf die Modelle der untersten
Preisklasse konzentrieren. Bei den alt eingesessenen deutschen Händlern
(Conrad, Reichelt) wären das ATtiny13A, und ATmega88. Die ATtiny85 und
ATmega328 bekommst du günstiger bei moderneren Händlern (Guloshop, TME,
Aliexpress).
Bei Aliexpress kannst du Mikrocontroller gut im 5er Pack kaufen - dauert
aber lange (4-8 Wochen). Da würde ich dann auch gleich jeweils 100 Stück
von folgenden Bauteilen mit besorgen:
Kondensator 100nF
Widerstand 220 Ohm
Widerstand 2,2k Ohm
Widerstand 22k Ohm
LED rot
LED gelb
LED grün
LED blau
LED weiß
Diode 1N4148
Transistor BC337-40
Transistor BC327-40
Die wirst du immer wieder brauchen. Bei Conrad kosten 10 Stück schon
mehr, als die 100 vom Chinesen.
Stefan F. schrieb:> Wegen ATtiny85 versus ATmega88:>> Ich mag den Attiny85, weil er schön klein ist.
Für viele Sachen ist er einfach zu klein. Gerade auf dem Steckbrett,
wenn man experimentieren will. Von den 8 Pins sind 3 schon mal fest
vergeben: GND, Vcc und Reset. Bleiben 5 IO-Pins. Wenn man per ISP
flashen will, braucht man dafür MISO, MOSI und SCK. Bleiben noch 2 Pins.
Genug für einen Taster (ein Pin als Eingang) und eine LED (noch ein Pin
als Ausgang). Ende Gelände.
Natürlich kann man die ISP-Pins als IO's verwenden. Aber dabei kann man
sich auch schön in den Fuß schießen. Etwa wenn man einen komischen
ISP-Adapter erwischt hat, der die Pins nach dem Flashen nicht
hochohmig schaltet. Oder wenn man irgendeine Last an einem ISP-Pin
hängen hat, die der ISP-Adapter nicht oder nicht schnell genug treiben
kann (ein Piezo-Buzzer reicht schon). Dann geht erstmal gar nichts mehr
und als Anfänger guckt man in den Wald.
Also fängt man an, den µC umzustecken. Hierhin zum Flashen, dann dahin
um das Programm zu testen. Was die ganze Idee "ISP" irgendwie
konterkariert. Da lobe ich mir doch einen größeren µC, wo ich die
ISP-Anschlüsse einfach permanent am ISP-Adapter lassen kann und trotzdem
noch genug IO's frei habe.
> Die größeren haben natürlich mehr Pins, mehr Funktionen, mehr Speicher,> was ihre Anwendung vereinfacht. Die kleineren (insbesondere der> Attiny13A) zwingen dich hingegen dazu, dir mehr zu überlegen, wie du> Hardware und Programm gestaltest. Dabei lernt man was.
Klar. Aber man muß damit ja nicht unbedingt anfangen. Sogar ich, der ich
mich als alter Hase betrachte, gehe meine Projekte so an. Der Prototyp
wird mit einem µC aufgebaut, der mindestens groß genug ist (der z.B.
mehr IO's hat als minimal benötigt). Dann wird das Projekt aufgebaut und
programmiert. Und dabei kommt eigentlich immer noch irgendwas dazu, was
man zu Beginn nicht auf dem Radar hatte. Ein extra Sensor hier, eine
extra LED dort. Und dann will man noch die Hintergrundbeleuchtung des
LCD dimmen. Da ist man froh, wenn man noch nicht alle IO's verplant
hatte. Und am Ende, wenn alles fertig ist, dann schaut man sich an, ob
das auch auf einen kleineren µC paßt.
>Für viele Sachen ist er einfach zu klein. Gerade auf dem Steckbrett,>wenn man experimentieren will. Von den 8 Pins sind 3 schon mal fest>vergeben: GND, Vcc und Reset. Bleiben 5 IO-Pins. Wenn man per ISP>flashen will, braucht man dafür MISO, MOSI und SCK. Bleiben noch 2 Pins.>Genug für einen Taster (ein Pin als Eingang) und eine LED (noch ein Pin>als Ausgang). Ende Gelände.
Dagegen könnte der Attiny85 AudioBootloader helfen. Der braucht nur
einen Pin und den kann man auch auf den Resetpin legen.
Bernd schrieb:> Der braucht nur einen Pin
Der owl (One Way Loader) braucht auch nur einen Pin.
http://www.jtxp.org/tech/onewayloader.htm
Ganz praktisch - wenn man so weit ist.
Einem Anfänger würde ich aber erst einmal keinen Bootloader empfehlen.
Die AVRs, die er im Laden bekommt, haben ja auch keinen. Er muss also
sowieso erst per ISP flashen.
Stefan F. schrieb:> Martin H. schrieb:>> Bindest Du Dich für alle Zeiten an eine Biersorte, wenn Du die einmal>> getrunken hast?>> Wer bindet sich denn für alle Zeiten, indem er einen 2€> Programmieradapter kauft? Den Gedanken verstehe ich nicht.
Bitte den Blickwinkel etwas erweitern und schauen, worauf sich mein
Bindest Du Dich bezog, dann wirst Du auch verstehen, dass es nicht um
den Adapter für 2€ sondern um den Bootloader ging.
Hier nochmal im erweiterten Kontext:
Martin H. schrieb:> Axel S. schrieb:>> Genau. Und bindet sich für alle Zeiten an diesen Bootloader. Dann doch>> lieber einmal die zwei Euro für einen usbasp ausgeben und danach alle>> AVR mit ISP Schnittstelle flashen können. Insbesondere auch fabrikneue.>> Bindest Du Dich für alle Zeiten an eine Biersorte, wenn Du die einmal> getrunken hast? Den USBASP (oder was vergleichbares) hat man doch> sowieso, sobald es etwas professioneller sein soll; genauso wie noch> einen STK500 und den ICE.
Martin H. schrieb:> Hier nochmal im erweiterten Kontext:>> Martin H. schrieb:>> Axel S. schrieb:
[Zitatebene ergänzt]
>>>Martin H. schrieb:>>>> Damit ersparst Du Dir das Programmiergerät und den ISP-Anschluss>>> Genau. Und bindet sich für alle Zeiten an diesen Bootloader. Dann doch>>> lieber einmal die zwei Euro für einen usbasp ausgeben und danach alle>>> AVR mit ISP Schnittstelle flashen können. Insbesondere auch fabrikneue.>>>> Bindest Du Dich für alle Zeiten an eine Biersorte, wenn Du die einmal>> getrunken hast? Den USBASP (oder was vergleichbares) hat man doch>> sowieso, sobald es etwas professioneller sein soll; genauso wie noch>> einen STK500 und den ICE.
Ich wollte erst gar nicht auf deinen Unsinn eingehen, aber nachdem du
das jetzt nochmal wiederholst: das ist Humbug, was du da erzählst. Du
hast doch als Argument für den Bootloader selber angeführt, daß man
dann kein ISP mehr bräuchte.
Fakt ist aber: man braucht ISP sehr wohl. Spätestens dann, wenn man
einen fabrikneuen µC (ohne Bootloader) verwenden will. Aber wenn man ISP
sowieso braucht, warum dann überhaupt auf einen Bootloader setzen? Noch
dazu für ein Test- und Entwicklungssystem?
Wenn es später mal um ein fertiges Gerät geht, das man in freier
Wildbahn updaten können muß ... dann ist das was anderes. Ist ja nicht
so, daß Bootloader nur Nachteile hätten. Aber sie haben eben auch nicht
nur Vorteile.
so jetzt habe ich im groben Bauteile um zu experimentieren.
ich habe u.a. 1x einen USB to TTL (Serial) und 1x den ISP (10pol)
USB to TTL
----------
im groben habe ich es geschafft wie breadboard, jumpwire, attiny85 und
den USBtoTTL zu verbinden.
1
dmesg
hat mir auch die verbindung angezeigt:
1
Product:AVRISPmkII
1
minicom
konnte ich mich auf das Terminal einwählen. Mehr kann ich nicht.
ISP
---
auch hier habe ich anhand jumperwires die ISP pins und ATTiny85 pins
(1,4,5,6,7,8) verbunden.
dann das folg. ausgeführt:
By the way:
Wenn du einen originalen ATMEL avrispmkII hast, dann ist wie im Handbuch
Seite 5 zu sehen:
1
Note:
2
The AVRISP mkII does not provide power on the VCC pin, but uses this pin to sense the voltage on the target circuitry. Your circuit needs to be powered by external means to operate.
D.h. der ATtiny muss an eine externe Spannungsquelle angeschlossen sein.
dummyuser schrieb:> minicom ... konnte ich mich auf das Terminal einwählen
Was bedeutet dieser Satz? Minicom ist ein Terminal Emulator. Was
bedeutet "einwählen" in diesem Zusammenhang? Ich denke dabei an ein
Telefon.
Ralph S. schrieb:> der ATtiny muss an eine externe Spannungsquelle angeschlossen sein.
Ja, und du musst noch den Parameter -B16 hinzufügen, solange der
Mikrocontroller mit seinen Standardmäßigen 1MHz getaktet wird, um den
Programmieradapter langsamer zu machen.
Stefan F. schrieb:> dummyuser schrieb:>> minicom ... konnte ich mich auf das Terminal einwählen>> Was bedeutet dieser Satz? Minicom ist ein Terminal Emulator. Was> bedeutet "einwählen" in diesem Zusammenhang? Ich denke dabei an ein> Telefon.
Das ich eine Verbindung zum microcontroller herstelle. Wie bei ssh.
Ich glaube nicht, dass ich einen original AVR erwischt habe.
Das folg. Kommando bringt die selbe Fehlermeldung:
1
avrdude -p attiny85 -c avrispmkII -P usb -B16
Ich tue mich schwer, bzw. weiß nicht wie ich es anschließe, ob ich es
richtig anschließe (Anhang). Ich habe jetzt eine externe Batteriequelle
(3x AA).
dummyuser schrieb:> Das ich eine Verbindung zum microcontroller herstelle. Wie bei ssh.
Das geht nicht. Wenn du vom PC aus eine Verbindung aufgebaut hast, dann
zum USB-UART Chip. Ob es hinter dem USB-UART in Richtung Mikrocontroller
weiter geht, kann der PC nicht wissen/erkennen.
dummyuser schrieb:> Ich glaube nicht, dass ich einen original AVR erwischt habe.
Warum denkst du so. Hast du jemals eine Fälschung gesehen? Ich nicht.
> Target reverse inserted
Bedeutet, dass der ISP Stecker falsch herum angeschlossen wurde. Dabei
fällt mir etwas auf: Du hat einen 10-poligen Stecker skizziert, aber der
originale Atmel ISP MkII hat einen 6-poligen Anschluss!
Zeige mal bitte ein Foto, wo man den Programmieradapter und alle
Steckverbindungen gut erkennen kann.
Bevor nächstes mal wieder so krakelige Skizzen machst, probier mal aus,
ob du mit deinem Smartphone Fotos von einer Bleistiftzeichnung machen
kannst.
Stefan F. schrieb:> dummyuser schrieb:>> Das ich eine Verbindung zum microcontroller herstelle. Wie bei ssh.>> Das geht nicht. Wenn du vom PC aus eine Verbindung aufgebaut hast, dann> zum USB-UART Chip. Ob es hinter dem USB-UART in Richtung Mikrocontroller> weiter geht, kann der PC nicht wissen/erkennen.>
Ok, danke. Verstehe.
> dummyuser schrieb:>> Ich glaube nicht, dass ich einen original AVR erwischt habe.>> Warum denkst du so. Hast du jemals eine Fälschung gesehen? Ich nicht.>
Du hattest erwähnt, dass ich darauf achten soll, dass es ein Label hat.
Auf dem Foto hatte es ein Label, aber was ich bekommen habe nicht.
>> Target reverse inserted>> Bedeutet, dass der ISP Stecker falsch herum angeschlossen wurde. Dabei> fällt mir etwas auf: Du hat einen 10-poligen Stecker skizziert, aber der> originale Atmel ISP MkII hat einen 6-poligen Anschluss!>
Hm, ich habe einen 10-poligen. Ist dann also ein Indiz, dass es nicht
original ist.
> Zeige mal bitte ein Foto, wo man den Programmieradapter und alle> Steckverbindungen gut erkennen kann.>> Bevor nächstes mal wieder so krakelige Skizzen machst, probier mal aus,> ob du mit deinem Smartphone Fotos von einer Bleistiftzeichnung machen> kannst.
Übrigens, ich folge deiner Beschreibung, aber eben das große Ganze fehlt
mir. Ich weiß nicht wie ich den ISP anschließe.
http://stefanfrings.de/avr_hello_world/index.html
dummyuser schrieb:> Ich weiß nicht wie ich den ISP anschließe.
Das steht in der Bedienungsanleitung des Programmieradapters. Ich denke,
du hast das schon richtig gemacht.
Auf deinem Foto sieht alles gut aus, bis zwei Sachen:
a) dein Programmieradapter ist offenbar kein originaler Atmel ISP mkII.
Das Kabel hat mehr Pins und auf dem Gehäuse fehlt das Atmel Logo.
b) Am Mikrocontroller fehlt ein Kondensator 100nF von VCC nach GND
Das erklärt aber noch nicht dein Problem. Vielleicht ist dein
Programmieradapter defekt. Besorge Dir mal zum Vergleich einen anderen
AVR Mikrocontroller und einen USBASP Programmieradapter.
dummyuser schrieb:>>> Ich glaube nicht, dass ich einen original AVR erwischt habe.>> Warum denkst du so. Hast du jemals eine Fälschung gesehen? Ich nicht.> Du hattest erwähnt, dass ich darauf achten soll, dass es ein Label hat.> Auf dem Foto hatte es ein Label, aber was ich bekommen habe nicht.
Ach so, ich dachte du meintest den Mikrocontroller.
AVR ist der Name für die Mikrocontroller-Serie von ehemals Atmel,
inzwischen Microchip.
Atmel ist der Hersteller des originalen ISP mkII Programmieradapters.
Wenn du von einem "originalen AVR" schreibst, kann das daher nur ein
Mikrochip sein. Aber egal, das ist nun geklärt.
Stefan F. schrieb:> dummyuser schrieb:>> Ich weiß nicht wie ich den ISP anschließe.>> Das steht in der Bedienungsanleitung des Programmieradapters. Ich denke,> du hast das schon richtig gemacht.>> Auf deinem Foto sieht alles gut aus, bis zwei Sachen:>> a) dein Programmieradapter ist offenbar kein originaler Atmel ISP mkII.> Das Kabel hat mehr Pins und auf dem Gehäuse fehlt das Atmel Logo.> b) Am Mikrocontroller fehlt ein Kondensator 100nF von VCC nach GND>> Das erklärt aber noch nicht dein Problem. Vielleicht ist dein> Programmieradapter defekt. Besorge Dir mal zum Vergleich einen anderen> AVR Mikrocontroller und einen USBASP Programmieradapter.
Hmm das wird ja wirklich heiter :)
ich habe jetzt einen anderen ATtiny85 (habe insgesamt 3) gesteckt und
ein Kondensator (10 steht drauf). Dann habe ich den mitgelieferten
Adapter (10-pol nach 6-pol) angesteckt. und dann die Pins verbunden:
dummyuser schrieb:> ich habe jetzt einen anderen ATtiny85 (habe insgesamt 3) gesteckt und> ein Kondensator (10 steht drauf). Dann habe ich den mitgelieferten> Adapter (10-pol nach 6-pol) angesteckt. und dann die Pins verbunden:MISO> (ISP) -> MISO> SCK (ISP) -> SCK> RST (ISP) -> RST> GND (ISP) -> GND> MOSI (ISP) -> MOSI> VCC (ISP) -> VCC>> Ergebnis: kein Fortschritt.
Es wurde bereits gesagt: ein AVRISPmkII (oder Nachbau) liefert keine
Betriebsspannung an den Target-µC. Der Anschluß "Vcc" dient nicht etwa
der Versorgung, sondern mißt die Betriebsspannung des Targets und
versorgt lediglich die Treiber des AVRISP (damit sie verträgliche Pegel
liefern).
TLDR; du muß deinen Target-µC noch irgendwie mit Spannung versorgen. Ein
fabrikneuer ATTiny85 läuft mit 1MHz Taktfrequenz (interner 8MHz
RC-Oszillator mit Teilung durch 8 durch die gesetzte CLKDIV8 Fuse).
Dafür reicht ihm eine Versorgungsspannung zwischen 1.8V und 5.5V. Sobald
die Fuses des ATTiny85 verändert wurden (etwa CLKDIV8 ausgeschaltet) mag
sich das ändern.
Der ebenfalls vorgeschlagene USBASP hingegen liefert am "Vcc" Anschluß
eine Spannung (typisch die +5V vom USB) und kann damit auch den
Target-µC und (in Grenzen) die Zielschaltung versorgen.
Manch einer (ich z.B.) empfindet das Verhalten des USBASP als Vorteil,
weil man dann kein extra Netzteil braucht. Andere hingegen bestehen auf
der reinen Lehre und preisen das AVRISP wegen seiner universellen
Anwendbarkeit, egal ob das Target nun mit 1.8V oder 5V läuft. YMMV.
Axel S. schrieb:> dummyuser schrieb:>>> ich habe jetzt einen anderen ATtiny85 (habe insgesamt 3) gesteckt und>> ein Kondensator (10 steht drauf). Dann habe ich den mitgelieferten>> Adapter (10-pol nach 6-pol) angesteckt. und dann die Pins verbunden:MISO>> (ISP) -> MISO>> SCK (ISP) -> SCK>> RST (ISP) -> RST>> GND (ISP) -> GND>> MOSI (ISP) -> MOSI>> VCC (ISP) -> VCC>>>> Ergebnis: kein Fortschritt.>> Es wurde bereits gesagt: ein AVRISPmkII (oder Nachbau) liefert keine> Betriebsspannung an den Target-µC. Der Anschluß "Vcc" dient nicht etwa> der Versorgung, sondern mißt die Betriebsspannung des Targets und> versorgt lediglich die Treiber des AVRISP (damit sie verträgliche Pegel> liefern).>> TLDR; du muß deinen Target-µC noch irgendwie mit Spannung versorgen. Ein> fabrikneuer ATTiny85 läuft mit 1MHz Taktfrequenz (interner 8MHz> RC-Oszillator mit Teilung durch 8 durch die gesetzte CLKDIV8 Fuse).> Dafür reicht ihm eine Versorgungsspannung zwischen 1.8V und 5.5V. Sobald> die Fuses des ATTiny85 verändert wurden (etwa CLKDIV8 ausgeschaltet) mag> sich das ändern.>> Der ebenfalls vorgeschlagene USBASP hingegen liefert am "Vcc" Anschluß> eine Spannung (typisch die +5V vom USB) und kann damit auch den> Target-µC und (in Grenzen) die Zielschaltung versorgen.>> Manch einer (ich z.B.) empfindet das Verhalten des USBASP als Vorteil,> weil man dann kein extra Netzteil braucht. Andere hingegen bestehen auf> der reinen Lehre und preisen das AVRISP wegen seiner universellen> Anwendbarkeit, egal ob das Target nun mit 1.8V oder 5V läuft. YMMV.
Danke für die detaillierte erklärung. Aber ich habe die VCC ja mit
Batterie (~3,5V) versorgt.
Ich bin grob der Beschreibung von Stefan vorgegangen: "Falls dein
Programmieradapter keine Versorgungsspannung
bereit stellt, kannst du auch 3 Akkus oder Batterien verwenden." - Band
1 http://stefanfrings.de/mikrocontroller_buch/index.html
Naja, ich werde das Teil zurückschicken. Wenn ein AVRISP dann Original.
Aber werde dann ein USBASP bestellen. Könnt ihr mir eins empfehlen?
Damit ich nicht wieder etwas falsches bestelle.
Oh jeh, du scheinst kein Troll zu sein, aber blutiger Anfänger (nein,
nicht negativ gemeint).
Wo kommst du her?
Wenn du aus dem Raum 76xxx kommst, können wir uns verabreden und ich
zeige dir wie es geht.
Kann ich dir auch was fürs Steckbrett mitgeben damit das funktioniert.
USBASP gibt es vorzugsweise aus China und wenn du das preiswert
möchtest, mußt du 3 Wochen darauf warten.
Hm, viele Wege führen nach Rom.
Vom Ansatz her würde ich dir fast empfehlen:
Ein Arduino Uno China Clone, das ISP-Shield und ein IDC-Flachbandkabel.
Warum?
Mit dem UNO kannst du AVR Programme testen und hochladen über den
Bootloader. Hierbei mußt du jedoch nicht die Arduino-IDE verwenden
(kannst es aber).
Prinzipiell ist ein UNO nichts anderes, als ein ATmega328p
Mikrocontroller mit Bootloader (und von daher in der Lage ein Programm
entgegen zu nehmen und sich selbst zu flashen).
Innerhalb der Arduino IDE gibt es bei Beispielen auch ein
Flasherprogramm AVRISP und, wenn du dieses Sketch (ich mag das Wort
nicht) auf den Arduino UNO lädtst, hast du aus dem UNO einen Programmer
gemacht.
D.h.: in dieser Konstellation hast du etwas, mit dem du Programmübungen
machen kannst (sowohl mit dem Arduino Framework oder auch "nur" mit
reinem C).
Und du hast einen Flasher um nackte Controller beschreiben zu können
(und an die Profis: Ja ich weiß, dass er dann keinen Debugger hat).
Prinzipiell aber würde ich den AVRISP behalten, weil: Wenn du einmal
weißt wie du mit dem Zeugs umgehen mußt wird dir der schon gefallen.
Grundsätzlich würde ich für einen Versuchsaufbau sicherlich nicht eine
Batterie verwenden (obwohl das an sich schon eine sehr saubere Spannung
bietet, allerdings nicht sehr stabil). Hier kann man zum einen die 5V
aus dem USB Anschluß nehmen oder (für den Anfang villt. besser) ein
Handynetzteil verwenden.
Wie gesagt: wenn du aus dem Postleitzahlenbereich 76xxx kommst, kannst
du dich mit mir verabreden und ich zeige dir wie es geht.
PS: das wichtigste ist auf deinem Foto leider nicht zu sehen, nämlich ob
du den IDC-Anschluß des AVRISP evtl. falsch herum angeschlossen hast.
dummyuser schrieb:> circuit.png
Du hast da einfach nur einen Kurzschuss zwischen den oberen drei Pins
des AVRISP MkII und den unteren gemacht.
Wenn man eine Pfostenfeldleiste so ins Steckbrett steckt, geht das gar
nicht anders.
Axel S. schrieb:> du muß deinen Target-µC noch irgendwie mit Spannung versorgen.
Hat er doch, mit Batterien
Matthias S. schrieb:> Du hast da einfach nur einen Kurzschuss ... gemacht.
Facepalm! Ja natürlich. Wie blöd, das hätte ich sehen müssen. Matthias,
du bis der Held des Tages.
@dummyuser:
Falls es nicht klar ist: auf deinem Steckbrett sind immer 5 Löcher pro
Reihe miteinander verbunden. Dort hast du deinen Stecker rein gesteckt,
so dass immer zwei Pins miteinander kurzgeschlossen sind:
Stefan F. schrieb:> Facepalm! Ja natürlich. Wie blöd, das hätte ich sehen müssen
Daran denkt man nicht, weil man selbst auf so eine Idee nicht kommen
würde (ich hab es auch nicht gesehen)
Ralph S. schrieb:> Matthias S. schrieb:>> Du hast da einfach nur einen Kurzschuss ... gemacht.>> Facepalm! Ja natürlich. Wie blöd, das hätte ich sehen müssen. Matthias,> du bis der Held des Tages.>> @dummyuser:>> Falls es nicht klar ist: auf deinem Steckbrett sind immer 5 Löcher pro> Reihe miteinander verbunden. Dort hast du deinen Stecker rein gesteckt,> so dass immer zwei Pins miteinander kurzgeschlossen sind:
Achso verstehe :)
Ralph S. schrieb:> Stefan F. schrieb:>> Facepalm! Ja natürlich. Wie blöd, das hätte ich sehen müssen>> Daran denkt man nicht, weil man selbst auf so eine Idee nicht kommen> würde (ich hab es auch nicht gesehen)
Ich bin aus dem 85er Raum. Vielen Dank für das Angebot. Das wäre
natürlich am einfachsten, wenn mir jemand über die Schultern schaut.
Aber immerhin gibt es dieses Forum.
Klasse Ihr habt mein Rätsel gelöst.
Ok, ich glaube ich verstehe. Ich hätte die ISP pins irgendwie (mit
Jumper Wires) in der Mitte anstecken müssen.
Achso den AVRISP habe ich bereits zurückgeschickt und stattdessen habe
ich ein USBASP 10-pol bestellt. Diesmal werde ich es in der middle gab
am breadboard anschließen.
dummyuser schrieb:> Diesmal werde ich es in der middle gab> am breadboard anschließen.
Du kannst die Kabel doch auch direkt in den Verbinder des Programmers
stecken. Wenn sie ins Steckbrett passen, dann auch in den Verbinder.
dummyuser schrieb:> Achso den AVRISP habe ich bereits zurückgeschickt und stattdessen habe> ich ein USBASP 10-pol bestellt.
Häh? Wieso das denn? Der AVRISP MkII ist derjenige, der alle MC
programmieren kann, inklusive XMega (PDI) und die neueren Tinys (TPI).
Matthias S. schrieb:> Häh? Wieso das denn?
Das frage ich mich auch.
Matthias S. schrieb:> Der AVRISP MkII ist derjenige, der alle MC> programmieren kann, inklusive XMega (PDI) und die neueren Tinys (TPI).
Der Atmel ICE ist noch etwas vielseitiger.
Allerdings auch gar nicht so billig.
Matthias S. schrieb:> dummyuser schrieb:>> Diesmal werde ich es in der middle gab>> am breadboard anschließen.>> Du kannst die Kabel doch auch direkt in den Verbinder des Programmers> stecken. Wenn sie ins Steckbrett passen, dann auch in den Verbinder.>> dummyuser schrieb:>> Achso den AVRISP habe ich bereits zurückgeschickt und stattdessen habe>> ich ein USBASP 10-pol bestellt.>> Häh? Wieso das denn?
Weil es kein Original war, sondern ein Klon. Und der Verdacht im Raum
stand, es könnte an ihm liegen.
> Der AVRISP MkII ist derjenige, der alle MC programmieren kann,> inklusive XMega (PDI) und die neueren Tinys (TPI).
Kann der USBASP auch. OK, dazu darf man nicht die 5 Jahre alte Firmware
verwenden, sondern muß mal upgraden. Auf die 3 Jahre alte Version.
Während in Villabajo noch um den Programmieradapter diskutiert wird,
hat man in Villarriba das Programm über ein einfaches USB-Kabel per
Bootloader auf den Digispark geladen und es blinkt schon die LED.
SCNR
Martin H. schrieb:> per> Bootloader auf den Digispark geladen und es blinkt schon die LED.
... und wie machst du das, wenn du einen Tiny85 OHNR einen bereits
geflashten Bootloader und keinen Programmer hast?
Während in Villabajo noch versucht wird, in das Digispark ein Programm
in einen Tiny ohne Bootloader zu flashen, läuft in Villariba ein
Programm in einem Tiny auf einem Steckbrett bereits...
Ralph S. schrieb:> ... und wie machst du das, wenn du einen Tiny85 OHNR einen bereits> geflashten Bootloader und keinen Programmer hast?
Indem man sich Digispark und Programmer nach Wunsch zulegt und dann in
kleinen definierten Schritten vorgeht (und den DANN oder WENN
Schritt erst ausführt, wenn der vorherige erfolgreich war):
1. Den Digispark (der hat den BL bereits on-board) speziell dafür
benutzen, damit man ein System hat, von dem man weiß, dass die HW schon
mal läuft (weil es "out-of-the-box", nur per USB an den Rechner
gesteckt, kurz in
1
dmesg
auftaucht) und anschließend die LED blinkt.
1.1. DANN muss man nur den Compiler und die Toolchain (incl. einer
einfachen udev-rule) zum Laufen bringen (dazu gibt es HowTos) und ein
1
simple.c
Programm fehlerfrei übersetzen (repeat until <NO_FEHLERMELDUNGEN>).
WENN das läuft, einfach mit
1
micronucleus --run simple.hex
laden und "watchen the blinkenlight".
1.2. DANN kann man das Delay anpassen und weitere Spielereien
durchführen, wie Port abfragen und LED entsprechend leuchten lassen,
(bis hin zu komplexeren Sachen wie ADC einlesen und als PWM auf die LED
geben). Das nimmt mindestens ein Wochenende in Anspruch.
1.3. DANN hat man die SW incl. Erstellung im Griff.
2. UND DANN ... das ganze auf dem Steckbrett nachbauen und per AVRISP
oder USBASP oder STK500 flashen und schauen, ob es sich genauso verhält,
(repeat until...).
2.1. DANN PCB bestellen oder auf Lochraster aufbauen (Danke AVR für's
DIL-Format!).
(Weder AVRISP noch USBASP noch STK500 gibt's bei ALDI, die bestellt man
in China oder EU nach Abwägung Preis <-> Zeit, genauso wie auch den
Digispark.)
So und jetzt macht was Ihr wollt, das war bereits weiter oben nur ein
Vorschlag zur Güte für die OMA-Zielgruppe (Ohne Mindeste Ahnung) um sich
schrittweise zu entwickeln, aka. "lerne Laufen bevor Du rennst".
Gleicher Ansatz gilt auch für ARM und andere modernere Prozessoren,
dafür bietet der Hersteller sogar Eval-Boards und Devel-Tools an, um
sich schrittweise vorzuarbeiten.
dummyuser schrieb:> so lerne ich was.
Das bedienen der Shift Taste?
dummyuser schrieb:> genau ich möcht kein digispark.
Is klar...
Der einzige wesentliche Unterschied, zwischen Digispark und einem
nackten Tiny ist wohl der Bootloader oder der USB Port.
Mit dem Bootloader hast du bei der Programmierung sowieso keinen
Kontakt, und wenn er stört, kannst du ihn jederzeit entsorgen.
dummyuser schrieb:> arduino ökosystem kommt eventuell danach.
Selbst bei völligem Verzicht auf die Arduino Framework Komfort
Funktionen/Klassen/Methoden kannst du aus der Arduino IDE den Tiny mit
C++, C und ASM bearbeiten.
Stoff zum lernen genug.
Aber was solls, ich will dich nicht bekehren, aber deine Argumentation
schein mir doch arg auf Annahmen zu beruhen, nicht so sehr auf Fakten.
dummyuser schrieb:> avrisp habe ich zurückgeschickt weil es ein klon war.
Soweit mir bekannt, gibts die nicht mehr als Original.
Aber auch hier: Des Menschen Himmelreich ....
Ralph S. schrieb:> ... und wie machst du das, wenn du einen Tiny85 OHNR einen bereits> geflashten Bootloader und keinen Programmer hast?
dann nehme ich einen Nano als ISP oder baue mir einen für Pony2000 aus
der LPT
http://www.schorsch.at/mikrokontroller/technik/mikrokontroller/avr-isp-programmer
und mit reichlich BAT42 alle anderen LPT Leitungen angezapft und auf
einen Elko geführt hat der 74HC244 genug Saft um auch versorgt zu sein.
vermutlich der Atmel auch aber das weiss ich nicht mehr so genau
dummyuser schrieb:> Achso den AVRISP habe ich bereits zurückgeschickt
Das war aber voreilig. Und schade, denn dieser Programmieradapter ist
eigentlich einer der besten (jedenfalls das Original).
Martin H. schrieb:> So und jetzt macht was Ihr wollt, das war bereits weiter oben nur ein> Vorschlag zur Güte für die OMA-Zielgruppe (Ohne Mindeste Ahnung) um sich> schrittweise zu entwickeln, aka. "lerne Laufen bevor Du rennst".> Gleicher Ansatz gilt auch für ARM und andere modernere Prozessoren,> dafür bietet der Hersteller sogar Eval-Boards und Devel-Tools an, um> sich schrittweise vorzuarbeiten.
Ich sehe das nur bedingt so. Im Gegenteil. Heutzutage wird alles
abstrahiert, was den Einstieg erleichtert, aber man nicht ganz versteht
was im Hintergrund läuft.
AVRISP habe ich voreilig zurückgeschickt, weil das höchstwahrscheinlich
ein Klon war. Hätte ich ein Originalen, dann würde ich den behalten.
Arduino Fanboy D. schrieb:> Der einzige wesentliche Unterschied, zwischen Digispark und einem> nackten Tiny ist wohl der Bootloader oder der USB Port.
Und genau das interessiert mich :) der Bootloader. Also wie
funktionieren die Dinger eigentlich.
> Mit dem Bootloader hast du bei der Programmierung sowieso keinen> Kontakt, und wenn er stört, kannst du ihn jederzeit entsorgen.
Wenn du mir zeigst wie ich den Bootloader überschreibe oder entsorge
dummyuser schrieb:> Wenn du mir zeigst wie ich den Bootloader überschreibe oder entsorge
Du nimmst deinen AVRISP MkII und setzt die Fuses auf
Auslieferungszustand, Chip Erase nicht vergessen.
Steht alles im Datenblatt.
Ach ja, du hast ja keinen mehr.
(und neue originale gibts auch nicht mehr)
Dann nimm einen Arduino.
Oder USBasp oder oder ....
dummyuser schrieb:> Und genau das interessiert mich :) der Bootloader. Also wie> funktionieren die Dinger eigentlich.
Tipp:
Kundig machen!
Selber suchen und selber lesen!
Das ist keine Geheimwissenschaft.
Mann, Mann, Mann,
das artet hier aus.
Erst möchte dummyuser "nur" einen ATtiny85 flashen (was er wohl noch nie
gemacht hat) => okay
Gibts viele Fallstricke (die für jemanden der das schon ne Weile macht
nicht mehr immer sofort zu sehen ist ) => okay
Dann gibts Info's wie es gehen kann => okay
Dann kommt die Fraktion die alles besser, vor allen Dingen anderst,
macht und kann (in diesem Falle hier Digispark) => nicht okay
Weil: Der TO wollte einen nackten (und vor allen Dingen leeren) Tiny85
flashen
Er wird aufgeklärt was den ein Digispark ist => okay
dummyuser schrieb:> genau ich möcht kein digispark
=> okay (weil er ja nackten Tiny85 will)
Auf die Frage, wie man einen Bootloader in einen nackten Tiny85 bekommt
antwortet (für mich etwas überheblich):
Martin H. schrieb:> 2. UND DANN ... das ganze auf dem Steckbrett nachbauen und per AVRISP> oder USBASP oder STK500 flashen und schauen, ob es sich genauso verhält,> (repeat until...).
Super, sehr super: USBasp und STK500 sind natürlich keine Programmer,
deshalb => nicht okay
Das ganze artet etwas aus, und das uralte Ponyprog (mit
Parallelportinterface) kommt wieder ins Spiel. Das ist zweierlei irre,
weil Rechner mit LPT - Schnittstelle ausgestorben sind und zweitens
etwas für Linux angefragt wurde und es Ponyprog meines Wissens für Linux
nicht gab, deshalb: => nicht okay
Aber plötzlich "grätscht" sogar der TO dazwischen mit:
dummyuser schrieb:> Und genau das interessiert mich :) der Bootloader. Also wie> funktionieren die Dinger eigentlich.
=> nicht okay
Wenn du über Bootloader etwas machen möchtest, dann wäre der Digispark,
Arduino UNO, Arduino nano oder oder oder gut.
Augenscheinlich bist du ein großer Anfänger der zum einen mit Hardware
nicht so richtig umgehen kann, sonst würde dir ein Aufbau eines 8 pol.
IC's in Verbindung mit einer ISP Schnittstelle nicht diese
Schwierigkeiten machen. Bis du soweit bist, einen Bootloader selbst zu
programmieren (egal ob über plane C oder dem Arduino Framework) dürfte
noch gewaltig viel Wasser den Rhein hinunter fließen.
Wenn ich dich jedoch nur falsch verstanden habe und du weißt nicht
wirklich wie ein Bootloader funktioniert, du möchtest nur einen
verwenden, dann eine kurze Erklärung:
Gültig für alle Mikrocontroller:
- ein Bootloader ist eine Software (Firmware), die in einem Controller
gespeichert ist. Manche Controller haben einen Bootloader schon von Haus
aus mit dabei, der nicht gelöscht werden kann (Bspw. STM32 Serie). Die
ATtiny und ATmegaxx8 haben von Haus aus KEINEN Bootloader. Bootloader
können nur implementiert sein bei Mikrocontroller, die in der Lage sind
aus ihrer eigenen Firmware heraus den eigenen Flashspeicher zu
beschreiben (und damit eine Anwenderfirmware im Flash abzulegen).
- Das Programm des Bootloaders muss aktiviert werden (im Falle von STM32
über Boot0 / Boot1), im Falle von ATmega über einen Reset des
Controllers. Ein ATmega kann über Fuses einen Bereich des Flashspeichers
reservieren, der für den Bootloader genutzt wird. Ist dieser reserviert,
kann der Bootloader den Speicher den er selbst belegt NICHT flashen. Ein
ATmega ist also grundsätzlich für einen Bootloaderbetrieb ausgelegt.
Nach einem Reset führt der Controller erst das Programm des Bootloaders
aus. Der Bootloader wartet in aller Regel auf einer Schnittstelle (im
Falle von Arduino auf der seriellen) auf eingehende Befehle. Kommen
diese nicht innerhalb einer bestimmten Zeit, beendet der Bootloader sich
selbst und startet das im Flash abgelegt Anwenderprogramm.
Ein ATtiny hat keine Möglichkeit Speicherplatz für einen Bootloader zu
reservieren, aber er hat die Möglichkeit sich selbst zu flashen. Ein
ATtiny-Bootloader muss also seinen Speicherplatz den er einnimmt selbst
schützen. Im Falle von Digispark ist mittels Software (VUSB) eine
USB-Schnittstelle programmiert, auf der der Controller die Daten, die
der PC über USB schickt im Controller (und ganz ohne Programmer)
speichert.
----------------------------------------------------------
Ein Bootloader hat einen (entscheidenden ? ) Vorteil: Man kann den
Controller über die Schnittstelle mit dem PC verbinden und den
Controller ganz OHNE Programmer flashen. Aber es Bedarf (im Falle von
AVR) immer eines Programmers um die Bootloadersoftware in den Controller
zu bekommen.
Nachteile sind: Flashspeicher wird um den Speicherplatzbedarf des
Bootloaders gekürzt (da dann im Controller der Bootloader und das
Anwenderprogramm gespeichert ist) und es besteht keine Möglichkeit den
Controller zu debugen (diese Möglichkeit besteht allerdings bei sehr
preiswerten Programmern wie USBasp oder USBtinyisp auch nicht).
-----------------------------------------------------------
Die ganze Welt ist ein Irrenhaus, aber bisweilen (das ist nicht immer)
ist das Mikrocontroller.net Forum die Zentrale.
Gute Nacht,
JJ
Vielleicht sollte man dem TO raten, statt einen alten tiny85 einen
modernen tiny421/tiny1617/... zu nehmen. Denn da braucht man weder
bootloader noch ISP-Programmer. Die kann man mit UPDI programmieren,
also mit einer simplen seriellen Schnittstelle. Das ist unkomplizierter,
als einen bootloader zu flashen und dann diesen zu verwenden.
Eher den ATmega4809. Die SMD-Teile lassen sich nämlich nur schlecht in
das Breadboard stecken (ohne Adapter).
Ansonsten kann man die UPDI-Technik nur befürworten. Bei manchen
UART-Adaptern liegen Rx und TX nebeneinander. Eine SMD-Diode aufgelötet
und fertig der Programmer.
Wilhelm M. schrieb:> Vielleicht sollte man dem TO raten, statt einen alten tiny85 einen> modernen tiny421/tiny1617/... zu nehmen.
Du meinst sicherlich einen ATtiny214/414, einen mit Nummer 421 kenne ich
nicht.
Nein, dazu würde ich ihm nicht raten, denn selbst wenn er etwas wie das
hier
https://npk-stn.ru/2019/07/19/simple_programming_attiny414_via_updi/?lang=en
machen soll, benötigt er zumindest den USB2UART Adapter. Abgesehen davon
muß er diesen auch verdrahten und soooooo viel einfacher als ISP
anzuschließen ist das auch nicht. Abgesehen davon hat er ja schon
gezeigt bekommen wo sein Hardwareaufbaufehler lag, bei der nächsten
Verdrahtung gehe ich davon aus, dass er das hinbekommt.
Warum bekommen diese ATtiny214/414/1617 keine Empfehlung für den TO (und
andere blutige Anfänger).
1.)
Gehäusebauform, den 1617 gibt es nur in VQFN-24, das ist absolut
Bastlerunfreundlich und für das Steckbrett ungeeignet und ich glaube
nicht dass er in der Lage ist, diesen auf einen Adapter zu löten.
Tiny214/414 gibt es nur in SOIC Gehäuse und auch diese müssen erst auf
einen Adapter bevor sie in einem Steckbrett genutzt werden können.
2.)
Grundsätzlich würde ich keinen ATtiny für einen Anfänger empfehlen, da
sie in ihrem Leistungsumfang doch relativ stark beeinträchtigt sind und
man manchmal Klimmzüge machen muss, um ein Programm zu realisieren.
Sieht man von einem ATtiny2313 ab, haben diese nicht einmal eine USART
an Bord. Desweiteren sind die größten Speicherkapazitäten die es gibt
(das weiß ich nicht zu 100%) auf 8 kByte Flash limitiert (wie Bspw.
ATtiny84 und ATtiny85). Ein ATtiny13 (der warum auch immer für einen
Anfänger empfohlen wird) ist hier dann gänzlich ungeeignet, weil er nur
1 kByte hat (und 64 Byte Ram).
Ganz gezielt würde ich einen 8 pol. Mikrocontroller sowieso einem
Anfänger nicht empfehlen, weil die I/O Pins (wenn man den Resetanschluss
unberührt lässt) auf 5 an der Zahl reduziert ist. Das ist wirklich
wenig, wenn man erst einmal allgemein anfangen mag und kein gezieltes
Projekt im Sinn hat.
Wenn man wirklich wenig Geld ausgeben mag, wenn es unbedingt ein 8 pol.
ATtiny sein soll würde ich emfpehlen:
------------------------------------------------------------
- Arduino UNO
- Arduino r3 ISP Shield
- Steckbrett
- ATtiny der Wahl
Warum?
1.)
preiswert bis billig
2.)
Mit dem Arduino kann ich meine ersten Gehversuche machen und sehen, wie
ich Hardware an einen Controller anschließe. Kämpfe ich mit der
Software, dann kann ich das Arduino Framework nutzen, muss es aber nicht
(ich selbst habe ein paar Arduino liegen, designe meine eigenen
Controllerboards im r3 Format - auch für STM32, NXP und sogar für MCS51
- ), programmiert werden diese allerdings ohne die "Arduino Software".
Ein Arduino UNO ist nichts weiter als schlicht der Mikrocontroller
kombiniert mit einem USB2UART Adapter, der mittels AVRDUDE gut
programmiert werden kann. Ob ich das Programm in reinem C, als
Makefile-Projekt oder aus einer IDE heraus programmiere ist dem Arduino
egal.
3.)
In der Arduino-IDE ist ein Beispielprogramm enthalten, das den Arduino
zu einem AVR-ISP Programmer macht. Somit habe ich in dieser Kombination,
UNO mit ISP-Shield, einen Programmer, den ich bei Bedarf schlicht wieder
umflashen kann.
Beitrag "Arduino - UNO Flashershield (Linux)"
Das Projekt hier zeigt eine solche Vorgehensweise. Dieses ist zwar auch
als Programmer für ein paar PIC undAT89S52 verwendbar und muß erst
aufgebaut werden, die Software funktioniert aber auch mit diesem
käuflich erwerbbaren Shield:
https://www.ebay.de/itm/AVR-ISP-Shield-Burning-Burn-Bootloader-Programmer-for-Arduino-UNO-R3/262793641460?hash=item3d2fb8bdf4:g:p6sAAOSwL~hbNZGn
- Hier ist ein 6 pol. ISP Anschluss vorhanden, ein 10 pol. kann
eingelötet werden.
- es besteht somit die Möglichkeit mittels AVRDUDE jeden AVR mit ISP
Schnittstelle zu flashen und zusätzlich die 28 pol. ATmega in einen
Sockel zu stecken um diesen zu flashen (bspw. um einen Bootloader zu
flashen).
Mit dieser Konstellation - Arduino UNO, Flashershield, Steckbrett und
ATtiny der Wahl - hat ein Anfänger erst einmal für absolut kleines Geld
alles an der Hand um einzusteigen.
Zum Anfang würde ich also kaufen:
- Arduino UNO (China)
- ISP Shield
- Steckbrett
- IDC Kabel
- Jumper Kabel
- 16 MHz Quarz
- 22 pF Kondensatoren (als Ziehkondensatoren für den Quarz)
- 100 nF Kondensatoren für die Betriebsspannung
- nackte Controller: ATtiny44, ATtiny2313, ATtiny85 und ATmega328p
Aber wie das so ist mit Empfehlungen: Die Meinungen gehen stark
auseinander !
neuer PIC Freund schrieb im Beitrag #6062531:
> Eher den ATmega4809
Was für ein Riesenteil. Als DIL-Version schwierig zu bekommen, teuer und
sehr groß.
Für jemanden, der noch nicht weiß was er machen möchte würde ich den
eher nicht nehmen (obwohl 48 kByte Flash und 6 kByte RAM schon gut
sind).
Ralph S. schrieb:> aber auch mit diesem> käuflich erwerbbaren Shield:>> Ebay-Artikel Nr. 262793641460>> - Hier ist ein 6 pol. ISP Anschluss vorhanden, ein 10 pol. kann> eingelötet werden.
Bei dem Shield muss man etwas Vorsicht walten lassen.
Einige Pins des Textool Sockels können den USB Port berühren.
Eine Feile und etwas Isostoff verhindert das.
neuer PIC Freund schrieb im Beitrag #6062531:
> Eher den ATmega4809. Die SMD-Teile lassen sich nämlich nur schlecht in> das Breadboard stecken (ohne Adapter).
So ein SMD 8-Pinner auf einen Adapter zu löten, ist ja nun auch für
einen Anfänger keine Hexenwerk.
Aber er kann ja auch ein tiny3217-Board vertig kaufen.
Ralph S. schrieb:> Nein, dazu würde ich ihm nicht raten, denn selbst wenn er etwas wie das> hier
TL;DR.
Die neuen tiny1/mega0-Serie sind m.E. auf jeden Fall(!) vorzuziehen.
Für UPDI brauchst Du einen USB2Seriell-Adapter, das stimmt. Brauchst Du
aber für einen Bootloader auch, für ISP sogar einen Programmer. Also,
einfacher.
Der Hauptvorteil liegt aber m.E. in diesen Dingen:
- UPDI
- interner 16/20 MHz Oszillator mit guter Genauigkeit (kein Quarz
nötig).
- Port-Mux
- gleichförmige interne Peripherie über beide Serien hinweg
(tiny1/mega0).
Den letzten Punkt halte ich schon fast für den entscheidenden.
Im Grunde ist es doch völlig wurscht, womit man anfängt.
1.
Hauptsache, man lernt Datenblätter und Schaltpläne lesen.
Auch die Sprache ist für die ersten Schritte recht egal.
2.
In der weiteren Praxis ändern sich sowieso die Anforderungen oft genug.
So dass man von einigem was mit bekommt.
Ralph S. schrieb:> Auf die Frage, wie man einen Bootloader in einen nackten Tiny85 bekommt> antwortet (für mich etwas überheblich):>> Martin H. schrieb:>> 2. UND DANN ... das ganze auf dem Steckbrett nachbauen und per AVRISP>> oder USBASP oder STK500 flashen und schauen, ob es sich genauso verhält,>> (repeat until...).>> Super, sehr super: USBasp und STK500 sind natürlich keine Programmer,> deshalb => nicht okay
Hallo Ralph S., weil Du mich hier persönlich anzählst und mir
Überheblichkeit vorwirfst, möchte ich dich doch bitten, meinen Text im
Kontext zu betrachten und die Aussage nicht durch selektives Zitieren
ins Gegenteil dessen zu verkehren, was ich Dir bereits oben schrieb:
Martin H. schrieb:> Ralph S. schrieb:>> ... und wie machst du das, wenn du einen Tiny85 OHNR einen bereits>> geflashten Bootloader und keinen Programmer hast?>> Indem man sich Digispark und Programmer nach Wunsch zulegt und dann in> kleinen definierten Schritten vorgeht (und den DANN oder WENN> Schritt erst ausführt, wenn der vorherige erfolgreich war):> ...
Ein nackter Tiny und kein Programmer - diese rhetorische Frage stellt
sich eigentlich nur Dir - aufgezeigtes Anfangsproblem hatte der TO
bereits gelöst, denn er verfügte ja mindestens zeitweise über einen
AVRISP und bekommt später einen USBASP.
dummyuser schrieb:> den AVRISP habe ich bereits zurückgeschickt und stattdessen habe> ich ein USBASP 10-pol bestellt
Ich hatte vielmehr einen strukturierten Weg skizziert, wie jemand, der
bereits Probleme hat, die richtigen Löcher im Steckbrett zu treffen,
dennoch (in kleinen logischen Schritten) zu Erfolgsergebnissen kommt.
Und dazu gehörte die temporäre Verwendung eines "Eval-Boardes mit
USB-Schnittstelle" (aka. Digispark), das von der HW zunächst einmal
abstrahiert, um die Toolchain ans Laufen zu bekommen und ein einfaches
"hello_led" Programm zu schreiben. Anschließend kann man das
unveränderte funktionierende Hex-File auf einen nackten Tiny flashen
(per AVRISP, USBASP,... whatever) und mit Delay etc. spielen.
Ralph S. schrieb:> Super, sehr super: USBasp und STK500 sind natürlich keine Programmer,> deshalb => nicht okay
Wieso diese Ironie, natürlich sind das Programmer. Die von Dir aus dem
Kontext gerissene Zeile war nicht die Antwort auf deine Rhetorik des
"Programmierens des Nacktens ohne Programmer", sondern bereits ein
Lösungsansatz, der der Intention des TO entsprechen dürfte.
dummyuser schrieb:> * Verbindung zwischen Computer und breadboard, um C/C++ Programm auf den> ATtiny85 zu flashen. USBasp?
Wenn jemand (von Null) mit dem Tiny85 starten will und sowieso alles
Equipment bestellen muss, dann kann man zusätzlich zum
Programmer_nach_Wunsch auch noch für 'nen 5er einen Digispark
dazulegen (gibt's auch im günstigen Dreierpack), der nimmt nicht viel
Platz in der Bastelkiste ein und erlaubt es, auf die Schnelle was
auszuprobieren. Die HW-Entwicklung soll ja dann gerne auf Steckbrett
oder Lochraster oder als Dead-Bug passieren. In Anbetracht
untenstehender Key-Requirements erschien mir dieser schrittweise Ansatz
als zielführender, anstatt an drei Problemen (HW-Aufbau, Toolchain und
SW-Entwicklung, hier speziell SFR und Peripherie) gleichzeitig zu
scheitern.
dummyuser schrieb:> Was ich möchte: ich möchte unter Linux C/C++ programme schreibe und die> auf dem ATtiny85 laufen lassen.> ...> Hinzu kommt, dass ich kaum Erfahrung (vergessen oder nie verstanden) in> Elektrotechnik habe.> ...> 2. Wenn ich dann alle Komponenten habe, weiß ich nicht wie es es> anschließe
Eigentlich wäre das die Zielgruppe vom Arduino, aber zu diesem System
möchte ich mich mangels Erfahrung nicht äußern.
@ Ralph S.
Sollte ich Dich in meinem von Dir zitierten Beitrag verwirrt haben, so
bitte ich Dich um Entschuldigung und hoffe, dass Du mir nun folgen
konntest.
Arduino Fanboy D. schrieb:> Im Grunde ist es doch völlig wurscht, womit man anfängt.>> 1.> Hauptsache, man lernt Datenblätter und Schaltpläne lesen.> Auch die Sprache ist für die ersten Schritte recht egal.>> 2.> In der weiteren Praxis ändern sich sowieso die Anforderungen oft genug.> So dass man von einigem was mit bekommt.
Bin ich bei dir...
Arduino Fanboy D. schrieb:> Bei dem Shield muss man etwas Vorsicht walten lassen.> Einige Pins des Textool Sockels können den USB Port berühren.> Eine Feile und etwas Isostoff verhindert das.
Bin ich auch absolut bei dir! Das ist der Grund, warum meine r3 Boards
(egal welcher Controller drauf ist), alle einen Mini-USB Anschluss
haben, weil der nach oben nicht so sehr aufträgt (abgesehen davon, dass
diese "Drucker-USB-Buchse" aus meiner Sicht der Dinge nicht mehr
zeitgemäß ist)
Martin H. schrieb:> Wenn jemand (von Null) mit dem Tiny85 starten will und sowieso alles> Equipment bestellen muss, dann kann man zusätzlich zum> Programmer_nach_Wunsch auch noch für 'nen 5er einen Digispark> dazulegen (gibt's auch im günstigen Dreierpack), der nimmt nicht viel> Platz in der Bastelkiste ein und erlaubt es, auf die Schnelle was> auszuprobieren.
Noch einfacher sind m.E. die "explained"-Boards von MicroChip für die
neuen Series tiny1/mega0. Neben der viel besseren und gleichzeitig
einfacheren int. Peripherie der µC haben die Boards einen Debugger
on-board, das Programmieren geht per drag-n-drop im Dateimanager von
Windows und über dasselbe USB-Kabel steht eine serielle Verbindung für
die Anwendung zur Verfügung. Komfortabler geht es nicht.
Wilhelm M. schrieb:>> Die neuen tiny1/mega0-Serie sind m.E. auf jeden Fall(!) vorzuziehen.
Da bin ich exakt gegenteiliger Meinung. Der TE sollte die neuen
Microchip-AVR erstmal liegen lassen. Und zwar im wesentlichen aus den
gleichen Gründen, die du selber anführst.
UPDI: braucht einen neuen Adapter. Und geht nicht mit avrdude. Soll der
TE sich jetzt MPLAB-X auf die Platte kippen? Immerhing gibt es das
inzwischen für Linux, aber funktioniert das auch? Insbesondere
funktioniert UPDI?
Beim Compiler genau das gleiche. Als ich das letzte Mal geschaut habe,
kannte avr-gcc die neuen Cores noch nicht. Wie lange soll der TE warten,
bis bei seiner Linux-Distro ein hinreichend neuer Compiler ausgerollt
wird? Oder soll er hier auch wieder auf einen binären BLOB von
Microchip setzen?
Weiter geht es mit Tutorials, Nachbauprojekten und Anleitungen im Netz.
Für ATMega8(8) und Co. haufenweise. Für die neuen Tinies? Mangelware.
> Der Hauptvorteil ...> - Port-Mux> - gleichförmige interne Peripherie über beide Serien hinweg> (tiny1/mega0).
Das ist einem Einsteiger doch sowas von egal.
Wilhelm M. schrieb:> Die neuen tiny1/mega0-Serie sind m.E. auf jeden Fall(!) vorzuziehen.
Wie erklärst Du einem Einsteiger, wie er unter Linux dafür seinen
Quelltext kompiliert und das Ergebnis auf den µC geflasht bekommt?
Ich bin überhaupt nicht scharf auf die neue AVR Serie, die eigentlich
mit AVR nur noch wenig gemein hat. Da kann man gleich zu Cortex-M
wechseln, die können mehr für weniger Geld.
> Als DIL-Version schwierig zu bekommen, teuer und sehr groß.
ca. 3€ @tme für den 4809. Normales DIP40, kein DIP64 wie beim 68k.
Sollte bei dem Breadboard kein Problem darstellen. Klar, die tiny-1
liegen unter 1€, allerdings ist Geiz beim Hobby selten förderlich.
> Wie erklärst Du einem Einsteiger, wie er unter Linux dafür seinen Quelltext
kompiliert und das Ergebnis auf den µC geflasht bekommt?
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
kann ich ignorieren.
Beitrag "Re: USBasp AVRDude Problem"
Danke an Stefan.
# OFFTOPIC
Ich habe das Gefühl, dass ich mit diesem Topic eine Art Flamewar
auslöse. Das ist nicht meine Absicht. Ich bin auch kein Troll.
Ich bin nur ein Fan "von Grund auf Verstehen". Daher habe ich
beschlossen, "klein" anzufangen und mir auch das leben schwer zu machen.
Mit der Hoffnung so zu lernen.
zitter_ned_aso schrieb:> dummyuser schrieb:>> avrdude -p attiny85 -c usbasp>> -p t85>> mit "avrdude -p?" werden alle unterstützen uController und ihre> Abkürzungen aufgelistet
Danke.
Habe nun ein simples C programm gebaut, geflasht.
von dummyuser (Gast)
>Ich bin aus dem 85er Raum. Vielen Dank für das Angebot.
Ob es wohl ein Zufall ist, dass Du einen Attiny85 verwenden willst?
München wäre für die 80er Reihe gut.
Sorry für den Post ;-)
dummyuser schrieb:> Dann den t85 an Batterie-Quelle gesteckt
Ist die Stromentnahme der Targetschaltung nicht zu groß (bspw. nur eine
oder wenige LED's), kann der USBasp die Targetschaltung mit 5V des USB
Anschlusses versorgen. Somit brauchst du während der Entwicklungsphase
die Batterie nicht.
Ralph S. schrieb:> Ist die Stromentnahme der Targetschaltung nicht zu groß, ...> kann der USBasp die Targetschaltung mit 5V des USB> Anschlusses versorgen. Somit brauchst du während der Entwicklungsphase> die Batterie nicht.
Ich würde das trotzdem nicht machen. Ein versehentlicher Kurzschluss
kann schnell das USB Kabel oder den Anschluss am Laptop zerstören.
Letzteres ist mir passiert.
neuer PIC Freund schrieb im Beitrag #6063460:
> [...pyupdi-mraardvark]$ ./pyupdi.py -d tiny1614 -c /dev/ttyACM0 -b 38400> -f /tmp/attiny1614_updi.hex> Programming successful
Das kompiliert Dir keinen Quelltext.
dummyuser schrieb:> Ich habe das Gefühl, dass ich mit diesem Topic eine Art Flamewar> auslöse.
Keine Sorge. Das ist nur der normale Ton hier. Am besten gewöhnst Du
Dich gleich daran. ;-)
Stefan F. schrieb:> Ein versehentlicher Kurzschluss> kann schnell das USB Kabel oder den Anschluss am Laptop zerstören.> Letzteres ist mir passiert.
... aus dieser Angst heraus laufen alle Experimente über einen USB-Hub
mit externer Spannungsversorgung.
Allerdings muß ich sagen, dass trotz seltener (okay, eher sehr seltener)
Kurschlüsse noch nicht ein einziger Hub oder dessen Netzteil zerstört
wurde.
Von einem zerstörten USB Anschluß liest man immer wieder einmal. Ich bin
in der Ausbildung tätig und noch in keinem Fall hat es ein Lehrling
geschafft (und ich denke dort gibt es eher mal einen Kurzschluß) einen
Hub zu zerstören, wenn die Zielschaltung nur die 5V des Anschlusses
nutzt.
In einem einzigen Fall, bei dem ein 24V Motor über MOS-Fet geschaltet
wurde, hatte er die 24V auf die 5V des USB-Anschlusses gelegt. Dort war
der Hub hinüber, aber ansonsten...
Ralph S. schrieb:> Von einem zerstörten USB Anschluß liest man immer wieder einmal.
Eigentlich sollte das niemals passieren, da die USB Spezifikation eine
Schutzschaltung vorschreibt.
Stefan F. schrieb:> Ralph S. schrieb:>> Ist die Stromentnahme der Targetschaltung nicht zu groß, ...>> kann der USBasp die Targetschaltung mit 5V des USB>> Anschlusses versorgen. Somit brauchst du während der Entwicklungsphase>> die Batterie nicht.>> Ich würde das trotzdem nicht machen. Ein versehentlicher Kurzschluss> kann schnell das USB Kabel oder den Anschluss am Laptop zerstören.> Letzteres ist mir passiert.
Was war das für ein USBASP? Auf den Chinateilen sehe ich letztens immer
Polyfuses in 1206 oder gar 0805. Die sollten eigentlich das schlimmste
verhindern. Und speziell Laptops überwachen fast immer den Strom am USB
und schalten den Port bei Überstrom ab. Deswegen funktionieren
USB-Powered Festplatten gern mal nicht am Laptop, wohl aber am Desktop.
Stefan F. schrieb:> Eigentlich sollte das niemals passieren, da die USB Spezifikation eine> Schutzschaltung vorschreibt.
wie wir ja wissen halten sich auch alle an Vorschriften, auch Firmen
frohen Nikolaus
Stefan F. schrieb:> Kurzschluss> kann schnell das USB Kabel oder den Anschluss am Laptop zerstören.> Letzteres ist mir passiert.
also kann das nie passiert sein ;)
Axel S. schrieb:> Wilhelm M. schrieb:>>>> Die neuen tiny1/mega0-Serie sind m.E. auf jeden Fall(!) vorzuziehen.>> Da bin ich exakt gegenteiliger Meinung. Der TE sollte die neuen> Microchip-AVR erstmal liegen lassen. Und zwar im wesentlichen aus den> gleichen Gründen, die du selber anführst.>> UPDI: braucht einen neuen Adapter.
Nein. Er braucht nur einen USB<->Seriell Adapter für 0,99€ vom
China-Mann.
> Und geht nicht mit avrdude.
Genau. Braucht man aber auch nicht mehr.
> Soll der> TE sich jetzt MPLAB-X auf die Platte kippen?
Nein. Wozu?
> Immerhing gibt es das> inzwischen für Linux, aber funktioniert das auch? Insbesondere> funktioniert UPDI?
Braucht man alles gar nicht.
>> Beim Compiler genau das gleiche. Als ich das letzte Mal geschaut habe,> kannte avr-gcc die neuen Cores noch nicht. Wie lange soll der TE warten,> bis bei seiner Linux-Distro ein hinreichend neuer Compiler ausgerollt> wird? Oder soll er hier auch wieder auf einen binären BLOB von> Microchip setzen?
Wenn er eine avr-gcc von der Stange nimmt, braucht der die Device-Packs
von Atmel.
> Weiter geht es mit Tutorials, Nachbauprojekten und Anleitungen im Netz.> Für ATMega8(8) und Co. haufenweise. Für die neuen Tinies? Mangelware.
Ich dachte, er wollte DB lesen lernen - und nach Ansicht von einigen,
soll er das ja auch huaptsächlich tun.
Die int. Peripherie der neuen sind a) wesentlich leistungsfähiger,
sprich man braucht weniger Hacks in seinem Code und zugleich einfacher,
weil klarer strukturiert.
>> Der Hauptvorteil ...>> - Port-Mux>> - gleichförmige interne Peripherie über beide Serien hinweg>> (tiny1/mega0).>> Das ist einem Einsteiger doch sowas von egal.
Einmal gelernt wir ein TCA oder TCD funktioniert reicht dann für alle
tiny1/mega0. Kein Unterschied mehr zwischen den verschiedenen Linien und
ihren Eigenheiten, halte ich gerade für den Anfänger für sehr zentral.
Alles, was der Anfänger nicht bedenken muss, ist gut.
Mir scheint, als würdest Du die neuen tiny1/mega0 nur von der Papierlage
her kennen.
Np R. schrieb:> Wie erklärst Du einem Einsteiger, wie er unter Linux dafür seinen> Quelltext kompiliert
wie beim tiny85 auch
> und das Ergebnis auf den µC geflasht bekommt?
pyupdi.py -d tiny412 -c /dev/ttyUSB1 -f test00.hex
Wilhelm M. schrieb:> wie beim tiny85 auch
Nö. Beim tiny85 nehme ich einfach den avr-gcc und die avr-libc aus der
Distro und fertig.
Beide unterstützen aber die tiny1/tiny0/mega0 nicht.
Warum sonst stricken Leute so etwas hier?
https://github.com/stevenj/avr-libc3
Np R. schrieb:> Nö. Beim tiny85 nehme ich einfach den avr-gcc und die avr-libc aus der> Distro und fertig.> Beide unterstützen aber die tiny1/tiny0/mega0 nicht.
Doch: ist avrxmega3
https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html
Lesen:
Wilhelm M. schrieb:> Wenn er eine avr-gcc von der Stange nimmt, braucht der die Device-Packs> von Atmel.
Wobei das bei Arch-Linux mit 9.2.0 drin ist. Was weiß ich denn, was Du
oder der TO für eine Linux-Distro hast.
Np R. schrieb:> Warum sonst stricken Leute so etwas hier?> https://github.com/stevenj/avr-libc3
Das weiß ich nicht. Ich habe es noch nicht gebraucht. Bei mir läuft
alles.
Ich hatte eher mal mit dem alten mega324PB Probleme.
Wilhelm M. schrieb:> Lesen:
Ja, genau das habe ich getan.
Und diese beiden Aussagen von Dir widersprechen sich halt:
Wilhelm M. schrieb:> wie beim tiny85 auchWilhelm M. schrieb:> braucht der die Device-Packs> von Atmel.Wilhelm M. schrieb:> Bei mir läuft alles.
Einschließlich ATmega808/809/1608/1609/3208/3209/4808/4809?
Dazu gab's nämlich mal einen Thread auf avrfreaks. Und die Antwort war
nicht "wie beim tiny85 auch".
Ralph S. schrieb:> ... und wo ist der TO?>> Und vor allen Dingen: Was hat er nun mit seinem Tiny85 gemacht ?
Er ist auf dem Weg des Erfolgs:
dummyuser schrieb:> Habe nun ein simples C programm gebaut, geflasht.
Sein Problem ist also gelöst.
Wenn das nächste auftritt, erfährst Du vielleicht mehr.
Oder auch nicht. Er ist ja keine Rechenschaft schuldig.
Stefan F. schrieb:> Wilhelm M. schrieb:>> Kein Unterschied mehr zwischen den verschiedenen Linien>> Bis die nächste inkompatible Linie auf den Markt kommt.
Das mag sein.
Allerdings hat MicroChip hier schon ein ganz gutes System geschaffen,
was auch die XMegas umfasst (ok, die verschwinden derzeit von der
Bildfläche).