Stap 7: De AVR Fuse Bytes bijwerken
Om te rijden zoveel LEDs, moeten we een heleboel klokcycli - dit betekent dat we zullen moeten veranderen de standaard AVR zekeringen die het klokbron controleren.
De ATmega328p wordt geleverd met de zekeringen op de interne 8MHz oscillator uitvoeren. Deze klok wordt dan intern tot 1 MHz versterkt. Heb ik besloten om het gebruik van een externe 16MHz kristal. Dit is de zelfde timing dat veel van de oorspronkelijke Arduino boards Arduino boards gebruikt, en het zorgt ook voor mooi, even nummers die betrokken zijn bij de controle van de timing.
Let op, het programmeren van de AVR zekeringen is zeer eenvoudig, maar het is ook de eenvoudigste manier om baksteen een chip. U kunt gemakkelijk onbruikbaar maken van programmering allemaal samen of stel de klokbron tot sommige vreemde frequentie. Uw bytewaarden vóór programmering altijd dubbel te controleren!
Een terminal console laadt, en het volgende commando:
> avrdude
Als dit een onbekende opdracht, moet u sommige software - namelijk de AVR-GCC compiler en de AVRDUDE programming tool te installeren. Deze zijn gebundeld in WinAVR of Atmel Studio, maar kunnen ook afzonderlijk worden geïnstalleerd op elke OS.
Met behulp van de verbazingwekkende fuse calculator beschikbaar hier, kunnen we zien dat we voor het gebruik van een externe 16 MHz kristal zonder de klok kloof door 8 optie, de lage zekering te 0xE7 moet wijzigen.
Dit is de fundamentele opdracht om de lage zekering:
> avrdude -p - c -P - U lfuse:w::m
Als u van mijn aanbevolen AVR-programmer gebruikmaakt, het volgende commando zal werken, zoniet, zal u ter vervanging van de waarden met die niet voldoen aan uw installatie.
> avrdude -p atmega328p - c usbtiny -P usb - U lfuse:w:0xe7:m
Als dat lukt, moet u een succes boodschap. U kunt altijd het controleren van de fuse-bits met dit commando:
> avrdude -p atmega328p - c usbtiny -P usb -V