Es ist ziemlich einfach, einen eigenständigen Arduino-Chip zu verwenden. Das Knifflige an dem für die offiziellen Boards verwendeten Chip ist, dass sie mit dem schnelleren (und genaueren) externen Oszillator verschmolzen sind, der auf dem Board montiert ist. Dies gilt auch dann, wenn Sie die losen Chips kaufen, da die meisten, mit Ausnahme derjenigen von Digikey, in der Absicht weiterverkauft werden, in ein Arduino-Board eingebaut zu werden, um ein ausgebranntes Board zu ersetzen.
Vorsichtsmaßnahmen: Der Arduino ist als Prototyping-Board konzipiert, und nur wenige Dinge sind besser als bei dieser Aufgabe. Möglicherweise möchten Sie den Chip auf der Arduino-Platine belassen, bis Sie mit dem Entwerfen und Testen Ihrer Schaltung fertig sind. Erst dann schließen Sie es direkt an. Es kann an Ort und Stelle verwendet werden, wenn Sie über eine Taktschaltung verfügen, oder Sie können die Sicherungen austauschen (siehe später) und den Arduino mit einem ISP-Adapter und einer Taktrate von 8 MHz neu programmieren (PlatformIO ermöglicht dies ( und ermöglicht dies direkt) Import einer Arduino-Skizze) - Überprüfen Sie die Dokumentenseite für das Atmel AVR-Plugin, aber Sie können auch eine Reihe von Anleitungen zum Hinzufügen einer Board-Datei zu Arduino nachschlagen, um ihm mitzuteilen, dass die 8-MHz-Option für einen bloßen Chip verwendet werden soll.
Wenn Sie den Chip zur Verwendung in einem anderen Schaltkreis entfernen, muss entweder der Taktschaltkreis wieder hinzugefügt werden oder die Sicherungen müssen ausgetauscht werden (ich werde gleich darauf zurückkommen). Das Programmieren wird aus mehreren Gründen schwierig sein, daher sollten Sie sich ein wenig billigere Hardware kaufen:
Programmieren eines eigenständigen Chips: Die CPU des Arduino ist nicht nativ für die Kommunikation mit einem Computer ausgelegt. Sie brauchen einen Vermittler. Auf dem Uno geschieht dies über einen zweiten Atmel-Chip, der USB-fähig ist, und einen Bootloader auf dem Hauptchip. Das bedeutet, dass es den UART zum Hochladen des Programms verwendet, während der USB-Chip die Nachrichten des PCs in UART-Signale umwandelt. Da der Bootloader für sich genommen ein Problem darstellt (da UART wählerisch ist und den Chip so installiert, dass er eine externe Uhr verwendet), sollten Sie einen ISP-Programmierer für das Arduino (oder kaufen Folgen Sie der Arduino-as-ISP-Skizze und den Anweisungen, um Ihre eigenen zu erstellen. Dazu muss ein Arduino mit Chip vorhanden sein, sodass eine Sekunde programmiert werden muss.
Diese können den ATMega 328 direkt über SPI ohne einen Bootloader programmieren (es gibt viele Anweisungen im Internet; suchen Sie beispielsweise nach "Program Bare ATMega 328P mit USBAsp"). Dies macht es viel einfacher, Ihr Programm zu ändern und zu debuggen, ohne den Chip in das ursprüngliche Arduino-Board zu stecken. Sie benötigen auch eine, um die Uhreinstellungen zu ändern, wenn Sie keinen externen Quarz verwenden möchten.
Wenn Sie den Chip debuggen möchten , ist es hilfreich, einen FTDI-Adapter oder einen anderen USB-zu-UART-Konverter zu erwerben. Beachten Sie, dass Sie den ATMega ohne den Reset-Schaltungsteil der Karte (oder erneut durch Hinzufügen Ihrer eigenen) auch mit dem Bootloader nicht programmieren können. Verbinden Sie dazu die Masse-, RX- und TX-Pins mit dem Adapter. Möglicherweise möchten Sie die VCC-Leitung anschließen oder nicht, es wird jedoch empfohlen, dies nicht zu tun, wenn eine Vielzahl von Dingen mit dem Chip verbunden sind und / oder eine eigene Stromversorgung vorhanden ist. Beachten Sie, dass RX und TX beim Anschließen vertauscht werden müssen. das heißt, RX zu TX und TX zu RX - Sie möchten, dass der Chip RX empfängt, was der Adapter sendet, und umgekehrt.
Die Taktschaltung ist nicht schwer zu bauen, erfordert jedoch einige Komponenten, die Sie möglicherweise nicht haben. Um die Taktquelle zu ändern , gehen Sie zu http://www.engbedded.com/fusecalc/ und wählen Sie den ATMega 328P aus. Die Standardeinstellungen sind in Ordnung, aber Sie können das EEPROM-Löschverfahren aktivieren und die Taktdivision durch 8 deaktivieren oder die Brownout-Einstellungen anpassen. Berühren Sie nichts anderes (das Deaktivieren von Reset oder SPI oder das Aktivieren von DebugWire führt zu "Spaß", für dessen Behebung ein HV-Programmierer erforderlich ist). Wenn Sie fertig sind, fügen Sie den Befehl, den es bereitstellt, in den AVRDude-Befehl ein. Sie müssen die -c-Optionen ändern (-p ist bereits auf ATMega 328P eingestellt, schlägt jedoch bei Nicht-P 328s fehl - kaufen Sie diese nicht) und fügen möglicherweise die -P-Option (für Port) hinzu. Lassen Sie die Option -u in Kleinbuchstaben nicht aus, sonst werden die Sicherungen nicht aktualisiert.
avrdude -p m328p -v -c usbasp -B 100 -u [add extras here: (-P <PORT>) <fuse set command here>]
Beachten Sie, dass Sie beim Kauf eines USBASP (stellen Sie sicher, dass er drei Sätze Jumper hat!) Möglicherweise nicht über die aktualisierte Firmware verfügen, die die Option -B unterstützt (die Sie wahrscheinlich benötigen), obwohl sie mein Lieblingsprogrammierer sind. Das bedeutet, dass Sie es über den sechspoligen Programmierport an einen Arduino anschließen müssen, genauso wie Sie es zum Programmieren des Arduino-Bootloaders verwenden würden, aber dann die Arduino-as-ISP-Skizze zum Programmieren des neuen verwenden müssen Firmware an den Programmierer (Suche nach "Update der USB-Firmware über Arduino-as-ISP")! Dass als Referenz, in der Regel bedeutet , dass das Kabel zeigt vom Körper des Bretts entfernt, und Sie werden wahrscheinlich die Skizze programmieren , bevorKabel anschließen. Aktivieren Sie auch den Power-from-Programmer-Jumper auf dem USBASP (5V) und den "Self-Program" -Jumper. ( Die Position der Leistungs- und Programm-Jumper finden Sie unter https://forum.arduino.cc/index.php?topic=560719.0 (JP2).)