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

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

Чт ноя 30, 2023 02:21:51

... Вот моя цель ...:

Подготовка 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:
Изображение
Вложения
blink.zip
(3.23 KiB) Скачиваний: 13

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

Чт ноя 30, 2023 12:42:07

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

Далее ее прошивка (при наличии бутлоадера) выполняется из IDE уже непосредственно (через соответствующий СОМ порт/USB-COM адаптер).
BOB51, То есть бутлодер это такое согласующее связующее звено между микроконтроллером и средой IDE. Без бутлодера программный код из IDE не зашьется в микроконтроллер? Все верно?
Последний раз редактировалось Олегыч1 Чт ноя 30, 2023 13:27:34, всего редактировалось 1 раз.

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

Чт ноя 30, 2023 13:19:16

Бутлоадер это загрузчик по интерфейсу 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

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

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

Чт ноя 30, 2023 14:00:47

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

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

Чт ноя 30, 2023 14:03:16

... Или там без разницы, и в любом виде код будет корректно исполняться? .. это важно, или можно любое здесь выбирать?... Все верно? ...

Попробуйте прочитать день-два ..., раз-10 ... хотя бы основные функции и действия с используемыми программами (в частности: Arduino IDE, работа с ней и т.д). Затем вопросов будет немного или по конкретной проблеме.

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

Чт ноя 30, 2023 14:15:22

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

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

Чт ноя 30, 2023 14:32:24

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

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

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

Чт ноя 30, 2023 15:25:47

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

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

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

Чт ноя 30, 2023 15:44:50

... Непонятно, для чего резистор в схеме ...

При желании добавьте внешний 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.
Последний раз редактировалось veso74 Чт ноя 30, 2023 15:55:23, всего редактировалось 2 раз(а).

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

Чт ноя 30, 2023 15:51:09

Извиняюсь, разобрался. Попробовал на программаторе USBasp замкнуть джампер (JP3). Он понижает скорость. И все пошло!) Урраа :music: Ситуация проясняется :beer:

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

Чт ноя 30, 2023 20:26:10

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

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

Чт ноя 30, 2023 21:32:06

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

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

Пт дек 01, 2023 05:51:37

...(для штатной платформы arduino nano достаточно выбрать "процессор atmea328p old bootloader")...


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

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

Пт дек 01, 2023 11:48:27

Проверяем настройку 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

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

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

Пн дек 04, 2023 18:36:09

Если выбран режим работы с бутлоадером то "записать загрузчик" запишет и фузы и бутлоадер - далее снимаем программатор,подключаем самоделку через СОМ, перезагружаем 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

BOB51, Спасибище!) :beer:
Ответить