Здравствуйте. Вгружаю скомпилированный в proteus hex в процессор. Код (C++): Cформированная командная строка: avrdude.exe -p m328p -c usbasp -P usb -U flash:w:"C:\Users\vtihon\Desktop\Debug1.3.hex":a avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update. avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude.exe: Device signature = 0x1e950f avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude.exe: erasing chip avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update. avrdude.exe: reading input file "C:\Users\vtihon\Desktop\Debug1.3.hex" avrdude.exe: input file C:\Users\vtihon\Desktop\Debug1.3.hex auto detected as Intel Hex avrdude.exe: writing flash (1154 bytes): Writing | ################################################## | 100% 0.76s avrdude.exe: 1154 bytes of flash written avrdude.exe: verifying flash memory against C:\Users\vtihon\Desktop\Debug1.3.hex: avrdude.exe: load data flash data from input file C:\Users\vtihon\Desktop\Debug1.3.hex: avrdude.exe: input file C:\Users\vtihon\Desktop\Debug1.3.hex auto detected as Intel Hex avrdude.exe: input file C:\Users\vtihon\Desktop\Debug1.3.hex contains 1154 bytes avrdude.exe: reading on-chip flash data: Reading | ################################################## | 100% 0.65s avrdude.exe: verifying ... avrdude.exe: 1154 bytes of flash verified avrdude.exe: safemode: Fuses OK (E:07, H:D9, L:62) avrdude.exe done. Thank you. Смущает ОЧЕНЬ странное поведение МК. Вгрузил блинк на одну ногу, а он либо на другой, либо его нет вообще. Еще хотелось бы понять, что значит строка: avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update. Как можно прошить хекс не установив частоту тактирующих импульсов интерфейса, через который шьешь? Прошу помощи.
Хм, ок. Тогда самый волнующий симптом: вгружаю блинк на ноге A5, 28 нога процессора, а он моргает НА ДРУГОЙ НОГЕ и с ДРУГОЙ ЧАСТОТОЙ. Причем при симуляции в proteus все работает идеально. Могло ли такое поведение быть причиной косяков во фьюзах?
Переводчик в яндекс: предупреждение: невозможно установить период сцк. пожалуйста, проверьте обновления микропрограммы в нем делается. Вот (Скорее вы уже это искали через поисковик но...): http://arduino.ru/forum/otvlechennye-temy/proshivka-usbasp http://homes-smart.ru/index.php?id=34&Itemid=171&option=com_content&view=article В конфигурации avrdude в файле конфигурации так же есть назначения пинов и т.д. Извините, что вмешиваюсь!
Для UNO другие фьюзы Код (C++): uno.bootloader.tool=avrdude uno.bootloader.low_fuses=0xFF uno.bootloader.high_fuses=0xDE uno.bootloader.extended_fuses=0x05 uno.bootloader.unlock_bits=0x3F uno.bootloader.lock_bits=0x0F
На самом деле, я прошиваю не ардуино, а голый процессор, причем без внешнего кварца. Единственное, никак не могу заставить проц работать на правильной частоте. Слишком медленно работает. Запутался во всех этих конфигурациях, где прямые, где инверсные, как понять какой активен, а какой нет...
Вот так, в общем, выглядит та конфигурация, которую я сейчас заливаю. Работает дико медленно. Подскажите, пожалуйста, как изменить.
Да фьюзы тёмный лес у всех прошивающих программ по разному. Здесь про фьюзы. А здесь Дудка с встроенным фьюз калькулятором там сразу всё видно что включено а что нет и на какой частоте Кварц или вообще без него. а я вообще отошёл от галочек использую значения Low фьюз и High фьюз. Никогда не ошибёшься!Да и вообще в последнее время обленился настолько что пишу под Мега8/168/328 с внешним кварцом 16 Мгц (ничего не напоминает?)И USART стабильнее работает и вообще вся схема да и шьётся быстрее а потом когда отлажу Камень вынимаю из Ардуины и ставлю её в целевую плату.Можно писать и компилить в Кодвижн или Студии а НЕХ файл заливать в Ардуину при помощи Xloader.
У Вас Low фьюз Е2 High фьюз 99 Тоесть бут область 1024 words (99) и встроенный Гена 2 Мгц (E2) поэтому может и работает медленно?
Ругается на устаревшую прошивку программатора USBASP. Версия прошивки программатора (устройства) должна соответствовать версии, которую ожидает avrdude. Судя по этому выводу: в качестве тактовой частоты используется внутренний генератор 8 МГц и установлен фьюз CKDIV8 -- деление тактовой частоты на 8. Что бы контроллер и прошивка работали согласованно на нужной частоте нужно: установить нужный источник тактовой частоты микроконтроллера -- внешний кварц, внутренний генератор и т.п. Делается через фьзы CKSEL0..3. В вашем случае (L:62 -- смотри вывод "Fuses OK (E:07, H: D9, L:62)") в качестве источника установлен внутренний генератор 8 МГц. установить правильное значение делителя тактовой частоты -- регистр CLKPR. В вашем случае при старте контроллера из-за активированного фьюза CKDIV8 (L:62 -- смотри вывод "Fuses OK (E:07, H: D9, L:62)") значение регистра установиться таким, что бы тактовая частота делилась на 8. Если хотите, что бы микроконтроллер работал на максимальной частоте, то нужно значение регистра CLKPR поменять в коде программы (если не хотите трогать фьюз CKDIV8) или нужно деактивировать фьюз CKDIV8 (если не хотите менять регистр CLKPR). установить правильное значение макроса F_CPU. Значение этого макроса должно соответствовать значению тактовой частоты микроконтроллера (с учётом первых двух пунктов). Если значение F_CPU будет отличаться от тактовой частоты, то будет нарушена работа функций, связанных со временем -- всякие delay, micros и т.п. Постя скриншоты всяких графических оболочек для avrdude только хуже делаете. Они всё написаны хрен пойми как -- в одних галочка значит "активный фьюз", в других "неактивный". Плюс не понятно это реальные фьзы взятые из контроллера или программулина сама решила так галочки расставить. Пойди разберись.
Di Halt предлагает ориентироваться на Spien этот фьюз всегда активен и "убрать" его нельзя. Так что если Spien помечен галочкой то значит "галочка" показывает установленный фьюз. Если же Spien без галочки "галочка" показывает выключенный фьюз. А вообще надо работать с фьюз байтами как сказал выше. Там вероятность ошибки нулевая. Есть и фьюз калькуляторы онлайн и там тоже можно получить фьюз байты которые потом сразу и прошить.