Hallo Zusammen, Ich bin grad dabei mich mit dem ATMEGA328 zu beschäftigen, incl. dem Arduino. Und da stelle ich mir aktuell die Frage, warum eigentlich nicht gleich ein Chip eingebaut wird, der USB zu SPI kann, dann würde man einen Bootloader gar nicht benötigen und man wäre komplett frei in der Programmierung. Oder natürlich den Chip so fertigen, dass UART als ISP verwendet werden kann... Wo ist da mein Denkfehler? Danke. Grüße
Alexander M. schrieb: > Und da stelle ich mir aktuell die Frage, warum eigentlich nicht gleich > ein Chip eingebaut wird, der USB zu SPI kann, dann würde man einen > Bootloader gar nicht benötigen und man wäre komplett frei in der > Programmierung. Die ersten Arduino Modelle waren als billige 1-Chip Lösung konzipiert. Damals hätte jede Variante der USB Anbindung erheblich extra gekostet. Beim jetzigen Arduino UNO hätte man das bestimmt sogar ohne Mehrkosten machen können (ist ja nur eine Frage der Firmware), aber man hat sich wohl mehr am Design der originalen Modelle orientiert, die einen seriellen Bootloader verwenden.
Weil man so den UART auch noch für's Terminal benutzen kann, das ist mit SPI doof. Und weil man ja so die SPI-Leitungen belegt hätte, die wollte man aber für Peripherie frei haben. UART wird zu 99% für PC-Anschluss benötigt, SPI 99% für Peripherie. Da würde man sich selbst ins Bein schießen, wenn man das belegen würde. Hält dich aber keiner auf, einen ISP-Adapter statt des UART-Adapters zu nehmen...
:
Bearbeitet durch User
Alexander M. schrieb: > Ich bin grad dabei mich mit dem ATMEGA328 zu beschäftigen, incl. dem > Arduino. > Und da stelle ich mir aktuell die Frage, warum eigentlich nicht gleich > ein Chip eingebaut wird, der USB zu SPI kann, dann würde man einen > Bootloader gar nicht benötigen So ein Chip wäre eine (teure) Sonderanfertigung, während man USB-to-UART Chips praktisch hinterhergeworfen bekommt. Ganz zu schweigen davon, daß ein USB-UART eine genormte USB-Geräteklasse ist (USB CDC), für die es generische Treiber gibt. Eine Bridge von USB auf ISP (was mehr ist als nur SPI) bräuchte dann auch wieder eigene Treiber. Nichts desto trotz gibt es natürlich dennoch USB-zu-ISP Konverter. Nicht in Form eines Chips, aber in Form eines Moduls. Und die heißen dann "ISP-Adapter". Bekannte Vertreter dieser Gattung heißen z.B. "AVR ISP MkII" oder "USBASP". Tatsächlich ist das ein derart weites Feld, daß das hiesige Wiki eine extra Seite dafür hat: AVR In System Programmer Diese Geräte sind aber zu aufwendig, als daß man sie auf jeden Arduino gleich mit draufpacken wöllte. Stattdessen haben die meisten Arduinos einen ISP-Anschluß, an den man einen ISP-Adapter anstecken kann. Den man dann nur einmal kaufen muß.
Gruss zur Nacht Die Story kommt mir aber gedeckelt vor, beim Arduino als ISP wird der Bootloader per Elko übergangen. Mag sein das der Zugang zur UART beim UNO nur- und nicht -einfach sein kann. Dirk St
Axel S. schrieb: > Diese Geräte sind aber zu aufwendig, als daß man sie auf jeden Arduino > gleich mit draufpacken wöllte. Der UNO und der Mega hat einen ATMega16U2 als USB Serialwandler. Diesen kann man auch zum ISP Adapter machen. Schließlich hat dieser auch einen ISP Stecker und 4 weitere herausgeführte IOs Also möglich ist das schon, wenn auch nicht bei allen Arduinos. Der "Github Hoodloader2" könnte als Bastler Basis dienen. Oder dieses https://welldoneblog.fedevel.com/2015/04/13/how-to-flash-arduino-bootloader-without-a-programmer/
Alexander M. schrieb: > Oder natürlich den Chip so fertigen, dass UART als ISP verwendet werden > kann... Wegen ein paar Hobbysten wird kein Halbleiterhersteller irgend etwas fertigen. > Wo ist da mein Denkfehler? Daß Du Arduino benutzt. ;-) Die LPC haben so etwas fix und fertig. Aber wie schon erwähnt: Für die sauberste Lösung halte ich eigentlich ISP. Deswegen: > und man wäre komplett frei in der > Programmierung.
Hallo weil "der" Arduino ursprünglich ein ATmega 8 war und aktuell immer noch der ATmega 328 ist. Das sind relativ einfache und eigentlich auch veraltete (obwohl von den typischen Leistungsanforderungen im Arduinoumfeld und auch wo diese 8Bit µC sonst eingesetzt werden auch im Jahr 2020 vollkommen ausreichend) Mikrocontroller - der kleine ATmega8 wird wohl schon so 15 - 20 Jahre alt sein, der ATmega 328 ist auch nicht viel jünger. Halbleiterfläche kostet Geld. Dann soll, weniger beim Arduino, beim Betrieb eine möglichst geringe Leistungsaufnahme erfolgen - noch ein Stromsparmodus mehr der aktiviert werden müsste um die "Bootloaderelektronik" abzuschalten wenn diese nicht genutzt wird. Auch werden die µC vorwiegend im professionellen Umfeld eingesetzt - da muss der Bootloader 100% sicher funktionieren und vor allem garantiert niemals den Programmablauf stören, und sag jetzt nicht der liegt ja in einen ganz anderen Speicherbereich es gibt "immer" böse Fallstricke und "komische" Konstellationen. Und so ein Bootloader fällt nicht von Himmel - er muss entwickelt oder eventuell eingekauft werden (Lizenzen) auch das kostet. Und wohl noch einiges mehr. Bei einigen "großen" und neueren Arduinos die nicht einen AVR nutzen ist der Bootloader wohl aber mit drauf - diese Chips sind aber auch eine ganz andere Generation und auch keine 8 Bitter mehr und für wohl über 99% der Arduinoanwendungen vollkommen oversized (Mit Atomraketen auf Fliegen schießen). Praktiker
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.