USB-Serial Programmierboard für Atmel uC

Gast #6593122
Lesenswert?

Hi Leute! Vom Arduino bin ziemlich verwöhnt was das Flashen angeht, nur 
ein usb kabel ans Board und PC ran und das wars. Seit einiger Zeit 
beschäftige ich mich mit aber näher mit dem Controller um alles genauer 
zu verstehen, sozusagen under the hood schauen
Ich würde gerne ein universelles Programmierboard für den atmega 168a 
und 328 haben, es soll breadboardtauglich sein, einen usb anschluss 
haben und den avr ü er die serielle schnittstelle programmieren, ich 
will keine Programmierpins aufm Breadboard herausführen müssen. Könnt 
ihr mir nen Fingerzeig auf was geben?
Gast #6593215
Lesenswert?

Wolfgang schrieb:
> Hääh?
> Bei Arduino gibt es genauso ein main().
> setup() und loop() sind dort Funktion, die von main() aufgerufen werden.
Wenn keine setup() und loop() existieren, erwartet der Builder, dass der 
Arduino User eine eigene main() erstellt.
Und das tut der Builder, egal ob dir das schmeckt, oder auch nicht.

Allerdings ist das Framework dann kaum noch nutzbar, da die Timer und 
das restliche Gedönse nicht mehr vorbereitet wird.
Aber das ist hier ja auch das Ziel.
Gast #6593221
Lesenswert?

Arduino Fanboy D. schrieb:
> Nein!
> Der hat damit nichts zu tun.
> Dafür benötigst du den Bootloader.
> Aber der ist ja auf dem Nano drauf, solange du da nicht mit einem ISP
> Adapter dran gehst.

Ich kann den AVR also aus der Arduino IDE heraus ohne das Framework in 
C/C++ programmieren und das auch noch mit der super bequemen USB-Serial 
Schnittstelle, wie genial ist das denn :-)
Demnach könnte ich auch meinen Atmega168a vom UNO stecken lassen und 
dasselbe tun.
Gast #6593228
Lesenswert?

Jimbo schrieb:
> Demnach könnte ich auch meinen Atmega168a vom UNO stecken lassen und
> dasselbe tun.
Gibt zwar keinen UNO mit Atmega168a, aber ja!
Du kannst in den UNO jeden Pin kompatiblen AVR reinstecken und 
betreiben.
Einen Bootloader benötigst du dann noch, das Problem ist aber lösbar.

Jimbo schrieb:
> wie genial ist das denn :-)
Sach das nicht!
Die Arduino Hasser hier, möchten sowas sicherlich nicht hören.
Gast #6593297
Lesenswert?

Alexander S. schrieb:
> Jimbo schrieb:
>> aber wie programmiere ich den dann ohne die Arduino ide?
>
> https://www.mikrocontroller.net/articles/Umstieg_von_Arduino_auf_AVR

Habe ich gerade mal überflogen....
Ein paar Unsauberkeiten sind da ja drin.

>  (das Arduino-Framework ist in C++ geschrieben).
Große Teile sind in C geschrieben.
Vieles in C++
Wenige Fragmente in ASM

> Die meisten Arduino-Sketches eher in C geschrieben
In C++!
Alle.

> Allen anderen kann ich nur wärmstens empfehlen, ein C-Buch
Darum auch eher ein C++ Buch.

> Die meisten Arduino-Sketches eher in C geschrieben sind,
Falsch!
> mit Ausnahme der Arduino-Libraries und derer Objekte
Halb richtig.
Die meisten Arduino Libraries sind in C++ geschrieben, ja.
Aber einige auch in reinem C.
Ganz wenige in ASM
Einige bestehen aus einer Mischung von *.h, *.c, *.cpp und *.S Dateien.

> Zuerst einmal: delays sind so gut wie immer schlecht!
Aber danach wird konsequenter Weise _delay_ms(1000); verwendet.


Ansonsten geht der Artikels schon....
Gast #6593434
Lesenswert?

Jimbo schrieb:
> Ich würde gerne ein universelles Programmierboard für den atmega 168a
> und 328 haben, es soll breadboardtauglich sein, einen usb anschluss
> haben und den avr ü er die serielle schnittstelle programmieren, ich
> will keine Programmierpins aufm Breadboard herausführen müssen.

Das nennt sich USB-UART Adapter. Aber dann musst du vorher den 
Bootloader in den µC laden.

Also kannst du vermutlich auch gleich einen ISP-Adapter verwenden, dann 
brauchst du keinen Bootloader und hast die serielle noch für andere 
Zwecke frei. Wenn du jetzt meinst, dass dir dann aber drei statt zwei 
Pins verloren gehen: Nein, die Pins kann man während des Betriebes (mit 
winzigen Einschränkungen) normal nutzen, denn der ISP Adapter schaltet 
auf hochohmig, solange er nicht benutzt wird. Also gewinnst du damit 
sogar Pins.

