Proteus не прошивается реальный Attiny13

Обсуждаем контроллеры компании Atmel.
Ответить
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Сообщение dds7sdd »

Приветствую!

Создал проект в 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.

Меню "Настройки проекта":

Изображение

Вывод AVRDUDE при компиляции и прошивке:

Компиляция:
Спойлерavr-gcc.exe -Wall -gdwarf-2 -fsigned-char -MD -MP -DF_CPU=9600000 -O1 -mmcu=attiny13 -o "main.o" -c "../main.c"
avr-gcc.exe -mmcu=attiny13 -o "./Debug.elf" "main.o"
avr-objcopy -O ihex -R .eeprom "./Debug.elf" "./Debug.hex"
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex "./Debug.elf" "./Debug.eep" || exit 0
Compiled successfully.
Прошивка:
СпойлерFirmware is already compiled.

Uploading firmware 'Debug.elf'


avrdude.exe: AVR device initialized and ready to accept instructions
avrdude.exe: Device signature = 0x1e9007 (probably t13)
avrdude.exe: reading input file "C:/Users/DYDUS~1/AppData/Local/Temp/VSM Studio/642938b1af024983babf0b4bc6600470/ATTINY13_1/Debug/Debug.elf"
avrdude.exe: writing flash (970 bytes):
avrdude.exe: 970 bytes of flash written

avrdude.exe done. Thank you.
Firmware upload COMPLETE.
Есть еще вкладка "Options" в меню свойств проекта и там как раз можно прописать команды AVRDUDE, но я так и не разобрался как это сделать. В туториалах о ней ни слова...

Изображение

В общем просьба подсказать куда копать и вообще работает ли корректно эта опция.
Реклама
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария

Сообщение veso74 »

На какой частоте должен работать проектный МК? По умолчанию фюзов ATtiny13A установлены на 9,6/8 = 1,2 MHz.
Контактная информация:
Реклама
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Сообщение dds7sdd »

Проектная - 9.6MHz. В симуляторе выставлен делитель на 8 в fuse бит CLKDIV8. Но в настройках проекта в пункте "Clock for delays" установлено 9.6MHz. Именно из этого пункта берётся значение частоты при прошивке реального МК. Об этом написано в мануале, ссылку на который я приводил выше (стр. 72).
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария

Сообщение veso74 »

Я не уверен, что Proteus поменяет фюзов МК. С Arduino в качестве программатора и, напр. AVRDUDESS запишите LF в 0x7A (9,6 MHz) и затем повторит попытку. Для эксперимента можно заранее прочитать LF в ATtiny13A?
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Сообщение dds7sdd »

А причем здесь частота? Ну пусть даже выставлен делитель на 8 в фьюзах и частота будет 1.2, но тот же блинк бы запустился и я увидел бы его работу.
Почти уже разобрался с этой вкладкой "Options"... Попробую прописать там команды из AVRDUDE Prog (хоть и через задницу там все это делается).
Реклама
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Сообщение dds7sdd »

Проверил на ATmega8 и ATmega328 - то же самое. Процес прошивки удачно завершается но МК не работают.
Реклама
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария

Сообщение veso74 »

Попробуйте внешнюю программу записи (известную вам), чтобы записать hex скомпилированный из Proteus. По методу выключения узнаете, правильно ли Proteus компилирует или записывает некорректно (напр. нужны дополнительные настройки).
Контактная информация:
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Сообщение dds7sdd »

Странно... То ли я спутанно пишу или недоходчиво объясняю... То ли... Скорее да, не правильно построил предложение.
Вот здесь я написал что скомпилированную Proteus прошивку в debug.hex файл успешно прошиваю в микроконтроллер с помощью AVRDUDE Prog и SinaProg.
[uquote="dds7sdd",url="/forum/viewtopic.php?p=4585823#p4585823"]Полученный debug.hex опять же без проблем заливается через Arduino nano (Arduino as ISP) программами AVRDUDE Prog и SinaProg.[/uquote]
То есть Proteus генерит hex файл, я его прошиваю SinaProg с фьюзами по умолчанию и всё работает.
Неработает когда я пытаюсь это же hex файл прошить самим Proteus-ом.
OKF
Это не хвост, это антенна
Сообщения: 1431
Зарегистрирован: Вт июн 07, 2011 08:03:18

Сообщение OKF »

Только запускаемый из Протеуса Avrdude использует elf, а не hex.
avrdude.exe: reading input file "C:/Users/DYDUS~1/AppData/Local/Temp/VSM Studio/642938b1af024983babf0b4bc6600470/ATTINY13_1/Debug/Debug.elf
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Сообщение dds7sdd »

Согласен! Не выбрал пункт Release, но это всеравно не решает проблему.
Вот лог Proteus при режиме Release. Здесь уже в контроллер льется hex файл.
Микроконтроллер не работает.
Спойлерavr-gcc.exe -Wall -gdwarf-2 -fsigned-char -MD -MP -DF_CPU=9600000 -Os -mmcu=attiny13 -o "main.o" -c "../main.c"
avr-gcc.exe -mmcu=attiny13 -o "./Release.elf" "main.o"
avr-objcopy -O ihex -R .eeprom "./Release.elf" "./Release.hex"
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex "./Release.elf" "./Release.eep" || exit 0
cp "Release.hex" "C:/Users/Dyud/Documents/ATTINY13_1.hex"
Compiled successfully.

