Jak popatrzę do datasheeta atmega88PA i odszyfruję te fusy to dla lfuse=0x2E=0010 1110 daje:
CKDIV8=0 to podział clocka przez 8,
CKOUT=0 to wystawienie clocka na zewnątrz na PB0 (po co?),
CKSEL3..1=111 to zewnętrzny rezonator w trybie low-power (mniej odporny na zakłócenia - jaki więc sens?),
SUT1&0=10 w połączeniu z CKSEL0=0 daje 'ceramic resonator+BOD' włączony+start-up time 1k CK.
Jaki sens używać trybu low power rezonatora zamiast full-swing? Jaki sens dawać możliwość wystawienia (bo chyba to czy zostanie wystawiony, czy nie ustawia się gdzieś w rejestrach - nie grzebałem tak głęboko w datasheet) sygnału clk na PB0, mimo, że na płytce ta nóżka jest nigdzie nie podłączona?
co do hfuse=0xC9=1100 1001 daje to:
RSTDISBL=1 - nóżka reset działa jako reset,
DWEN=1 - debudWIRE wyłączony,
SPIEN=0 - włączona możliwość programowania przez SPI,
WDTON=0 - zawsze włączony watchdog,
EESAVE=1 - EEPROM not reserved - ?,
BODLEVEL2..0=001 - BOD level ustawiony na 'reserved' czyli nijak. W ogóle po co BOD w tej aplikacji?
może w fusebitach jest probem?
napisałem w winavr prosty program co by dioda SERVO ERROR się po prostu zaświeciła, czyli program ma wystawić wysoki stan na nóżkę 25 (PC2):
Kod: Zaznacz cały
/* układ ATmega88PA 16MHz */
/* dioda LED na PC2*/
#define F_CPU 16000000L
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRC=0x0F; /*C0-c3 to wyjścia*/
PORTC=0xff;
_delay_ms(1);
while (1)
{
PORTC=0x0f;
_delay_ms(660);
PORTC=0x00;
_delay_ms(330);
}
}
wrzucam led.hex do avrdude. W avrdude nie mam w liście m88PA tylko m88, więc w avrdude.conf dodałem blok dla mega88PA poprzez skopiowanie bloku m88 i zmienienie nazwy na m88PA i zmienienie sygnatury procka na 0x1E930F.
teraz w avrdude ręcznie wpisuję w command line m88PA zamiast m88 (wiem, że mogłem użyć -F aby ominąć sprawdzanie sygnatury, ale już próbuję wszystkiego).
Command line wtedy wygląda tak:
Kod: Zaznacz cały
"D:\avrdudeok\avrdude.exe" -p m88pa -c usbasp -C "D:\avrdudeok\avrdude.conf" -P -U flash:w:"D:\winavr\8061\led.hex":a
Kod: Zaznacz cały
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude.exe: Device signature = 0x1e930f
avrdude.exe done. Thank you.
o co kaman?