Warum Arduino auf USB-UART setzt, ist mir ein Rätsel. Vielleicht wollten 
sie zum Ur-Arduino kompatibel bleiben. Das ist nun aber schon 15 Jahre 
her. Irgendwann sollte man alte gammelige Zöpfe abschneiden.

Im übrigen sind Arduino Boards nach meinem Kenntnisstand die einzigen 
Entwicklungsbaords, die über UART programmiert werden. Alle anderen 
enthalten entweder einen vollwertigen Programmieradapter mit Debugger 
(!) oder einen USB-Bootloader der schon ab Werk im Chip drin ist.
Gast #6593452
Lesenswert?

Jimbo schrieb:
> Ich kann den AVR also aus der Arduino IDE heraus ohne das Framework in
> C/C++ programmieren und das auch noch mit der super bequemen USB-Serial
> Schnittstelle, wie genial ist das denn :-)
> Demnach könnte ich auch meinen Atmega168a vom UNO stecken lassen und
> dasselbe tun.

Ja

Und wenn du dich doch mal von der Arduino IDE lösen willst, geht auch 
das ohne Hardwarewechsel. Siehe dazu:
http://stefanfrings.de/avr_hello_world/index.html
http://stefanfrings.de/avr_tools/index.html
#6593466
Lesenswert?

Stefan ⛄ F. schrieb:
> Im übrigen sind Arduino Boards nach meinem Kenntnisstand die einzigen
> Entwicklungsbaords, die über UART programmiert werden. Alle anderen
> enthalten entweder einen vollwertigen Programmieradapter mit Debugger
> (!) oder einen USB-Bootloader der schon ab Werk im Chip drin ist.

Vielleicht deshalb, weil ein ATmega328 nativ keine USB Hardware 
beherbergt, ein Arduino UNO in all seinen Entwicklungsstufen 
(Gehäusebauform) immer ein ATmega328 ist und eine UART-USB Bridge die 
preiswerteste Möglichkeit ist, eine USB-Verbindung herzustellen?

Außerdem: Never touch a running system! Das Flashen eines Arduino UNO 
funktioniert absolut problemlos und bei einer Speicherkapazität von 32k 
sind auch die Flashzeiten absolut gering.

Für den Anfang ist die Hardware eines Arduino-UNO doch super. 
Letztendlich ist es vollkommen egal, wie ein Binary in den Controller 
kommt.

Einzig die Debugmöglichkeit fehlt, aber dafür gibt es externe 
Programmer.
Gast #6593587
Lesenswert?

Stefan ⛄ F. schrieb:
> Schade, dass Arduino keine solche Firmware enthält.

Schade, dass Arduino keine Flügel hat, dass es nicht schwimmen und nicht 
radieren kann. Es hat auch keine roten Tupfer auf verspiegelter 
Oberfläche.

So gut wie nie, braucht man einen ISP Adapter, in der Arduino Welt.
Außer, man möchte nackte AVR vorbereiten.
Oder eine andere Extrawurst backen.(z.B. die Fuses anfassen)

Und dann gibts genau dafür "Arduino as ISP".
Die ISP Firmware befindet sich also doch im Lieferumfang.
Entgegen deiner Ansage!

Merke:
Arduino stellt Grundfunktionalität zur Verfügung.
Extrawürste bastelt man sich selber, oder lädt die passenden/nötigen 
Boardefinitionen/Libraries von extern dazu.
Gast #6593633
Lesenswert?

Stefan ⛄ F. schrieb:
> aber damit machst du nicht
Falsch!
Du kannst das nicht.
Ich schon.... (und viele andere könnten das auch, wenn sie 
wollten/müssten)

Da sind wir wieder bei der Projektion/Fantasie.....

Du hast ein fertiges Bild/Urteil von/über Arduino.
Und das projizierst du auf Arduino, genau so wie ein Diaprojektor es 
tut.
Dann siehst du natürlich das Bild, welches du selber darauf wirfst.
Dummerweise, hat das nur bedingt was mit der Realität zu tun.

Auch wenn es für dich kaum/nicht vorstellbar ist, dass "Arduino as ISP" 
auf einem ATMega16U2 lauffähig ist.
Es ist.
So wie es auch auf allen(?) anderen Mikrokontrollern (mit UART oder USB) 
lauffähig ist, für die es eine Gcc Toolchain gibt.
Wie kommst du nur auf die lustige Fantasie, dass der ATMega16U2 da so 
was besonders ist, dass das nicht geht?
Gast #6593683
Lesenswert?

Es ist nicht nötig, mich in diesem Tonfall zu beschimpfen. Habe ich dir 
etwas böses angetan? Das war jedenfalls nicht beabsichtigt.

Ich habe durchaus Interesse, mir eine entsprechende Anleitung 
anzuschauen. Kennst du eine?

Was mit diesem "Arduino as ISP" Sketch dann aber wiederum fehlt ist die 
USB-UART Funktion. Es ging doch gerade darum, diesen einen Chip für 
beide Funktionen (ISP und UART) zu nutzen. Das das irgendwie technisch 
möglich ist, muss mir niemand erklären. Das weiß ich, deswegen habe ich 
es ja auch oben als Wunsch geäußert. Ich finde nur schade, dass das so 
nicht bereits im Lieferumfang bzw. mit ein paar Klicks in der IDE 
enthalten ist.
Gast #6593718
Lesenswert?

