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

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

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

Сообщение dds7sdd »

Starichok51, Это всё классно конечно, но как посмотреть и сравнить? Мне что их декомпилировать? Даже если так то я в ассемблере ничего не понимаю... Открыл в HEX редакторе и особо сравнивать мне там нечего...
Полагаю тут нужно настройки компилятора в Proteus курить чем разбираться в его выходных файлах.
Реклама
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

Для теста открыл среду писания кода в Proteus, скопировал туда blink для ATtiny13A на Bascom (hi!, это не моя используемая среда). Код успешно компилируется. В среде Proteus не удалось записать МК и моргнуть светодиодом. (В симуляции все ОК). С скомпилированнымhex файлом в AVRDUDESS записал hex в МК и светодиод нормально мигал (PB0). Т.е. В Proteus как-то настроен AVRDUDE, но где можно установить ee настройки не знаю. В папках Proteus-а обновил программу AVRDUDE и ее конфиг файл (на v8.13 была старой). Не помогло.

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

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

Сообщение dds7sdd »

[uquote="veso74",url="/forum/viewtopic.php?p=4586920#p4586920"]В Proteus как-то настроен AVRDUDE, но где можно установить ee настройки не знаю.[/uquote]
Эти настройки есть на вкладке "Options" из меню "Project Settings" (см. второй скрин из моего первого поста).
Я пытался вносить корректировки но там настолько все через ж..опу сделано, что так ничего и не вышло.

А по поводу мазохизма согласен полностью, только я не рассматриваю Proteus как полноценную IDE. Он мне удобен в первую очередь для виртуальной отладки без внешнего отладчика, а так же симуляции, 3D и pcb.
Сколько-нибудь сложные проеты я пишу в PlatformIO, а вот отдельные части проекта предварительно тестирую в Proteus.
dds7sdd
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

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

Сообщение dds7sdd »

Решено!

Как и предполагал проблема была в настройках программы для прошивки AVRDUDE, так как компилятор WinAvr выдавал рабочий HEX файл (проверялось SinaProg).
Почему-то господа в Labcenter решили, что flash-память микроконтроллера перед прошивкой стирать не нужно и в настройках AVRDUDE прописали команду -D (тобишь опцию которая запрещает очистку памяти чипа перед программированием)!
Я ХЗ чем там руководствовались и какие на то были причины (кроме как доставить людям гембель)...
Помимо того, еще прописали команды сокращающие до минимума вывод лога -q и запрет на проверку содержимого памяти при записи -V!
То есть подосрали вдвойне: запретили стирание памяти перед прошивкой и убрали расширенный вывод лога, что бы это нельзя было увидеть!

Короче, правится всё в файле avrdude.xml (путь: \Labcenter Electronics\Proteus 8 Professional\DATA\VSM Studio\programmers\avrdude.xml).
В конце файла настройки AVRDUDE выглядели так:

Код: Выделить всё

<PROCESS TOOL="AVRDUDE" NAME="Program Firmware" ID="PROGRAM" CMDLINE="%OPTIONS% -Uflash:w:%INFILE%">
<FILE TYPE="HEX" NAME=""%INFILE%":i"/>
<FILE TYPE="ELF" NAME=""%INFILE%":e"/>
<OPTION NAME="-D"/>
<OPTION NAME="-V"/>
<OPTION NAME="-q"/>
</PROCESS>
Нафиг убрать строки <OPTION NAME="-D"/>, <OPTION NAME="-V"/><OPTION NAME="-q"/>
Особенно <OPTION NAME="-D"/>!

Как итог:
- Контроллер прошивается непосредственно из Proteus, причем как в режиме Releas (HEX файлом) так и в режиме Debug (ELF файлом);
- Программатор Arduino as ISP - работает.
Всем спасибо за участие!
Реклама
Эиком - электронные компоненты и радиодетали
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

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

Сообщение Martian »

[uquote="dds7sdd",url="/forum/viewtopic.php?p=4587328#p4587328"]Почему-то господа в Labcenter решили, что flash-память микроконтроллера перед прошивкой стирать не нужно[/uquote] а нужно?
Реклама
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

