Прошло почти три года с того момента как я писал про мои попытки прошить микроконтроллеры Atmel. Да, это хобби и я больше похож на коллекционера китайских электронных устройств.
Сегодня решил попробовать прошить Atmega16A (покупал ещё осенью 2016-го) и столкнулся с небольшими трудностями.
На последних трёх фотографиях со страницы о посылках с али, изображены ZIF панели и программатор.
Во-первых, ссылка на ту статью о первом знакомстве с прошиванием AVR.
7-ая Атмел студия у меня заработала на виртуальной машине с Windows 7 (я уж не стал ставить XP, как планировал изначально). Решение о виртуалке пришло не просто так. В 7-ке вылетает окошко с предупреждением, что драйвер не подписанный и можно взять на себя риск при его использовании, а в 10-ке уже так не сделать.
В Windows 10 драйвера должны быть обязательно подписаны, а у всяческих USBasp этого нет. По крайней мере у моего клона точно. Можно отключить проверку подписи вроде как, но это не просто и я не хочу с этим заморачиваться.
Т.е. компилировать программы уже можно по человечески в специальной студии, а не из командной строки. Отлаживать нельзя к сожалению. Для отладки нужны устройства реализующие JTAG, а они дорогие (А если не дорогие, то копии, которые при обновлении превращаются в кирпич. Попадались инструкции, как с танцами и бубнами можно обновить клон отладчика. Если есть время с этим разбираться, то пожалуйста.). Атмеловская студия не поддерживает USBasp, но я об этом уже писал. Есть возможность "повесить" avrdude в меню, как команду и тогда можно добиться минимальной автоматизации прошивки скомпилированного кода.
Далее, изначально я заливал программу во флеш память с помощью avrdude. Затем я нашёл программу khazama и ещё графическую оболочку для avrdude (avrdude_prog v3.3). Это немного устаревшая программа, но это проще, чем руками вводить параметры. На самом деле достаточно khazama.
Суть моей проблемы сегодня оказалась в неправильном значении ISP CLK в khazama. Подпись устройства определялась как 0x000000 и программа ругалась. avrdude тоже отказался работать, пишет "target doesn't answer". Я так понимаю, что это связано со скоростью ISP (скорее всего скоростью интерфейса SPI). Как подшаманить avrdude я не нашёл.
Благодаря выбору значения скорости в khazama можно решить эту проблему. Кстати, с Attiny скорее всего такая же проблема. Там решилось понижением скорости на программаторе, установив перемычку. В общем, видимо придётся разобраться в механизме прошивки. Благо, на github есть исходники прошивки USBasp. Будет время поковыряюсь в исходниках и логическим анализатором посмотрю, как проходит прошивка. При работе микроконтроллера от внутреннего генератора, он медленный, видимо нестыковка по тактовым импульсам происходит с программатором. Как-то так.
Удачных экспериментов!
Сегодня решил попробовать прошить Atmega16A (покупал ещё осенью 2016-го) и столкнулся с небольшими трудностями.
На последних трёх фотографиях со страницы о посылках с али, изображены ZIF панели и программатор.
Во-первых, ссылка на ту статью о первом знакомстве с прошиванием AVR.
7-ая Атмел студия у меня заработала на виртуальной машине с Windows 7 (я уж не стал ставить XP, как планировал изначально). Решение о виртуалке пришло не просто так. В 7-ке вылетает окошко с предупреждением, что драйвер не подписанный и можно взять на себя риск при его использовании, а в 10-ке уже так не сделать.
В Windows 10 драйвера должны быть обязательно подписаны, а у всяческих USBasp этого нет. По крайней мере у моего клона точно. Можно отключить проверку подписи вроде как, но это не просто и я не хочу с этим заморачиваться.
Т.е. компилировать программы уже можно по человечески в специальной студии, а не из командной строки. Отлаживать нельзя к сожалению. Для отладки нужны устройства реализующие JTAG, а они дорогие (А если не дорогие, то копии, которые при обновлении превращаются в кирпич. Попадались инструкции, как с танцами и бубнами можно обновить клон отладчика. Если есть время с этим разбираться, то пожалуйста.). Атмеловская студия не поддерживает USBasp, но я об этом уже писал. Есть возможность "повесить" avrdude в меню, как команду и тогда можно добиться минимальной автоматизации прошивки скомпилированного кода.
Далее, изначально я заливал программу во флеш память с помощью avrdude. Затем я нашёл программу khazama и ещё графическую оболочку для avrdude (avrdude_prog v3.3). Это немного устаревшая программа, но это проще, чем руками вводить параметры. На самом деле достаточно khazama.
Суть моей проблемы сегодня оказалась в неправильном значении ISP CLK в khazama. Подпись устройства определялась как 0x000000 и программа ругалась. avrdude тоже отказался работать, пишет "target doesn't answer". Я так понимаю, что это связано со скоростью ISP (скорее всего скоростью интерфейса SPI). Как подшаманить avrdude я не нашёл.
Благодаря выбору значения скорости в khazama можно решить эту проблему. Кстати, с Attiny скорее всего такая же проблема. Там решилось понижением скорости на программаторе, установив перемычку. В общем, видимо придётся разобраться в механизме прошивки. Благо, на github есть исходники прошивки USBasp. Будет время поковыряюсь в исходниках и логическим анализатором посмотрю, как проходит прошивка. При работе микроконтроллера от внутреннего генератора, он медленный, видимо нестыковка по тактовым импульсам происходит с программатором. Как-то так.
Удачных экспериментов!
Комментариев нет:
Отправить комментарий