Witam,
Dziś napotkałem nie lada problem. Zacząłem przerabiać lekcję nr 7 - ADC. Napisałem wstępny program z książki, podłączyłem lcd, programator i potencjometr.
I zaczął się Meksyk.
Nie wykrywało mi w ogóle procka. Odpaliłem mkAVR Calc, tam też nic. Zacząłem sprawdzać połączenia - nic. Odpiąłem wszystko i wymieniłem kable. O dziwo, sukces. Zadziałało. Załadowałem program, działał fajnie. Potem chciałem zmodyfikować program i załadować od początku. Niestety, Eclipse zaczął wypluwać błędy, które zaraz pokażę. mkavr calc też mi nie chciał nic zrobić. No to restart. Po restarcie wszystko poszło ok, co mnie zadziwiło, ale niestety tylko raz. Kolejna próba załadowania programu skończyła się komunikatem:
Cytuj:
Launching C:\AVRDUDE_FT232R\avrdude -pm644p -cATB-FT232R -Pft0 -Uflash:w:ADCtest.hex:a "-CC:\AVRDUDE_FT232R\avrdude.conf"
Output:
avrdude: BitBang OK
avrdude: pin assign miso 3 sck 5 mosi 6 reset 7
avrdude: drain OK
ft245r: bitclk 230400 -> ft baud 115200
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e960a
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
ft245r: bitclk 230400 -> ft baud 115200
avrdude: reading input file "ADCtest.hex"
avrdude: input file ADCtest.hex auto detected as Intel Hex
avrdude: writing flash (1140 bytes):
Writing | ################################################## | 100% 0.67s
avrdude: 1140 bytes of flash written
avrdude: verifying flash memory against ADCtest.hex:
avrdude: load data flash data from input file ADCtest.hex:
avrdude: input file ADCtest.hex auto detected as Intel Hex
avrdude: input file ADCtest.hex contains 1140 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.41s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0x0c != 0x00
avrdude: verification error; content mismatch
avrdude done. Thank you.
Nie mam bladego pojęcia, co to znaczy. Reset układu i kolejna próba zakończona:
Cytuj:
ft245r: bitclk 230400 -> ft baud 115200
avrdude: ft245r_program_enable: failed
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
Restart eclipsa. W mkAVR widoczny Atmega 644P, więc niby wszystko ok. W Eclipsie wielokrotnie używałem opcji automatycznego wykrycia uc (Load from MCU). A tu zonk. Eclipse wywalał albo błąd AVRDude'a albo - co dużo lepsze - wykrywał ATmega 64, tudzież ATmega 6490. Od czasu do czasu wykrył 644P, ale to chyba bez znaczenia, bo zawsze próba załadowania kończyła się komunikatem:
Cytuj:
Launching C:\AVRDUDE_FT232R\avrdude -pm644p -cATB-FT232R -Pft0 -Uflash:w:ADCtest.hex:a "-CC:\AVRDUDE_FT232R\avrdude.conf"
Output:
avrdude: BitBang OK
avrdude: pin assign miso 3 sck 5 mosi 6 reset 7
avrdude: drain OK
ft245r: bitclk 230400 -> ft baud 115200
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9606
avrdude: Expected signature for ATMEGA644P is 1E 96 0A
Double check chip, or use -F to override this check.
avrdude done. Thank you.
Spróbowałem na wszystkich trzech wersjach Eclipsa z płytki, nic. Ale pomyślałem, że nie jest tak źle, bo przecież mkAVR calc wykrywa. Niestety, srogo się zawiodłem, ponieważ program wykrywa jedynie programator FT232 oraz nazwę uc, nic innego. Nie odczytuje fuse bitów, lock bitów, nie zapisuje na flash. Pustka. Odpaliłem konsolę AVRDude spod mkAVR calc. Oto komunikat:
Cytuj:
avrdude: no programmer has been specified on the command line or the config file
Specify a programmer using the -c option and try again
Tyle. Jakieś rady czy niestety gwarancja?