Создал проект в Proteus 8.13 на ATtiny13 и хочу, штатными средствами Proteus, заливать прошивку напрямую в голый ATtiny по SPI.
В качестве программатора - Arduino nano (Arduino as ISP). Проект компилируется и без проблем работает в симуляторе. Полученный debug.hex опять же без проблем заливается через Arduino nano (Arduino as ISP) программами AVRDUDE Prog и SinaProg. Но вот из самого Proteusa прошиваться никак не хочет. Вернее прошивка заливается, индикация на ардуине индицирует передачу данных, AVRDUDE пишет: "avrdude.exe done. Thank you.Firmware upload COMPLETE." То есть весь процесс прошивки проходит успешно, но прошиваемый контроллер не работает.
Курил мануал, а именно: visualDesigner help(74 страница). Но там ничего по существу нет. Настройки для новичков. В гугле ничего найти не удалось на эту тему. Полагаю что настроены неправильно fuse и некорректный набор команд AVRDUDE. Уже день потратил на эту херабору. Может кто сталкивался подскажите как решить. Ниже приведу свои настройки проекта и вывод AVRDUDE.
Есть еще вкладка "Options" в меню свойств проекта и там как раз можно прописать команды AVRDUDE, но я так и не разобрался как это сделать. В туториалах о ней ни слова...
В общем просьба подсказать куда копать и вообще работает ли корректно эта опция.
Проектная - 9.6MHz. В симуляторе выставлен делитель на 8 в fuse бит CLKDIV8. Но в настройках проекта в пункте "Clock for delays" установлено 9.6MHz. Именно из этого пункта берётся значение частоты при прошивке реального МК. Об этом написано в мануале, ссылку на который я приводил выше (стр. 72).
Я не уверен, что Proteus поменяет фюзов МК. С Arduino в качестве программатора и, напр. AVRDUDESS запишите LF в 0x7A (9,6 MHz) и затем повторит попытку. Для эксперимента можно заранее прочитать LF в ATtiny13A?
А причем здесь частота? Ну пусть даже выставлен делитель на 8 в фьюзах и частота будет 1.2, но тот же блинк бы запустился и я увидел бы его работу. Почти уже разобрался с этой вкладкой "Options"... Попробую прописать там команды из AVRDUDE Prog (хоть и через задницу там все это делается).
Попробуйте внешнюю программу записи (известную вам), чтобы записать hex скомпилированный из Proteus. По методу выключения узнаете, правильно ли Proteus компилирует или записывает некорректно (напр. нужны дополнительные настройки).
Странно... То ли я спутанно пишу или недоходчиво объясняю... То ли... Скорее да, не правильно построил предложение. Вот здесь я написал что скомпилированную Proteus прошивку в debug.hex файл успешно прошиваю в микроконтроллер с помощью AVRDUDE Prog и SinaProg.
Полученный debug.hex опять же без проблем заливается через Arduino nano (Arduino as ISP) программами AVRDUDE Prog и SinaProg.
То есть Proteus генерит hex файл, я его прошиваю SinaProg с фьюзами по умолчанию и всё работает. Неработает когда я пытаюсь это же hex файл прошить самим Proteus-ом.
А вот лог программы SinaProg при заливке этого же файла (Release.hex). Микроконтроллер работает. Спойлер$ avrdude -p t13 -c arduino -P COM3 -b 19200 -F -U flash:w:Release.hex ====================
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny13 avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x1e9007 avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny13 avrdude: reading input file "Release.hex" avrdude: input file Release.hex auto detected as Intel Hex avrdude: writing flash (890 bytes):
А у того протеуса есть вкладка установки программатора вида "Arduino as ISP" ?... (Это корректное название для железяки на основе ардуино нано и скотча из примеров ардуино IDE для установки в использующих его софт- оболочках). Не всё варианты "оболочек" на базе аврдуде имеют соответствующую поддержку данного "железа".
BOB51 Ну а как еще интерпретировать опции программатора выбираемые в меню "Настройки проекта" (первый скрин из моего первого поста)? Первые три пункта там это семейство и тип микроконтроллера в который заливается прошивка. А далее пункт "Programmer" - программа для прошивки (AVRDUDE) и пункт "Interface" c возможностью выбрать только Arduino uno, nano, 328p, и USBasp как бы намекает что в этом пункте выбирается программатор. А какой еще может быть программатор на базе Arduino nano кроме Arduino as ISP? Я таких не знаю... Короче, попробую еще найти свисток USBasp и прошиться через него для экскремента. Правда с этой приблудой на Windows 10 я еще не работал. Полагаю будут тоже грабли...
С "ардуино as ISP" не так всё просто. Насколько мне на практике известно это железо помимо самой ардуино IDE работает только на трёх софт - оболочках avrdudeshell(09.01.2019) ; sinaprog 2.1; avrdudess 2.17(avrdude version 7.3) и то в каждом отдельном случае сначала с настройкой надо позаниматься. Всё три софтинки и под 7кой и под десяткой работают.
Arduino as ISP еще прекрасно работает на PlatformIO в Visual Studio Code. Я на эту среду разработки перешел уже лет 5 как назад и там сижу по сей день (удобно). Но начинал еще лет 10 назад именно с Proteus. Эта прога мне нравится как универсальная среда разработки со своими симулятором, проектировщиком печатных плат, 3D визуализацией с возможностью экспорта STEP, но самое главное с возможностью виртуальной отладки без необходимости покупать дебаггер с ценой до неба. Короче всем она мне удобна на этапе проектирования и отладки отдельных узлов проекта. Вот только ни разу не заливал из нее прошивку напрямую. Вот и ип..сь теперь...
Попробовал с помощью USBasp - то же самое..... Тут уж не приходиться грешить на ардуиновский программатор. Это америкоский институт Labcentr сделал такую систему настройки что крышу может снести... А главное, цуко, никаких ошибок не выдает... хоть бы намёк дала куда копать... Всё Ок и всё прекрасно, только скетч не работает, с помощью SinaProg заливаешь - всё работает...
Добавлено after 27 minutes 40 seconds: И ещё: 1. Proteus генерит hex файл №0 и прошивает его в Attiny; 2. После этого считываю SinaProg Flashe память Attiny и сохраняю в hex файл №1; 3. Прошиваю Attiny тот же hex файл №0 сгенеренный Proteus уже с помощью SinaProg; 4. После этого считываю SinaProg Flashe память Attiny и сохраняю в hex файл №2.
Так вот эти файлы разные как по содержанию так и по объему... Файл №1=2.3Kb (Proteus) Файл №2=2.1Kb (SinaProg) Как прошитый в МК один и тот же файл с помощью разных программ может иметь разный объем и содержание??
Добавлено after 3 minutes 37 seconds: Более того. Если считать SinaProg фьюзы из Attiny после прошивки его Proteus и сравнить с теми что устанавливает при прошивке SinaProg - то они одинаковые! То есть Proteus фьюзы не трогает...
Файл №1=2.3Kb (Proteus) Файл №2=2.1Kb (SinaProg) Как прошитый в МК один и тот же файл с помощью разных программ может иметь разный объем и содержание??
1. Proteus генерит hex файл №0 и прошивает его в Attiny; 2. После этого считываю SinaProg Flashe память Attiny и сохраняю в hex файл №1; 3. Прошиваю Attiny тот же hex файл №0 сгенеренный Proteus уже с помощью SinaProg; 4. После этого считываю SinaProg Flashe память Attiny и сохраняю в hex файл №2.
Ты бы прочитал вначале, подумал, а потом писал бы...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения