www.open-tager.ru http://www.open-tager.ru/forum/ |
|
Чем и как "прошить" "Аскета?" http://www.open-tager.ru/forum/viewtopic.php?f=5&t=2121 |
Страница 1 из 2 |
Автор: | Pingvin [ 20 июн 2013, 09:26 ] |
Заголовок сообщения: | Чем и как "прошить" "Аскета?" |
Вопрос поднимался многократно, поэтому решил выложить мануал в отдельную ветку. Прошу комменты пока не добавлять, пока не выложу полностью, дабы не нарушалась целостность изложения. Что нам понадобиться? В первую очередь нам нужен программатор. Самый простой и доступный LPT программатор можно сделать самому по ниже приведенной схеме. ![]() Резисторы лучше поставить. Провод не должен быть длинным. Выводы программатора подключаются к соответствующим выводам разъёма K1 ISP MOSI к MOSI, MISO к MISO, RESET к RESET, SCK к SCK, GND к GND То есть на схеме программатора "RESET" не на той ножке разъёма сидит - обратите внимание! А то один в один скопируете и подключите... ![]() ![]() Ножка VCC на K1 ISP должна остаться свободной. На плату подается питание 5В, можно с того же компа, к которому LPT подключен. Сначала все подключаем, затем комп включаем. Не попутайте выводы, а то дымок можете увидеть (я видел ![]() Да и комп лучше взять старый, какой-нибудь, чтобы не жалко, если что... Пробуйте на свой страх и риск, за погоревшие порты я ответственности нести не собираюсь. ![]() Не сильно запугал, надеюсь? ![]() У меня пока ничего в компе не погорело, хоть и умудрялся разъём не так вставлять - видел дым и атмегу спалил. |
Автор: | Pingvin [ 20 июн 2013, 09:41 ] |
Заголовок сообщения: | Re: Чем и как "прошить" "Аскета?" |
Будем считать, что программатор Вы спаяли, ничего не напутали. С позволения iranklim выложу фото его программатора, уж очень мне он понравился (мой страшнее ядерной войны выглядит ![]() Теперь нам нужен соответствующий софт. Выбор тут есть, но я пользовался только PonyProg2000, потому о нем и буду вести речь. Скачиваем с официального сайта и устанавливаем. Прямая ссылка на последнюю версию программы. |
Автор: | Pingvin [ 20 июн 2013, 10:18 ] |
Заголовок сообщения: | Re: Чем и как "прошить" "Аскета?" |
При выключенном компьютере подключаем наш программатор к LPT порту и к плате "Аскета". Вставляйте разъём правильно! Иначе дым и оплавленные провода Вам гарантированны (проверено на собственном опыте ![]() К сожалений "защиты от дурака" нет и действуем внимательно! После того, как все подключили включаем комп и запускаем программу. Первым делом необходимо указать программе, с каким программатором ей придется работать. Находим в главном меню пункт Setup и выбираем в выпадающем подменю пункт InterfaceSetup ![]() Теперь укажем в открывшемся окошечке в выпадающем списке наш программатор - AVR ISP I/O Предварительно нужно нажать на "радиокнопку" Parallel ![]() После того, как мы указали PonyProg используемый программатор, проверим, а видит ли она его - жмем кнопку Probe Если все в порядке, увидим сообщение - TestOK ![]() Теперь надо сделать калибровку. В чем смысл калибровки для меня тайна великая есть, но надо, так надо... Опять жмем на вкладку Setup, затем на Calibration ![]() В всплывающем окне жмем Yes ![]() Калибровка завершена ![]() |
Автор: | Pingvin [ 20 июн 2013, 11:57 ] |
Заголовок сообщения: | Re: Чем и как "прошить" "Аскета?" |
Далее надо указать, какой микроконтроллер мы собрались прошивать. На панели инструментов есть два выпадающих списка. В первом надо выбрать AVR micro, во втором - Atmega32. Теперь у нас все готово, чтобы приступить непосредственно к прошивке. Прошивка представляет из себя файл с расширением .hex Давайте откроем файл прошивки (или бутоадера) - в пункте меню File нажимаем вкладку Open Program (FLASH) file ![]() В проводнике находим и выбираем файл прошивки (бутлоадера). ![]() После открытия файла программа демонстрирует нам его содержимое в шестнадцатеричном и текстовом форматах ![]() Левый столбик из красных цифр - это адреса ячеек памяти, справа - их содержимое. В нижней строку риводится CRC файла. CRC поможет нам легко оценить, не пострадали ли данные при считывании или записи прошивки. Прежде чем записать новые данные в контроллер необходимо удалить старые. В пункте меню Command нажимаем вкладку Erase ![]() Теперь память программ контроллера чиста и готова к приему новых данных. ![]() Давайте запишем нашу прошивку (бутлоадер) в контроллер. В пункте меню Command нажимаем вкладку Write Programm (FLASH) ![]() Процесс пошел ![]() Данные записаны ![]() На всякий случай проверим, а правильно ли все записалось? В пункте меню Command нажимаем вкладку Verify Programm (FLASH) ![]() Команда Verify сравнит открытый файл с данными, записанными в контроллер, и если данные не отличаются, то выдаст сообщение Verify successful ![]() Если данные повреждены, появится сообщение Verify Failed ![]() Даже если Вы с первой попытки увидели сообщение Verify Failed - не спешите снова перезаписывать данные. Программатор весьма капризен, и результат его работы зависит от фазы луны, погоды на Марсе и ещё Бог знает от каких факторов. Вполне может быть, что это только ошибка чтения, а сами данные записаны нормально. Сделайте проверку ещё разок, а уж если после нескольких попыток будет один и тот же отрицательный результат - ничего не поделаешь, придется все стереть и записать по новой. |
Автор: | mail_robot [ 20 июн 2013, 12:02 ] |
Заголовок сообщения: | Re: Чем и как "прошить" "Аскета?" |
в этот раз обойдусь без комментариев http://dvrobot.ru/shop/i356.Programmator_AVR-_Atmel.htm |
Автор: | Pingvin [ 20 июн 2013, 12:07 ] |
Заголовок сообщения: | Re: Чем и как "прошить" "Аскета?" |
mail_robot писал(а): в этот раз обойдусь без комментариев http://dvrobot.ru/shop/i356.Programmator_AVR-_Atmel.htm Хорошая вещь, кто спорит? Набросайте мануальчик, как этим прошить Atmega32 и можете выложить тут же. |
Автор: | mail_robot [ 20 июн 2013, 12:21 ] |
Заголовок сообщения: | Re: Чем и как "прошить" "Аскета?" |
чего там набрасывать то) одну сторону в комп, вторую к плате. Запускаем прогу в которой 2 кнопки - открыть прошивку/залить прошивку для ОСОБО одаренных внизу есть кнопка - документация ![]() ![]() |
Автор: | Sabbah [ 20 июн 2013, 12:41 ] |
Заголовок сообщения: | Re: Чем и как "прошить" "Аскета?" |
Собрал программатор AVRusb500 by Petka, прошиваю через USB. Прошиваю версию 3.0 из AVR Studio. Обращаю внимание, что фьюзы в разных программах могут отличаться, ниже выложены именно для AVR Studio. Заливка прошивки производится из вкладки Program. С JTAGEN снимается галочка если у вас версия 3.1 или на схеме убран разъем JTAG. Заголовок: LTAscetik Pingvin писал(а): Если ИСПОЛЬЗУЕМ БУТЛОАДЕР фьюзы такие (ну и сам бутлоадер не забываем залить) Вложение: fuses_to_bootloader.png [ 22.76 KiB | Просмотров: 18483 ] Заголовок: LTAscetik Про бутлоадер описано тут http://www.open-tag.ru/forum/viewtopic.php?f=5&t=1565&p=21574&hilit=%D0%B1%D1%83%D1%82%D0%BB%D0%BE%D0%B0%D0%B4%D0%B5%D1%80#p21574 Вложение: Вложение:
|
Автор: | Pingvin [ 20 июн 2013, 12:42 ] |
Заголовок сообщения: | Re: Чем и как "прошить" "Аскета?" |
Теперь самый ответственный момент! Нужно сконфигурировать так называемые "фьюзы". Фьюзами определяется, как будет тактироваться контроллер, какие интерфейсы будут использоваться, с какого адреса начнет контроллер считывать инструкции после сброса и т.д. С фьюзами надо работать очень осторожно и внимательно, иначе контроллер может стать "аутистом" и до него потом ни чем не "достучишся"... ![]() Или залочите прошивку, и больше её не поменяешь потом. Для начала считаем фьюзы с контроллера. В пункте меню Command нажимаем вкладку Security and Configuration Bits ![]() Откроется вот такое окошко ![]() Прежде чем приступить к каким-либо манипуляциям с битами, сначала нужно считать их значение из контроллера Жмем кнопку Read Фьюзы в самой верхней строке (которые содержат в себе Lock) - вообще не трогаем! Хрен знает почему, но когда считываю фьюзы с зеленой платки (версия 3), то они у меня все отключены, а если с синей (версия 3.1) - то все установлены. ![]() Не знаю, почему так! Короче их не касаемся! Теперь, для зелёной платы (версия 3) фьюзы выглядят, как на выше приведенном рисунке. Код: OCDEN — fuse разрешает работу схемы внутреннего отладчика (On Chip Debug ENable). Выставляем этот бит - может дебажть придется, да и прошивку не считать из контроллера без него. Код: JTAGEN — fuse бит разрешает работу интерфейса программирования-отладки JTAG. По сравнению с SPI-интерфейсом, JTAG обладает расширенными возможностями, но при его использовании потребляемый МК ток возрастает. На зеленой плате JTAG используется, поэтому для неё тот фьюз выставляем. На синей JTAG не используется - для неё отключаем. Код: CKOUT — fuse бит, разрешающий вывод тактовой частоты на один из выводов МК (для тактирования других устройств). Нам ничего внешнего тактировать не надо, отрубаем. Код: EESAVE — fuse бит, после установки которого при стирании памяти МК содержимое EEPROM данных будет сохраняться нетронутым, т. е. не будет стерто. Пусть eeprom тоже очищается, сбрасываем этот фьюз. Код: Группа fuse битов BOOTSZ — два fuse бита, определяющие размер области памяти программ, выделяемой для загрузчика (Boot Loader). Комбинация этих битов, в частности, определяет точку начала исполнения программы после сброса, если установлен бит BOOTRST. Если хотим пользоваться бутлоадером, то выставляем все три этих фьюза, если нет - сбрасываем BOOTRST (в таком случае состояние двух остальных - по хрен). Код: Группа fuse битов BODLEVEL. Может быть либо один такой бит, либо несколько, тогда они нумеруются, начиная с нуля. Значение этих fuse битов определяет порог срабатывания схемы BOD — детектора уровня питающего напряжения, при снижении напряжения питания ниже этого уровня произойдет "сброс" МК. BODEN — fuse бит, включающий схему аппаратного детектора недопустимого уровня питающего напряжения, т.е. схему BOD. отрубаем эту хрень - сбрасываем все эти фьюзы. Код: SUT1 и SUT0 — fuse биты, управляющие режимом запуска тактовых генераторов МК. Связаны с нижеописываемыми битами, определяющими тип и частоту тактового генератора, причем связь весьма хитрая и запутанная. При ошибочной их установки возможны ситуации неустойчивого запуска генератора или неодногратного сброса МК в процессе подачи на него питания. CKOPT — бит, определяющий режим работы встроенного генератора тактовой частоты для работы с кварцевыми резонаторами. Реально изменяет коэффициент усиления встроенного инвертора в схеме генератора и значит выходное напряжение на ножке XTAL2. Ошибочная установка может приводить к неустойчивому запуску кварцевого генератора, вплоть до возбуждения его не на той гармонике, что надо (из-за этого бита кварц запускался или только при питании МК напряжением не выше 3,6В, или только после прикосновения к выводу XTAL1 пинцетом) Группа битов CKSEL0…CKSEL3 — fuse биты, комбинация которых определяет тип и частоту работающего тактового генератора. Всего возможно до 16 комбинаций, однако не все определены для всех типов МК. Ошибочная установка комбинации этих битов может сделать МК «мертвым» — он не будет работать в схеме без подачи тактового сигнала на ножку XTAL1. Выставляем как на скриншоте - все CKSEL сброшены, SUT1 сброшен, SUT0 установлен. Все! Для синей платы (версия 3.1) при использовании бутлоадера фьюзы выглядят так ![]() Если не будете использовать бутлоадер, а заливаете сразу прошивку, то так ![]() Для особо одаренных ещё раз повторю - Фьюзы в самой верхней строке (которые содержат в себе Lock) - вообще не трогаем! Как они у вас считались с контроллера, так их и оставьте! Не зависимо от того, как они выставлены на приведенных скриншотах! Ну все, записываем фьюзы - жмем кнопку Write Всё - дело сделано! Выключаем комп, отключаем программатор. Подаем на плату "Аскета" питание, и если Вы заливали прошивку, она должна заработать. Если бутлоадер - читайте в следующих выпусках, как пользоваться бутлоадером. |
Автор: | Pingvin [ 20 июн 2013, 18:50 ] |
Заголовок сообщения: | Re: Чем и как "прошить" "Аскета?" |
Как пользоваться бутлоадером? Сначала идем на сайт конторы chip45 и скачиваем архив с бутоадерами Качаем именно версию архива chip45boot2 Hexfiles V2.95! Другие версии не уверенно запускали основную прошивку (контроллер просто "зависал") и проявляли другие глюки. Кроме того, скачиваем программу для компьютера, позволяющую грузить прошивку через бутлоадер. На память не скажу, какой версией я пользуюсь (комп в конторе), но думаю, можно использовать последнюю версию. Софтина называется chip45boot2 GUI - установите её. Распаковываем архив с бутлоадерами, находим среди них для Atmega32 - chip45boot2_atmega32_uart0_v2.95.hex Именно этот hex и заливаем в контроллер. Как зашить - описано выше. Далее все просто. Подключаем к "Аскету" модуль интерфейса RS232 ![]() Подключаемся к COM-порту компьютера, запускаем софтину chip45boot2 GUI Выбираем нужный Com-порт (тот, к которому плата подключена). Что делать дальше - можно посмотреть на видео. Только, все же, вроде сначала питание на плату подаем, а затем жмем кнопку "коннект" в софтине. И с кнопки "старт апликейшин" иногда криво стартует, лучше все же выключить плату и включить снова. Но... пробуйте! ![]() |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |