Страница 6 из 18

Re: Arduino IDE в вопросах и ответах

Добавлено: Чт ноя 30, 2023 02:21:51
veso74
[uquote="Олегыч1",url="/forum/viewtopic.php?p=4509828#p4509828"]... Вот моя цель ...:[/uquote]
Подготовка Arduino (в моем случае: UNO) как программатор: запись ArduinoISP:
Изображение Изображение
---
Тестовой прогр. код за ATmega8A (Internal 8 MHz): blink на 0 (PD0), скомпилирован с помощью Arduino IDE и MiniCore:

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

void setup() {
  pinMode(0, OUTPUT);  // 0, PD0
}

void loop() {
  digitalWrite(0, HIGH);
  delay(100);

  digitalWrite(0, LOW);
  delay(100);
}
В папке появляются два файла: blink.ino.with_bootloader_atmega8_8000000L.hex и blink.ino_atmega8_8000000L.hex
---
Запись ATmega8A с использованием Arduino как программатора и avrdudess_2.14_portable:
Изображение
Соответствующий МК (ATmega8A) обнаруживается и устанавливается для дальнейшего управления.

Читаем фюзы, (при необходимости меняем), загружаем файл записи, записываем:
Изображение
---
Схема подключения:
Изображение

Результат: LED blink на PD0 в ATmega8A:
Изображение

Re: Arduino IDE в вопросах и ответах

Добавлено: Чт ноя 30, 2023 12:42:07
Олегыч1
veso74, В целом все понятно. Но хотелось бы уточнить:
1) подтягивающий резистор R2 обязателен?
2) У Вас на картинке справа в выпадающем окне установлено "Программатор: ISP MKII" - это важно, или можно любое здесь выбирать? Я думал, что это же как раз и надо выбирать в AVRDUDESS в меню программатор (вместо arduino). Или нет?
3) Что выставлять в меню "тип"?, например при чтении. Без этого выставления (то есть на авто) - чтение не происходит, вернее оно происходит, но никуда не сохраняется. От того, что я здесь выбираю зависит какая будет прошивка на выходе. Вс еони отличаются между собой. Какую надо выбрать, чтобы в будущем можно было ее снова записать в целевой МК? Или там без разницы, и в любом виде код будет корректно исполняться?
Далее ее прошивка (при наличии бутлоадера) выполняется из IDE уже непосредственно (через соответствующий СОМ порт/USB-COM адаптер).
BOB51, То есть бутлодер это такое согласующее связующее звено между микроконтроллером и средой IDE. Без бутлодера программный код из IDE не зашьется в микроконтроллер? Все верно?

Re: Arduino IDE в вопросах и ответах

Добавлено: Чт ноя 30, 2023 13:19:16
BOB51
Бутлоадер это загрузчик по интерфейсу RS232 (СОМ или USB-COM), который принят в качестве основного для ардуинок. Использует линии RxD, TxD и reset МК.
Применяется для удобства перезагрузки из IDE без аппаратного специализированного программатора.
В то же время IDE поддерживает и непосредственную загрузку по ISP аналогичную стандартной перепрошивке АВРок (это как раз наш ардуиноISP).
:write:
Большой плюсик veso74 за сообщения о софтинке (avrdudess).
:hunger:
Добавлю только что с тем же железом (arduinoISP на основе ардуино нано) и тех же настроек (программатор - "arduino" , скорость - 19200) работает и софт-оболочка SinaProg 2.1.1.
:beer:

Re: Arduino IDE в вопросах и ответах

Добавлено: Чт ноя 30, 2023 13:43:45
Олегыч1
BOB51, до конце немного не допонимаю... Получается бутлодер это что-то вроде драйвера, с помощью которого среда IDE понимает, что к ней подключили не просто какой-то одиночный МК, а целую плату (конкретную, специальную, в нашем случае ардуино нано), в которой уже для нашего удобства настроены и подписаны пины. Верно понимаю?
Это своего рода маленький прогрммный код, который вписан в микроконтроллер помимо основной прошивки, и который считывается в самую первую очередь при подключении девайса к ПК. Все так?

Re: Arduino IDE в вопросах и ответах

Добавлено: Чт ноя 30, 2023 14:00:47
BOB51
Не совсем так...
бутлоадер - специальная прожка в ПЗУ МК, которая использует возможности аппаратно - программного самопрограммирования через произвольно выбранный протокол обмена.
Естественно софт-оболочка в ПК должна знать данный протокол.
О том, что там на платке помимо самого МК протокол обмена софт-оболочки не ведает.
Его задача только корректно переслать данные из ПК в МК (скормить бутлоадеру), а уже бутлоадер произведет перезапись программы МК в его ПЗУ.

Re: Arduino IDE в вопросах и ответах

Добавлено: Чт ноя 30, 2023 14:03:16
veso74
[uquote="Олегыч1",url="/forum/viewtopic.php?p=4510331#p4510331"]... Или там без разницы, и в любом виде код будет корректно исполняться? .. это важно, или можно любое здесь выбирать?... Все верно? ...[/uquote]
Попробуйте прочитать день-два ..., раз-10 ... хотя бы основные функции и действия с используемыми программами (в частности: Arduino IDE, работа с ней и т.д). Затем вопросов будет немного или по конкретной проблеме.

Re: Arduino IDE в вопросах и ответах

Добавлено: Чт ноя 30, 2023 14:15:22
BOB51
Работа с ардуиноIDE предусматривает огромное число вариантов.
Каждый вариант требует более конкретного обсуждения соответственно с задачами и целями проекта.
Посему и предлагал ранее перейти к конкретике или в отдельной ветке , которая тому конкретному проекту посвящена будет или к моему "миксу" в котуинке.
Предложение сохраняется.
Пока посмотрю распиновку платформ на базе атмеги8/8А, дабы уточнить нет ли разночтений/платформозависимых вариантов раскладок в отличии от базовой NG.
8)

Re: Arduino IDE в вопросах и ответах

Добавлено: Чт ноя 30, 2023 14:32:24
Олегыч1
https://img.radiokot.ru/files/69291/3b1zcfk0ii.gif
без подключения конденсатора между RESET ардуино (которая в роли программатора ISP) и GND - не определяется. 10 мкФ - всегда стабильно определяется. А резистор - так и не понимаю за чем нужен.

Добавлено after 7 minutes 27 seconds:
Посему и предлагал ранее перейти к конкретике или в отдельной ветке , которая тому конкретному проекту посвящена будет или к моему "миксу" в котуинке.
Предложение сохраняется.
BOB51, Спасибо :beer: У меня пока что нет конкретики. На данном этапе пытаюсь расставить все точки над "И", разобраться с функционалом IDE и ардуино. Ну и на конкретных примерах все проверить. :tea:

Re: Arduino IDE в вопросах и ответах

Добавлено: Чт ноя 30, 2023 14:49:06
BOB51
Конденсатор (или перерезание дорожки после записи в нанку программы, превращающей ее в ардуино ISPпрограмматор) требуется для блокировки запуска бутлоадера на платке из которой тот программатор сделан.
У нас ведь один канал связи используется как для бутлоадера так и для программатора.
Но теперь нанка должна выполнять уже роль программатора (промежуточное звено между IDE и целевой платкой), а не перезаписываться посылаемым из IDE кодом.

Re: Arduino IDE в вопросах и ответах

Добавлено: Чт ноя 30, 2023 15:25:47
Олегыч1
BOB51, С конденсатором разобрался. Непонятно, для чего резистор в схемеveso74. И еще очень интересный момент возникает. Допустим мне нужно записать прошивку в целевой микроконтроллер (Атмега8) с помощью программатора USBasp. Могу ли я через среду IDE такое осуществить? Дело в том, что там в меню "инструменты" - "программатор" есть выбор для USBasp. Но при прошивке возникат вот такая ошибка в логе:
Спойлер: Version 7.2-arduino.1
Copyright the AVRDUDE authors;
see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

System wide configuration file is C:\Users\Oleg\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.0\avrdude.conf