Включил Arduino UNO как ArduinoISP. В Proteus v8.13 редактирование xml файла мне не помогло. Causa perduta ...
---
Просто 2/3 программы держу открытыми (IDE/компилятор для МК, AVRdudess/PicKit Prog, Proteus ...), даже файлы после компиляции обновлять не приходится. Среда сама понимает, что есть новая ревизия и файл hex уже загружен. Нужно только нажать запись в МК или стоп, старт в Proteus.
Реклама
dds7sdd
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

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

Сообщение dds7sdd »

veso74 Приложи здесь файл avrdude.xml
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

Proteus v8.13 SP0 (b31525)
C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\DATA\VSM Studio\programmers\avrdude.xml
Вложения
avrdude.zip
(2.77 КБ) 71 скачивание
dds7sdd
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

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

Сообщение dds7sdd »

Ну так в вашем файле остались те строки о которых я писал нужно удалить.
Во вложении отредактированный файл. Вставьте его вместо вашего.
Вложения
avrdude.zip
(2.76 КБ) 72 скачивания
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

Вложение в моем предыдущем сообщении является оригиналом для Proteus. Вчера отредактировал по указанию из вашем сообщении. Результата не было - ни USBasp, ни Arduino UNO как программатор записал hex в МК. Сегодня вечером попробую с прикрепленным файлом, но не ожидаю результата, потому что я сделал то же самое вчера вечером.
---
Подтверждаю: запись в МК не произошел.

Изображение Изображение Изображение
---
А .bas скомпилирован правильно и после записа .hex с AVRdudess LED мигает.
dds7sdd
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

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

Сообщение dds7sdd »

Так он же пишет что неверный формат выходного файла Debug.obj.
Выберите режим Releas. В этом режиме будет генерироваться выходной файл в формате hex.
У меня все работает. Пришлось скачать BASCOM...
Изображение
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

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

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

Сообщение dds7sdd »

8.13 V0.
Что пишет в режиме Release?
Этот же файл (Release.hex) пробовали прошивать с помощью SinaProg или AVRDUDESS? Прошивается?

Логика поиска решения проблемы простая:

1. Проверяем работу компилятора BASCOM и программатора: в режиме Release компилируем программу. Получившийся Release.hex прошиваем с помощью другой программы (SinaProg например) в микроконтроллер. Если прошивается и работает значит и компилятор и программатор работают, если нет - поменять программатор и разбираться с компилятором;
2. Корректируем файл avrdude.xml (как я писал выше), устанавливаем настройки программатора в меню Project options (программатор, частота МК, порт и скорость работы по нему) и в режиме Release прошиваем микроконтроллер.
Если не получается - смотрим что пишет в логе avrdude и исходя из этой информации решаем проблему дальше.
Последний раз редактировалось dds7sdd Пт июн 07, 2024 11:05:14, всего редактировалось 2 раза.
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

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

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

Сообщение dds7sdd »

Так вы ж не привели лог avrdude в режиме Release.
Не сказать что бы я особо использую Proteus для прошивки микроконтроллера, но иногда мне это было нужно для удобства.
Разобраться же с проблемой был чисто спортивный интерес.
Аватара пользователя
АлександрЛ
Друг Кота
Сообщения: 43885
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

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

Сообщение АлександрЛ »

veso74 писал(а):ОК. Но у меня MK не прошивается.
Как-то раз я "приговорил" десяток Тини13 - они не шились, ни через "5 проводков", ни через "Громова", и ещё пробовал другую самоделку.. Потом ко мне приехал TL866, и он спокойно прошил эти, как бы неисправные, тиньки. :dont_know:
(имхо) все эти "упрощённые" программаторы, всё-таки, "недопрограмматоры". :dont_know:
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

АлександрЛ, исключаю этот вариант. ATtiny13A оригинальные, от проверенного продавца, a с USBasp, ArduinoUNO в качестве программатора и PICkit2 в качестве AVR-программатора, МК прошивается.
---
С win10 прогресс больше :).
############################## | 100% 0.09s

