Полностью установил и настроил NetBSD на старом системнике. Решил опробовать avrdude. Когда всё нормально работает вот так:
# avrdude -c kvorb -p m8 -P /dev/tty00 -U flash:r:avr.hex:i
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9307
avrdude: reading flash memory:
Reading | ################################################## | 100% 5.63s
avrdude: writing output file "avr.hex"
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Нормально подключается к моей ATMega8 и считывает flash в файл avr.hex.
Но иногда вылазят ошибки и получается что-то вроде этого:
# avrdude -c kvorb -p m8 -P /dev/tty00 -U flash:r:avr.hex:i
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9307
avrdude: safemode: Verify error - unable to read hfuse properly. Programmer may not be reliable.
avrdude: safemode: To protect your AVR the programming will be aborted
avrdude done. Thank you.
Ну или вот это:
# avrdude -c kvorb -p m8 -P /dev/tty00 -U flash:r:avr.hex:i
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9307
avrdude: reading flash memory:
Reading | ################################################## | 100% 4.77s
avrdude: writing output file "avr.hex"
avrdude: safemode: lfuse changed! Was e4, and is now 0
И файлы получаются разные. Если читается без ошибок:
# md5 avr.hex
MD5 (avr.hex) = e92b12efe762214754eff5fb8d8a5de2
Если с ошибками:
# md5 avr.hex
MD5 (avr.hex) = 91b1579f7dac9848a6e2223853a38fe5
Программатор собран по этой
схеме. С UniProf в винде тоже были проблемы, вместо данных иногда читались 0x7F, ну и фузы неправильно считывались. При чем это уже второй программатор по этой схеме, в обоих одинаковые ошибки. Надо будет попробовать на другом компьютере, может быть проблема с COM портами. Кстати и COM порты не мешало бы проверить, прогнать пару мегабайт через них и посмотреть сколько будет ошибок.