ARDUINO Программирование (прошивка) arduino из arduino ide с помощью ch341a программатора

demosspro

✩✩✩✩✩✩✩
22 Сен 2021
2
5
Доброго времени суток. Если тема не там где надо - можно перенести, но я за то, чтобы эту информацию разместили в гайды или подходящее место на сайте. Может даже в статье о прошивке бутлодера и giver core.
-
Всем известно. что для прошивки bootloader на платы arduino nano, pro mini, 328p, 168 и прочие нужен программатор.
11985336.jpg
Очень доступный и приятный в использовании CH341A (ch341a pro)
который многие выбирают из-за его универсальности в чтении-записи микросхем памяти (spi flash, bios) и работе со многими avr, не представлен в списке выбора Arduino IDE.
Однако есть очень простой способ использовать его штатно прямо из arduino IDE.
Какие преимущества это дает:
  • Штатное использование функций меню IDE для прошивки бутлодера или скетча прямо на плату.
  • Использование giver core позволит быстро менять настройки платы, прошивать optiboot.
  • Если произошел сбой или что то непоправимое - вы штатно шьете платы благодаря внутрисхемному программированию.
2021-09-22_03-13-51.png
Простейшая схема подключения контроллера без танцев с бубном:

2021-09-22 03-19-51.JPG2021-09-22 03-20-15.JPG

-
Как установить ch341a в качестве штатного программатора в Arduino IDE?
Нужно установить обновленный AVRDUDE в arduino ide и прописать в файл programmers.txt наш программатор:

C++:
ch341a.name=CH341A PRO
ch341a.protocol=ch341a_bitbang_wch
ch341a.program.tool=avrdude
ch341a.program.extra_params=
Все просто - или скачайте готовую портабельную сборку arduino-ide-1.8.16-ch341a.zip с ЯндексДиска
Или следуйте простым инструкциям:
  1. Скачайте avrdude-ch341a.zip отсюда или ЯндексДиска
  2. Откройте у себя папку установки Arduino IDE
  3. Перейдите \Arduino\hardware\tools\avr\bin
  4. Распакуйте туда содержимое архива с подтверждением замены
  5. Копируйте файл avrdude.conf в папку \Arduino\hardware\tools\avr\etc c подтверждением замены
  6. Файл programmers.txt нужно скопировать по следующему пути:
  7. Если у вас обычное arduino ide и обычное arduino core - Arduino\hardware\arduino\avr c подтверждением замены
  8. Если у вас giver core или прочие - идите в папку AppData -local -Arduino
  9. ( нажмите кнопку Windows, меню пуск или поиск, напечатайте %LOCALAPPDATA% и нажмите энтер)
  10. найдите через поиск в папке файл programmers.txt и замените содержимое на файл с архива.
  11. СОХРАНИТЬ
  12. Откройте Arduino IDE, перейдите в Инструменты -> Программатор и выберите "CH341A"
2021-09-23_02-51-18.png
Все, теперь можете шить бутлоадер и прошить скетч не "отрывая от ботвы" переключаясь на serial.
-
Надеюсь данный гайд будет кому-то полезен.

Если откроем файл конфигурации прокачанного avrdude увидим список программаторов, длинный список.
programmer
id = "ch341a_bitbang_wch";
desc = "ch341a programmer (bitbang_wch)";
type = "ch341a_bitbang_wch";
connection_type = usb;
usbvid = 0x1A86;
usbpid = 0x5512;
usbvendor = "wch.cn";
usbproduct = "CH341A";
;

id вызова и параметры программатора в секции.
Arduino ide формирует команду к дудке и указывает id программера и доп параметры, включая VID \ PID или параметрами com
Таким образом, прописываем новый программер и ИДЕ будет делать его вызов через дудку и файл конфигурации по ID.
profit.
 

Вложения

Изменено:

enter

✩✩✩✩✩✩✩
26 Ноя 2021
5
4
Ну это вариант шить только платы arduino, а мне нужно attiny и atmega.
Чтобы заработало сделал следующее, на пути %LOCALAPPDATA%\Arduino15\packages\arduino\tools в подкаталогах есть несколько экземпляров папки bin где лежат файлы avrdude, что конкретно менять я не знаю, поэтому сделал копирование файлов из папки arduino-1.8.16\hardware\tools\avr\bin (то что на ЯД) во все эти каталоги с заменой файлов. Также там есть файл avrdude.conf, по крайней мере один тут %LOCALAPPDATA%\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino18\etc , я его заменил так же (он есть в этой же папке bin). В папке %LOCALAPPDATA%\Arduino15\packages хранятся каталоги с контроллерами которые мы устанавливали через менеджер плат, в моем случае это MiniCore, на пути %LOCALAPPDATA%\Arduino15\packages\MiniCore\hardware\avr\2.1.3 аналогично заменил файл avrdude.conf, но теперь еще заменил и programmers.txt, а также скопировал CH341DLL.DLL.
Был уверен что после таких фокусов arduino ide подавится, но нет как ни странно никаких ошибок, удалось прошить atmega48.

PS может не все обязательно было копировать, нужно дольше разбираться и писать более правильную инструкцию.
 
  • Лойс +1
Реакции: Udjins

enter

✩✩✩✩✩✩✩
26 Ноя 2021
5
4
Еще несколько полезной инфы по этому программатору.
Вот схема разводка spi на zif панели, можно не мучится с dupont коннекторами а зажать обычные провода, единственное там нет 5v.
ch341.jpg
 
  • Лойс +1
Реакции: Udjins

Геннадий П

★★★✩✩✩✩
14 Апр 2021
588
191
42
Для использования утилит типа AVRDUDESS просто заменяем файлы из архива avrdude-ch341a.zip и получаем программатор в списке.

1637971521592.png
 
  • Лойс +1
Реакции: Udjins

enter

✩✩✩✩✩✩✩
26 Ноя 2021
5
4
  • Лойс +1
Реакции: Udjins

Геннадий П

★★★✩✩✩✩
14 Апр 2021
588
191
42
@enter, NeoProgrammer поддерживает контроллеры? Не обращал внимания. Я им обычно только флешки шью.
 
  • Лойс +1
Реакции: Udjins