Using Port : usb
Using Programmer : usbasp
AVR Part : ATmega8
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : possible i/o
RETRY pulse : SCK
Serial program mode : yes
Parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Alias Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 4 20 128 0 no 512 4 0 9000 9000 0xff 0xff
flash 33 10 64 0 yes 8192 64 128 4500 4500 0xff 0x00
lfuse 0 0 0 0 no 1 1 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 1 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 1 0 4500 4500 0x00 0x00
signature 0 0 0 0 no 3 1 0 0 0 0x00 0x00
calibration 0 0 0 0 no 4 1 0 0 0 0x00 0x00

Programmer Type : usbasp
Description : USBasp ISP and TPI programmer
avrdude: auto set sck period (because given equals null)
avrdude usbasp_spi_program_enable() error: program enable: target does not answer (0x01)
avrdude main() error: initialization failed, rc=-1
- double check the connections and try again
- use -B to set lower the bit clock frequency, e.g. -B 125kHz
- use -F to override this check

avrdude done. Thank you.

Failed programming: uploading error: exit status 1
Что делаю не так?
---------------------------------------------
Или надо сначала записать загрузчик? Он запишется в целевой МК (атмега8), или в программатор USBasp?

Re: Arduino IDE в вопросах и ответах

Добавлено: Чт ноя 30, 2023 15:39:49
BOB51
Я с дополнительными программаторами (по тому выпадающему списку) не занимался - смысла нету.
Однако есть одна особенность IDE - сначала к ПК подсоединяем платку (программатор или саму ардуинку для проекта), а уж затем запускаем IDE.
Иначе может быть сбой в обнаружении платки(программатора).
При работе через программатор ISP запись загрузчика требуется только для установки фузов или в случае, если в дальнейшем предусматривается его использование.
Зависит от типа МК и задач.
В аттини2313 или аттини13 и так места мало - вот в таких случаях и работаем без бутлоадера.
В "более жирных" АВРках удобнее с бутлоадером - все по обстоятельствам и проекту.

Re: Arduino IDE в вопросах и ответах

Добавлено: Чт ноя 30, 2023 15:44:50
veso74
[uquote="Олегыч1",url="/forum/viewtopic.php?p=4510480#p4510480"]... Непонятно, для чего резистор в схеме ...[/uquote]
При желании добавьте внешний pull-up резистор к RESET. У некоторых МК и типы МК они есть, у некоторых нет. Иногда по привычке, иногда по инерции, устанавливаю на всех 1k..4,7k..10k. А внутренние резисторы имеют относительно высокое сопротивление (30..80k), с недостатками этого для работа в грязной среде, пыли, высокие EMI и т.д.
---
Некоторые версии Arduino IDE имеют несовместимость, в том числе между версиями ОС winXP, win7, win10. Так что попробуйте. Tоже была проблема с записью через USBasp чрез Arduino IDE. С USBasp мне проще использовать внешняя программа записи, а hex файл генерируется из Arduino IDE одним нажатием кнопки и для ATmega8, и для ATtiny13A ... и для напр. АТmega1609.

Re: Arduino IDE в вопросах и ответах

Добавлено: Чт ноя 30, 2023 15:51:09
Олегыч1
Извиняюсь, разобрался. Попробовал на программаторе USBasp замкнуть джампер (JP3). Он понижает скорость. И все пошло!) Урраа :music: Ситуация проясняется :beer:

Re: Arduino IDE в вопросах и ответах

Добавлено: Чт ноя 30, 2023 20:26:10
samand587
Всем привет! :beer: Скажите, пожалуйста, как заливается в ардуино ИДЕ загрузчик для АТмега 328Р 16 мГц через ISP программатор? Спасибо!

Re: Arduino IDE в вопросах и ответах

Добавлено: Чт ноя 30, 2023 21:32:06
BOB51
Из самой ардуино IDE
Через ардуиноISP программатор
практически все на вкладке "инструменты"
опции выставляются согласно применяемой платформы
(для штатной платформы arduino nano достаточно выбрать "процессор atmea328p old bootloader")
Устанавливаем порт ПК, к которому подключен программатор
Устанавливаем программатор "arduino as ISP"
и далее жмем "записать загрузчик"
Можно также использовать железо других программаторов, указанных в соответствующем списке на вкладке IDE.

Re: Arduino IDE в вопросах и ответах

