Na ontvangst van mijn eerste Arduino UNO, besefte ik spoedig dat het onpraktisch om een UNO gebruiken voor elk project zal zijn. Net als bij de familie van de Microchip van MCU's, wilde ik een makkelijke manier om programma zelfstandige circuits en chips.
Zoeken op het internet, was het duidelijk dat de Arduino IDE aan al mijn behoeften kunnen voorzien, en dat zonder extra hardware vereist zal zijn. De Arduino UNO kunnen worden geprogrammeerd als een programmeur van Circuit In met de meegeleverde voorbeeld schets ArduinoISP en de UNO. Er is dus geen behoefte aan een aparte programmeur of AvrDude software voor programmering. Een heleboel voorbeelden hierover werd gevonden op het internet.
Na wat testen was het duidelijk dat de programmering van de AtMega328P niet zo eenvoudig was als ik dacht. Alle programmering, is afhankelijk van de AtMega328P-chip. Het al bevatte de bootloader, of de chip leeg is? Kosten van een chip met bootloader is dubbele van dat van een schone chip, dus mijn eerste batch van chips was leeg.
Wat is het verschil, kunt u vragen. Nou, is het alles over de selectie van AtMega328P oscillator.
Laat kijken naar de verschillen
AtMega328P met bootloader
Kosten van deze chip is over verdubbeld ten opzichte van een lege chip
De registers van de config van de chip is ingesteld op het gebruik van een externe kristal als klok (16MHz)
Zonder een externe oscillator, kan men niet de chip met behulp van de Arduino als programmeur program
Eenmaal uitgerust met een externe oscillator, kan de chip worden geprogrammeerd met behulp van de Arduino als programmeur
AtMega328P zonder bootloader
Kosten is de helft van een chip met bootloader
Het register van de config van de chip is ingesteld op het gebruik van de interne klok van 1MHz
Chip kan worden geprogrammeerd met behulp van de Arduino als programmeur, maar het programma zal uitvoeren 16 keer langzamer dan de code moet, zoals de Arduino IDE de code compileert kan worden uitgevoerd op 16MHz, en niet 1MHz
Chip kan worden geconfigureerd voor 16MHz door het uploaden van de Arduino bootloader.