Uploading firmware 'Release.hex'


avrdude.exe: AVR device initialized and ready to accept instructions
avrdude.exe: Device signature = 0x1e9007 (probably t13)
avrdude.exe: reading input file "C:/Users/DYADUS~1/AppData/Local/Temp/VSM Studio/642938b1af024983babf0b4bc6600470/ATTINY13_1/Release/Release.hex"
avrdude.exe: writing flash (926 bytes):
avrdude.exe: 926 bytes of flash written

avrdude.exe done. Thank you.
Firmware upload COMPLETE.
А вот лог программы 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

Reading | ################################################## | 100% 0.00s

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):

Writing | ################################################## | 100% 1.81s

avrdude: 890 bytes of flash written
avrdude: verifying flash memory against Release.hex:
avrdude: load data flash data from input file Release.hex:
avrdude: input file Release.hex auto detected as Intel Hex
avrdude: input file Release.hex contains 890 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.73s

avrdude: verifying ...
avrdude: 890 bytes of flash verified

avrdude done. Thank you.
Друг Кота
Аватара пользователя
Сообщения: 15697
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

А у того протеуса есть вкладка установки программатора вида "Arduino as ISP" ?... (Это корректное название для железяки на основе ардуино нано и скотча из примеров ардуино IDE для установки в использующих его софт- оболочках).
Не всё варианты "оболочек" на базе аврдуде имеют соответствующую поддержку данного "железа".
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Сообщение dds7sdd »

BOB51 Ну а как еще интерпретировать опции программатора выбираемые в меню "Настройки проекта" (первый скрин из моего первого поста)?
Первые три пункта там это семейство и тип микроконтроллера в который заливается прошивка.
А далее пункт "Programmer" - программа для прошивки (AVRDUDE) и пункт "Interface" c возможностью выбрать только Arduino uno, nano, 328p, и USBasp как бы намекает что в этом пункте выбирается программатор. А какой еще может быть программатор на базе Arduino nano кроме Arduino as ISP? Я таких не знаю...
Короче, попробую еще найти свисток USBasp и прошиться через него для экскремента. Правда с этой приблудой на Windows 10 я еще не работал. Полагаю будут тоже грабли...
Друг Кота
Аватара пользователя
Сообщения: 15697
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

С "ардуино as ISP" не так всё просто.
Насколько мне на практике известно это железо помимо самой
ардуино IDE работает только на трёх софт - оболочках
avrdudeshell(09.01.2019) ;
sinaprog 2.1;
avrdudess 2.17(avrdude version 7.3)
и то в каждом отдельном случае сначала с настройкой надо позаниматься.
Всё три софтинки и под 7кой и под десяткой работают.
8)
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Сообщение dds7sdd »

Arduino as ISP еще прекрасно работает на PlatformIO в Visual Studio Code. Я на эту среду разработки перешел уже лет 5 как назад и там сижу по сей день (удобно).
Но начинал еще лет 10 назад именно с Proteus. Эта прога мне нравится как универсальная среда разработки со своими симулятором, проектировщиком печатных плат, 3D визуализацией с возможностью экспорта STEP, но самое главное с возможностью виртуальной отладки без необходимости покупать дебаггер с ценой до неба.
Короче всем она мне удобна на этапе проектирования и отладки отдельных узлов проекта. Вот только ни разу не заливал из нее прошивку напрямую.
Вот и ип..сь теперь...
Друг Кота
Аватара пользователя
Сообщения: 15697
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Так есть и другое железко...
Тот же siprog или ещё чего.
Тут уж или привычная среда разработки с соответствующими её требованиям инструментами или....
8)
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Сообщение dds7sdd »

Попробовал с помощью 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 фьюзы не трогает...
OKF
Это не хвост, это антенна
Сообщения: 1431
Зарегистрирован: Вт июн 07, 2011 08:03:18

Сообщение OKF »

[uquote="dds7sdd",url="/forum/viewtopic.php?p=4586703#p4586703"]Файл №1=2.3Kb (Proteus)
Файл №2=2.1Kb (SinaProg)
Как прошитый в МК один и тот же файл с помощью разных программ может иметь разный объем и содержание??[/uquote]
Ты бы посмотрел сначала, а потом спрашивал, не?
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Сообщение dds7sdd »

[uquote="dds7sdd",url="/forum/viewtopic.php?p=4586703#p4586703"]1. Proteus генерит hex файл №0 и прошивает его в Attiny;
2. После этого считываю SinaProg Flashe память Attiny и сохраняю в hex файл №1;
3. Прошиваю Attiny тот же hex файл №0 сгенеренный Proteus уже с помощью SinaProg;
4. После этого считываю SinaProg Flashe память Attiny и сохраняю в hex файл №2.[/uquote]

Ты бы прочитал вначале, подумал, а потом писал бы...
Модератор
Аватара пользователя
Сообщения: 19077
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

dds7sdd, тебе правильно подсказали, что нужно посмотреть и сравнить содержимое обоих файлов, и найти, в чем разница.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Друг Кота
Аватара пользователя
Сообщения: 15697
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Вроде для тини13 бутлоадер не предусматривается...
:roll:
Ответить

Вернуться в «AVR»