Как запрограммировать Arduino pro mini, используя родной последовательный порт (на моей материнской плате)

Как я могу запрограммировать свой Pro Mini, используя собственный последовательный порт RS232 на моей материнской плате (также известный как com1).

Поиск в Google не очень помог, и быстрый поиск здесь по запросу "pro miniprogramming com1" не дал никаких результатов.

У меня уже есть модуль MAX232, подключенный между Pro Mini и ПК.

Я уже протестировал порт com1 на работоспособность, отправив данные на Arduino mega через порт USB-to-serial и передав их на com1.

Что удалось (по крайней мере, что-то вроде [получения случайного беспорядка между символами или полного отсутствия некоторых символов])

Я попробовал очевидный способ (т. е. выбрал pro mini в меню платы, затем выбрал порт com1 и нажал "Загрузить").

Но это только что привело к ошибке тайм-аута…

Насколько мне известно, возможности настроить программатор на простое последовательное соединение или что-то подобное не существует (ну, это возможно, но только если мы говорим о платах на базе STM32, таких как синяя таблетка).

, 👍0

Обсуждение

пожалуйста, разбейте слово "сгусток" на отдельные предложения, @jsotola

вы должны перезагрузить плату в момент загрузки. чип USB на Uno или Mega выполняет сброс, @Juraj

Или подключите сигнал DTR (обработанный MAX232) через конденсатор емкостью 100 нФ к контакту RESET., @Majenko

@Majenko модуль не предлагает dtr внешнему миру и даже не предлагает второй канал ic …, @der bender

Тогда вам придется сделать ручной сброс в самый подходящий момент. Удачи., @Majenko

или можно определить собственный метод загрузки, как это делается с платами на основе stm32..., @der bender

альтернативой является прошивка ISP через заголовок ICSP с программатором или другой платой в качестве программатора., @Juraj


2 ответа


Лучший ответ:

1

Чтобы загрузить шестнадцатеричный файл в Arduino через последовательный интерфейс, загрузчик должен быть активен. Загрузчик активен после сброса. Он ждет короткое время, если новое приложение загружено. Если нет, он переходит к существующему приложению.

Для сброса микроконтроллера на платах Arduino с независимым USB-чипом используется схема, подключенная к линии последовательного порта DTR.

На такой плате, как Pro Mini, нет ни чипа для USB, ни схемы автоматического сброса. Вы должны сбросить плату с помощью кнопки сброса прямо перед тем, как avrdude отправит шестнадцатеричный файл. avrdude пытается десять раз, поэтому у вас есть 10 шансов засечь время сразу после того, как вы нажмете кнопку «Загрузить».

Некоторые адаптеры USB-to-TTL-Serial (или адаптеры RS232) имеют линию DTR, и ее можно использовать для перезагрузки платы.

Или используйте прошивку ISP через заголовок ICSP с программатором или другой платой в качестве программатора.

,

мой модуль не предлагает эту строку. блин, ide не печатает, когда avrdude делает свои попытки оценить, когда нажимать кнопку. наверное, я просто попросил что-то, что отлично звучало в теории, но просто не работало на практике из-за какой-то незначительной детали..., @der bender

только что обнаружил, что он печатает с некоторым флагом, установленным в настройках, @der bender

не думаю, что я правильно выбрал время, но это помогает в том смысле, что я знаю, что просто хотел невозможного ... закрою эту тему, @der bender


0

Откройте IDE, выберите «Файл:Настройки» и включите параметр «Подробный вывод». Нажмите & Удерживайте Reset на Promini. Запустите загрузку. В конце компиляции вы увидите что-то вроде

Sketch использует 960 байт (2%) места для хранения программ. Максимальный размер – 32 256 байт.

Затем IDE попытается загрузить 3 раза.

Выполните сброс, когда увидите строку выше. Может потребоваться несколько попыток, чтобы установить правильное время выпуска.

,