avrdude.exe: 142 bytes of flash written
avrdude.exe: verifying flash memory against C:/Users/.../AppData/Local/Temp/VSM Studio/d89a7a6b5b4645528b925702b42ce474/ATTINY13_1/Release/Release.hex:
avrdude.exe: load data flash data from input file C:/Users/.../AppData/Local/Temp/VSM Studio/d89a7a6b5b4645528b925702b42ce474/ATTINY13_1/Release/Release.hex:
avrdude.exe: input file C:/Users/.../AppData/Local/Temp/VSM Studio/d89a7a6b5b4645528b925702b42ce474/ATTINY13_1/Release/Release.hex contains 142 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% 0.05s

avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x0000
0x08 != 0x09
avrdude.exe: verification error; content mismatch

avrdude.exe done. Thank you.
Error code 1

Firmware upload FAILED.
Но снова неудачно. Думаю, что где-то скорость надо еще уменьшить ...
---
Добавил:
<OPTION NAME="-b " VALUE="19200"/>
Записывается.
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/.../AppData/Local/Temp/VSM Studio/e51a436f924e40958679fda28a2dca9d/ATTINY13_1/Release/Release.hex"
avrdude.exe: writing flash (142 bytes):
avrdude.exe: 142 bytes of flash written

avrdude.exe done. Thank you.
Firmware upload COMPLETE.
Но LED не мигает.
---
Готово :). LED мигает. win10, Proteus v8.13, USBasp из Aliexpress.
<PROCESS TOOL="AVRDUDE" NAME="Program Firmware" ID="PROGRAM" CMDLINE="%OPTIONS% -Uflash:w:%INFILE%">
<FILE TYPE="HEX" NAME=""%INFILE%":i"/>
<FILE TYPE="ELF" NAME=""%INFILE%":e"/>
<OPTION NAME="-D"/>
<OPTION NAME="-V"/>
<OPTION NAME="-q"/>
<OPTION NAME="-e"/>
<OPTION NAME="-b " VALUE="19200"/>

</PROCESS>
Т.е. в оригинала avrdude.xml добавлени добавлены только последние 2 строки: -b и -e.
dds7sdd
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

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

Сообщение dds7sdd »

Странно...

Оба параметра не обязательны.
-e: опция очистки памяти чипа. Обычно её использовать не нужно, потому что очистка FLASH выполняется автоматически перед программированием.
- b: скорость порта. Она же задается в настройках Project options. Для USBasp это только 19200, а для Arduino as ISP может быть до 1000000 (в зависимости от настроек залитого скетча Arduino ISP).

Если вы убрали из файла avrdud.xml строку запрещающую стирание Flash: <OPTION NAME="-D"/>, то добавление строки <OPTION NAME="-e"/> не имеет смысла ибо AVRDUDE стирает флешь автоматически при прошивке.
Так же, если вы указали корректно скорость порта в Project options то и строка <OPTION NAME="-b " VALUE="19200"/> так же не имеет смысла...

Судя по вашей ошибке:

Код: Выделить всё

avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x0000
0x08 != 0x09
в микроконтроллере не были выставлены фьюзы (ядро, загрузчик как угодно).
Либо были физические проблемы с соединением.
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

L Fuse 0x6A и 0x7A попробовал. Не ОК. С соединением МК проблем нет.
Неважно. Оставлю анализ другим.
---
Продолжение, снова позитив: С добавлением указанных 2 строк в avrdude.xml и Arduino Uno как программатор ArduinoISP в Proteus все заработало -
прошивался ATtiny13A, LED мигает :music: .

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

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

Сообщение dds7sdd »

Короче вы таки не убрали <OPTION NAME="-D"/>)))))))))))))))))
И все ваши танцы с бубном именно из-за этого!
<OPTION NAME="-D"/> - запрет на стирание Flash.
<OPTION NAME="-e"/> - разрешение на стирание Flash.
Тоесть вы сначала запрещаете стирание, а затем разрешаете...
Раз 5 писал вам убрать <OPTION NAME="-D"/>, но видимо вам так нравится))
Ответить

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