Stefan ⛄ F. schrieb:
> Ich finde nur schade, dass das so
> nicht bereits im Lieferumfang bzw. mit ein paar Klicks in der IDE
> enthalten ist.

Dazu sagte ich schon:
> Arduino stellt Grundfunktionalität zur Verfügung.
> Extrawürste bastelt man sich selber, oder lädt die passenden/nötigen
> Boardefinitionen/Libraries von extern dazu.

Leider kann es nicht alle Wünsche, dieser Welt, "Out of the Box" 
befriedigen.
Es ist ein Bastelapparat und bleibt ein Apparat zum basteln.


Stefan ⛄ F. schrieb:
> Ich habe durchaus Interesse, mir eine entsprechende Anleitung
> anzuschauen. Kennst du eine?
Hier rate ich dir zu "Nico Hood" bzw zum "Hoodloader".
Der hat sich ausgiebig mit dem ATMega16U2 (und anderen) beschäftigt.
#6593722
Lesenswert?

Jimbo schrieb:
> Vom Arduino bin ziemlich verwöhnt was das Flashen angeht, nur
> ein usb kabel ans Board und PC ran und das wars.
...
> Ich würde gerne ein universelles Programmierboard für den atmega 168a
> und 328 haben, es soll breadboardtauglich sein, einen usb anschluss
> haben und den avr ü er die serielle schnittstelle programmieren

Wozu? Ab Werk können die ATMega168 und 328 nur mit ISP programmiert 
werden. Durch die Festlegung auf die serielle Schnittstelle geht es nur 
mit einem Bootloader. Den mußt du aber per ISP aufspielen. Du brauchst 
also ISP und USB-serial Converter. Da kannst du auch gleich bei 
Arduino bleiben.

> will keine Programmierpins aufm Breadboard herausführen müssen

Warum? Ich nutze einen Adapter um die 2x5 Stiftleiste auf die Breite 
eines IC zu bringen und stecke den ins Breadboard. Dann verkabele ich 
ihn mit Steckbrücken mit dem µC. Danach kann ich einfach irgendeinen 
ISP-Adapter drauf stecken. Meist den usbasp, der kann den Krempel auch 
gleich versorgen.
Gast #6593761
Lesenswert?

Stefan ⛄ F. schrieb:
> Das ist offenbar auch kein kombinierter ISP+UART Adapter.
Alles klar....
Er macht den 16U2 zu einem vollwertigen nutzbaren USB zu ISP Adapter.
Aber es ist kein "ISP+UART Adapter"?

Man macht den 16U2 zu dem, was man gerade braucht!
Soll er USB Serial Adapter spielen, dann gut, dann die originale 
Firmware drauf.
(ist im Lieferumfang)
Soll er ISP spielen, dann eben "Arduino as ISP"

Bei einem Auto kannst du doch auch nicht aus 2 Türen gleichzeitig 
aussteigen.
Oder?





Stefan ⛄ F. schrieb:
> Aber lass gut sein, das Thema ist nicht so wichtig.
Vielleicht nicht.
Aber vielleicht poppt es hier wieder auf, und dann wäre es doch gut, 
wenn deine Aussagen etwas realitätsnäher wären.
Oder?
Gast #6593770
Lesenswert?

Arduino Fanboy D. schrieb:
> Bei einem Auto kannst du doch auch nicht aus 2 Türen gleichzeitig
> aussteigen. Oder?

Mein Auto hat auf beiden Seiten Türen, damit ich es nicht jedes mal 
umbauen lassen muss, wenn jemand auf der anderen Seite aussteigen 
möchte.

> Aber vielleicht poppt es hier wieder auf, und dann wäre es doch gut,
> wenn deine Aussagen etwas realitätsnäher wären.

Das ist absolut realitätsnah, sonst würde ST nicht alle 
Entwicklungsboards mit so einem Kombi-Adapter (namens ST-Link) 
ausstatten.

Ich glaube dir, dass du damit nichts anfangen kannst. Dann glaube du mir 
bitte auch, dass ich es aber gebrauchen kann. Man ist nicht automatisch 
blöde, bloß weil man andere Bedürfnisse hat als du.
Gast #6594051
Lesenswert?

Deine Arbeitskollegen tun mir leid.
Mit denen gehst du doch auch so um, oder?

Stefan ⛄ F. schrieb:
> Arduino Fanboy D. schrieb:
>> Hier rate ich dir zu "Nico Hood" bzw zum "Hoodloader".
>
> Das ist offenbar auch kein kombinierter ISP+UART Adapter.

Drei Minuten hast du gebraucht, um das bei Google ein zu tippen, alles 
zu lesen, ein veritables Vorurteil aus zu bilden und sofort ins Forum zu 
blasen.
Das ist eine Leistung, die ihres gleichen sucht.
Quasi: Eine Glanzleistung.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren