AVR dubbla RGB Matrix föraren (7 / 12 steg)
Steg 7: Uppdatera AVR Fuse byte
Att köra här många lysdioder, vi behöver många klockcykler - detta innebär att vi kommer att behöva ändra standard AVR säkringarna som kontrollerar klocka källa.
ATmega328p fartyg med säkringarna inställt för att köras på 8MHz intern oscillator. Denna klocka är sedan klev ner till 1 MHz internt. Jag beslutade att använda en extern 16MHz kristall. Detta är samma tidpunkten att många av de ursprungliga Arduino styrelserna används, och gör det också trevlig, jämna nummer involverade i kontrollen timing.
Noterar, programmering AVR säkringar är mycket enkel, men det är också det enklaste sättet att tegel ett chip. Du kanna lätt göra oduglig programmering alla tillsammans eller Ställ in klocka källa till några konstiga frekvens. Alltid dubbelkolla din bytevärden innan programmering!
Ladda en terminalkonsolen och utfärda följande kommando:
> avrdude
Om detta är ett okänt kommando, kommer du behöva installera någon programvara - nämligen AVR-GCC-kompilatorn och AVRDUDE programmeringsverktyg. Dessa är kombinerade i WinAVR eller Atmel Studio, men kan också installeras individuellt på alla OS.
Med hjälp av den fantastiska fuse kalkylatorn finns här, kan vi se att vi för att använda en extern 16 MHz kristall utan den klocka klyftan av 8 alternativ, ändrar låg säkringen för att vara 0xE7.
Detta är grundläggande kommandot för att ändra den låga fuse:
> avrdude -p - c -P - U lfuse:w::m
Om du använder min rekommenderade AVR programmerare, följande kommando kommer att fungera, om inte, måste du ersätta vissa värden med dem på din setup.
> avrdude -p atmega328p - c usbtiny -P usb - U lfuse:w:0xe7:m
Om det lyckas, bör du se ett meddelande. Du kan alltid kontrollera säkring bitar med detta kommando:
> avrdude -p atmega328p - c usbtiny -P usb -V