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

Re: Вопросы по загрузчику

Чт дек 08, 2022 17:30:18

BOB51 писал(а):Но оно завязано на IDE, для "автономного" применения не годиться.

Почему не годится?

Я пока бегло прочёл, суть примерно следующая:
1. Arduino IDE -> File -> Examples -> ArduinoISP - готовое приложение-программатор, превращающее плату Arduino в программатор. Только этот этап завязан на Arduino IDE.
2. Компилируем прошивку, например, для Attiny13 в avrasm2 или avr-gcc, получаем hex-файл.
3. Подключаем микросхему Attiny13 к "программатору", выводы указаны в самом примере.
4. Прошиваем Attiny13 при помощи avrdude.

Неясно только как плата Arduino поймёт: прошивать себя или Attiny13? Тут определённо есть какая-то хитрость. :)
А может я и сильно ошибаюсь.

Добавлено after 3 minutes 2 seconds:
veso74, спасибо. )) Я как раз набирал пост об этом.

А как это реализовать без GUI в обычном avrdude?

Re: Вопросы по загрузчику

Чт дек 08, 2022 17:33:32

Узнайте, как устроена командная строка в avrdude.
https://www.cs.ou.edu/~fagg/classes/gen ... vrdude.pdf

В то время как, напр. USB порты и напр. и имя файла меняются, мне это не удобно.
Часть ком. строка видна на скриншоте.

Re: Вопросы по загрузчику

Чт дек 08, 2022 18:01:12

Вот строка из приложений поста ранее для прошивки самого Arduino:
avrdude -v -p atmega328p -c arduino -P COM4 -b 115200 -D -U flash:w:"main.hex":i

-p atmega328p - тип МК
-c arduino - тип программатора
-P COM4 - имя виртуального COM-порта
-b 115200 - скорость передачи
-D -U - устанавливает сброс памяти программ (загрузчик, получается, не задевает?)
flash:w:"main.hex":i - "в флэш-память записать main.hex в формате Intel Hex"

В строке из Avrdudess разница в типе МК и скорости...
Странно, я ожидал что тип программатора тоже будет другим: avrisp. Всё-таки Arduino его функцию выполняет.

Тогда разница получается в скорости. То есть на 115200 программа пишется в МК платы Arduino, а при 19200 программа проходит к целевой микросхеме?

Re: Вопросы по загрузчику

Чт дек 08, 2022 21:40:51

Неужели Siprog для СОМ порта материнки ПК и софт-оболочки аврдудешелл так сложно сделать?
Там ведь особо и деталюшек то не требуется.
8)

Re: Вопросы по загрузчику

Чт дек 08, 2022 22:15:39

BOB51 писал(а):Неужели Siprog для СОМ порта материнки ПК и софт-оболочки аврдудешелл так сложно сделать?

У меня только ноутбук, кроме USB портов нет. :( Поэтому какой-то мост всё равно делать придётся.

Немного не по теме:

Re: Вопросы по загрузчику

Чт дек 08, 2022 23:41:07

Любая из имеющихся в продаже платок для адуринки - там минимум четыре разных варианта микросхем встречаются.
Можно и платку с ftdi поставить (она же бывает под торговой маркой "пиранья"(piranha)).
Вроде даже было чегось на ее основе в качестве программатора...
:roll:

Re: Вопросы по загрузчику

Пт дек 09, 2022 14:30:25

Вот строка из приложений поста ранее для прошивки самого Arduino:
avrdude -v -p atmega328p -c arduino -P COM4 -b 115200 -D -U flash:w:"main.hex":i

-p atmega328p - тип МК
-c arduino - тип программатора
-P COM4 - имя виртуального COM-порта
-b 115200 - скорость передачи
-D -U - устанавливает сброс памяти программ (загрузчик, получается, не задевает?)
flash:w:"main.hex":i - "в флэш-память записать main.hex в формате Intel Hex"

В строке из Avrdudess разница в типе МК и скорости...
Странно, я ожидал что тип программатора тоже будет другим: avrisp. Всё-таки Arduino его функцию выполняет.

Тогда разница получается в скорости. То есть на 115200 программа пишется в МК платы Arduino, а при 19200 программа проходит к целевой микросхеме?

"atmega328p" ="m328p"
Загрузчик arduino (bootloader) не задевает и не может задеть сам себя - аппаратные ограничения.
"Avrisp" - не знаю такого ключа для avrdude и не использовал. Использовал еще "Usbasp" - это про другой программатор, который работает как мост USB - ISP и ему на загрузчик ардуино "до ентого места", ибо только и он и может этот bootloader перезаписать. Только железку надо докупать или из еще одной Arduino делать такой программатор (выше писали про это).

А вот со скоростью работы загрузчика "arduino" есть тонкость. Вроде так там дела - все брендовые Ардуинки, и аналоги, прошитые Optiboot работают на 115200. Аналоги Nano и Pro mini, купленные в Китае обычно имели "старый" bootloader и работали на 57600. Других скоростей bootloader прока еще не видел.
Сам встроенный мост USB-UART (не важно какой фирмы) не имеет своей скорости и работает на скорости UART, которую задает bootloader.
После того как Ваша программа получит управления можете поставить любую другую скорость для общения с компом для Ваших целей.
Ответить