Il est assez facile d'utiliser une puce Arduino autonome. La seule chose délicate à propos de la puce utilisée pour les cartes officielles est qu'elles sont fusionnées pour utiliser l'oscillateur externe plus rapide (et plus précis) qui est monté sur la carte. Cela s'applique même lorsque vous achetez les puces en vrac, car la plupart sont revendues avec l'intention d'être installées dans une carte Arduino pour remplacer une carte grillée, à l'exception peut-être de Digikey.
Avertissements: L'Arduino est conçu comme une carte de prototypage, et peu de choses font mieux que dans cette tâche. Vous pouvez laisser la puce sur la carte Arduino jusqu'à ce que vous ayez fini de concevoir et de tester votre circuit. C'est seulement alors que vous le connectez directement. Il peut être utilisé sur place si vous avez un circuit d'horloge en place, ou vous pouvez changer les fusibles (voir plus loin) et reprogrammer l'Arduino avec un adaptateur ISP et une vitesse d'horloge de 8 mhz (PlatformIO vous permet de le faire ( et permet de importations d'une esquisse Arduino) - consultez leur page de documentation pour le plugin Atmel AVR, mais vous pouvez également consulter un certain nombre de guides sur la façon d'ajouter un fichier de carte à Arduino pour lui dire d'utiliser l'option 8mhz pour une puce nue)
Si vous retirez la puce pour l'utiliser dans un circuit différent, elle a besoin soit de ce circuit d'horloge ajouté, soit de changer ses fusibles (j'y reviendrai dans une minute). Il sera également difficile de programmer, pour un certain nombre de raisons, vous voudrez donc acheter un peu de matériel assez bon marché:
Programmation d' une puce autonome: le processeur de l'Arduino n'est pas conçu nativement pour parler à un ordinateur. Vous avez besoin d'un intermédiaire. Sur l'Uno, cela se fait via une deuxième puce Atmel dotée d'une capacité USB et un chargeur de démarrage sur la puce principale. Ce que cela fait, c'est qu'il utilise l'UART pour télécharger le programme tandis que la puce USB convertit les messages du PC en signaux UART. Étant donné que le chargeur de démarrage est un peu pénible lorsque la puce est isolée (car UART est difficile et son installation définit la puce pour utiliser une horloge externe en conséquence), vous voudrez acheter un programmeur ISP pour l'Arduino (ou suivez le croquis et les instructions Arduino-as-ISP pour créer le vôtre, qui nécessite un Arduino avec une puce présente, vous aurez donc besoin d'une seconde pour être programmé).
Ceux-ci peuvent programmer l'ATMega 328 directement sur SPI, sans chargeur de démarrage (il existe de nombreuses instructions sur Internet; recherchez par exemple "programmez ATMega 328P nu avec USBAsp"). Cela rend beaucoup plus facile de changer et de déboguer votre programme en dehors de la sortie et de la réintroduction de la puce dans la carte Arduino d'origine. Vous en avez également besoin pour modifier les paramètres d'horloge si vous ne souhaitez pas utiliser un cristal externe.
Si vous souhaitez déboguer la puce, il est utile d'acheter également un adaptateur FTDI ou un autre convertisseur USB-UART. Notez que sans la partie circuit de réinitialisation de la carte (ou encore, en ajoutant la vôtre), cela ne vous permettra toujours pas de programmer l'ATMega même avec le chargeur de démarrage. Pour cela, connectez les broches de masse, RX et TX à l'adaptateur. Vous pouvez ou non vouloir connecter la ligne VCC, mais il est conseillé de ne pas le faire s'il y a beaucoup de choses connectées à la puce et / ou si elle a sa propre alimentation. Notez que le RX et le TX doivent être échangés lorsque vous les connectez; c'est-à-dire RX à TX et TX à RX - vous voulez que la puce RX (reçoive) ce que l'adaptateur TX (transmette), et vice versa.
Le circuit d'horloge n'est pas difficile à construire, mais il nécessite quelques composants que vous n'avez peut-être pas. Donc, pour changer la source d'horloge , allez sur http://www.engbedded.com/fusecalc/ et sélectionnez l'ATMega 328P. Les valeurs par défaut sont bonnes, mais vous souhaiterez peut-être activer la suppression continue de l'EEPROM et désactiver la division de l'horloge par 8 ou ajuster les paramètres de brunissement. Ne touchez à rien d'autre (la désactivation de la réinitialisation ou du SPI ou l'activation de DebugWire résulte en un "plaisir" qui nécessite un programmeur HV pour réparer). Une fois terminé, collez la commande qu'il fournit à la commande AVRDude. Vous devrez modifier les options -c (-p est déjà défini sur l'ATMega 328P, mais échouera pour les non-P 328 - ne les achetez pas), et peut-être ajouter l'option -P (pour le port). N'omettez pas l'option -u en minuscule, sinon elle refusera de mettre à jour les fusibles.
avrdude -p m328p -v -c usbasp -B 100 -u [add extras here: (-P <PORT>) <fuse set command here>]
Notez que si vous achetez un USBASP (assurez-vous qu'il a trois jeux de cavaliers!), Pour autant qu'ils soient mon programmeur préféré, ils peuvent ne pas avoir le firmware mis à jour qui prend en charge l'option -B (dont vous aurez probablement besoin). Cela signifie que vous devez le connecter à un Arduino via le port de programmation à six broches, de la même manière que vous l'utiliseriez pour programmer le chargeur de démarrage de l'Arduino, mais ensuite utiliser l'esquisse Arduino-as-ISP pour programmer le nouveau firmware au programmeur (recherchez "mettre à jour le firmware usbasp via arduino-as-isp")! Pour référence, cela signifie généralement que le câble ne fait pas face au corps de la carte, et vous devrez probablement programmer le croquis avantconnexion du câble. Activez également le cavalier power-from-programmer sur l'USBASP (5V) et celui "auto-programme". (voir https://forum.arduino.cc/index.php?topic=560719.0 pour l'emplacement des cavaliers d'alimentation et de programme (JP2)).