Добавлено: Пт дек 01, 2023 05:51:37
samand587
[uquote="BOB51",url="/forum/viewtopic.php?p=4510750#p4510750"]...(для штатной платформы arduino nano достаточно выбрать "процессор atmea328p old bootloader")...[/uquote]

Питание будет от аккумулятора 3,7 В и тактирование от внешнего кварца 16мГц. Какие тут изменения вносить в настройках Ардуино ИДЕ? :dont_know:

Re: Arduino IDE в вопросах и ответах

Добавлено: Пт дек 01, 2023 11:48:27
BOB51
Проверяем настройку BOD фузов на "внешнем программаторе" и выставляем соответственно либо ниже минимума питающего напряжения, либо отключаем BOD (на усмотрение автора проекта).
Если настройки платформы позволяют сделать коррекцию BOD фузов
(DIY atmega8_48_88_168_328 версия 2022.3.12, GyverCore версия 2.0.4, MCUdude MiniCore версия 3.0.0) - то делаем коррекцию там и затем "записать загрузчик" через ардуиноISP программатор для корректной смены настроек фузов.
8)

Re: Arduino IDE в вопросах и ответах

Добавлено: Пн дек 04, 2023 17:53:06
Олегыч1
Уважаемые радиокоты, снова назрел небольшой вопросик. Для того, чтобы прошить внешний МК (Атмега 8 ) через среду IDE, подключаю программатор USBasp. За тем в среде IDE выбираю Атмега8, жму "записать загрузчик". После этого я могу заливать во внешний МК скетч через среду IDE с помощью стороннего программатора.
Вопрос: опцией "монитор порта" я уже значит не могу пользоваться, верно? Или как-то можно все-таки?
Для понимания, моя цель попробовать вывести текст на внешний дисплейчик (SSD1306 128х64), и зашить эту прошивку на внешний МК Атмега8. Когда я вливал скетч с текстом на плату Ардуино, то дисплей исправно все отображал. Но перед заливкой этого скетча я сначала заливал скетч - "сканер I2C", для того, чтобы через монитор порта увидеть адрес шины дисплея (не знаю зачем правда, но делал все по образцу). И потом уже в основной скетч (отображение текста на дисплее) прописывал этот адрес.
А вот в случае с внешним МК (я же ведь через программатор пытаюсь влить) монитор порта программатора не определяется, потому что он не COM, а USB в диспетчере устройств.
Подскажите пожалуйста, как правильно реализовать мою задачу?

Re: Arduino IDE в вопросах и ответах

Добавлено: Пн дек 04, 2023 18:36:09
BOB51
Если выбран режим работы с бутлоадером то "записать загрузчик" запишет и фузы и бутлоадер - далее снимаем программатор,подключаем самоделку через СОМ, перезагружаем IDE и работаем с IDE через СОМ порт (переходник COM-TTL).
Одновременно становится доступным и монитор порта и плоттер IDE.
Это самый простой случай.
В Вашем случае (если самоделка правильно выполнена и оснащена аппаратным СОМ-TTL переходником как положено самоделкам)
подсоединяем к ПК программатор
подсоединяем к программатору по iSP самоделку
запускаем IDE
загружаем фузы и бутлоадер (записать загрузчик)
закрываем IDE
отсоединяем программатор и самоделку
подсоединяем самоделку к ПК через СОМ порт (или переходник USB-COM)
запускаем IDE и работаем с самоделкой как с ардуинкой.
:hunger:
Вариант жестче - ПЗУ мало, бутлоадера нету.
подсоединить программатор к ПК, самоделку по ISP к программатору
запустить IDE
загрузить фузы (записать загрузчик)
загрузить нужный для работы скотч в IDE и нажать "скетч -> загрузить через программатор"
в данном случае бутлоадер (даже ежли он и был в МК) будет затерт!!.
далее закрываем IDE, подсоединяем самоделку к СОМ порту (если было заложено в скотче его использование) и работаем.
Есть третий вариант - загрузка *.hex файла через "стороннюю софт-оболочку" - но то уж совсем садомазохизьмо будет...
8)

Re: Arduino IDE в вопросах и ответах

Добавлено: Пн дек 04, 2023 19:47:19
Олегыч1
BOB51, Спасибище!) :beer: