Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить

Прикол с сигнатурой контроллера

Сб янв 28, 2023 14:09:53

Вот с такой проблемкой столкнулся.

В работе над проектом всегда использовал платки Arduino Nano c МК atmega328p. Работа в командной строке или с недавних пор в среде Arduino IDE. Платки сразу перешивал Optiboot. Проблем не было от слова "совсем".
Теперь решился добавить поддержку МК atmega48/88/168. Последние 2 поддерживают начальный загрузчик.
Купил на Алике всё, что надо для экспериментов. Плату Arduino Nano на МК atmega168p прошил Optiboot. В системе Arduino IDE выбрал МК atmega168 (atmega168p не было почему то). Компиляция прошла, а запись в чип повисла.

Вернулся в режим командной строки. И вот что заметил -
1. При работе с программатором USB ISP всё работает как надо. И шьются и читается. Сигнатура чипа корректная - 0x1E940B.
Изображение

2. При работе через загрузчик получаем некорректное значение сигнатуры - 0x1E9406. Поэтому и Arduino IDE теряется наверное.
avrdude.exe -v -p m168p -c arduino -P COM4 -b 115200 -D -U flash:w:"main.hex":i
Изображение
и пока процессор m168p не заменить на m168 или ключик -F не добавить - ничего не получается.

Логика подсказывает, что если проблема в "лыжах" , то это Optiboot шалит или avrdude. Я не прав? И самое интересное, как Arduino IDE всё это объяснить?

Re: Прикол с сигнатурой контроллера

Вс янв 29, 2023 10:34:42

При прошивке через загрузчик, загрузчик передает на ПК не реальную сигнатуру, а ту, которую вы записали при прошивке загрузчика. Вы прошивали как 168 поэтому загрузчик и представляется как 168.
При прошивке через ISP вы получаете реальную сигнатуру.

Re: Прикол с сигнатурой контроллера

Вс янв 29, 2023 15:00:48

Потому что в IDE нет 168p! Добавьте секцию в boards.txt, либо измените сигнатуру в 168 секции. Либо -F добавляйте, как вы добавляете, только это не очень.)

Re: Прикол с сигнатурой контроллера

Пт фев 03, 2023 11:48:51

В базовом наборе "по умолчанию" 168я есть для платок ардуино-нано, про-мини и "NG or older".
Но там используется "старый" бутлоадер (есть в составе IDE).
Для АВРок "с буковками"(Р,РА,РВ) нужно добавить в IDE платформы(платы) от MCUdude (MinyCore) или
DIY Atmega8/88/48/168/328.
Вместе с теми платформами будут загружены и соответствующие версии бутлоадеров и комплектов фузе бит (для проршивки через внешний ISP программатор при выполнении "инструменты -> записать загрузчик").
Строчки для менеджера плат (файл - настройки - дополнительные настройки для менеджера плат):
Код:
https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json

и
Код:
https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_atmega8_series_index.json

8)

Re: Прикол с сигнатурой контроллера

Пт фев 03, 2023 12:36:44

....

Да нашел я всё это, кроме встроенного 168 - еще раз погляжу для интереса.
С подключенным MinyCore к Arduino IDE последняя не стала компилировать программу. В программе заморочка с вызовом функции по указателю. Возвращаю Arduino Nano на процессоре 328p - пожалуйста вам компиляция. Разбираться не стал.
В итоге "забил" на использование Arduino IDE в своей задаче на процессоре ниже чем 328p, тем более что размер кода большеват получается. В 168 еще туда-сюда еще, в 88 с ограничениями, а в 48 - только без канала связи UART. Возвращаюсь на асм! Там все работает, главное в фьюзах не ошибиться.

Re: Прикол с сигнатурой контроллера

Пт фев 03, 2023 13:59:30

Для "иных" АВРок следует учитывать их особенности.
Размеры ПЗУ/ОЗУ и аппаратной начинки.
Дополнительно особенностями являются как бутлоадер, так и набор фузов для каждой конкретной модификации платформы (их авторы платформ добавляют в инсталляторы для последующей интеграции в IDE).
8)
Ответить