Как загрузить скетч на atmega328 через FTDI FT232RL UART и Arduino IDE?

У меня есть карманный программатор Sparkfun AVR, и я записал загрузчик и загрузил программы с помощью "загрузить с помощью программатора" через USBtinyISP. Это работает фантастически.

У меня есть sparkfun FTDI Basic (а также еще один прорыв FTDI), который может отправлять и получать байты через последовательный монитор Arduino IDE.

Однако я не могу загрузить новый или измененный скетч на atmega328 через FTDI. IDE просто зависает при загрузке до истечения времени ожидания. Вот список некоторых моих попыток устранения неполадок:

  1. Я попытался загрузить простой загрузчик, а также запущенную программу через программатор ISP перед попыткой FTDI.
  2. Я попытался напрямую подключить сброс FTDI DTR/RTS к контакту 1 Atmega328.
  3. Я также попытался подключить сброс FTDI DTR/RTS к одной стороне колпачка 0,1 мкФ, а другой конец колпачка к контакту 1 Atmega328. Я предполагаю, что ограничение заключается в отправке только импульса сброса вместо константы сброса.
  4. Я пробовал чип FTDI FT232RL другой марки. Без разницы.
  5. Я попытался добавить резисторы 1k на линии Tx и Rx. Без разницы.

Возможность программирования через последовательный порт — это действительно секретный соус, который делает Arduino намного проще для начинающих, чем стандартный чип AVR. Однако мне не удалось найти никакой подробной информации о том, как на самом деле работает программирование Arduino через последовательный порт. Кроме того, я не уверен, как контакт сброса работает по отношению к этому процессу. Я помню кое-что, что на старых платах Arduino вам нужно было нажать или удерживать сброс при загрузке, но я не смог найти эту информацию, так как она была похоронена временем.

Эта статья о сборке Arduino на макетной плате и фотография из этой статьи ниже являются хорошим описанием установки У меня сейчас. Но в этой конфигурации кажется, что скетч не может быть загружен. Что мне нужно, чтобы добавить макетную плату, чтобы загрузить скетч через последовательный порт? Или какую процедуру мне нужно сделать с кнопкой сброса при загрузке?

Спасибо!

Технические характеристики Atmega328 PDF

, 👍1

Обсуждение

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

1) Ваша первая ссылка фактически предоставила всю необходимую информацию. По умолчанию Atmega328 поддерживает программирование только через ISP (который является интерфейсом SPI), для последовательной загрузки вам необходимо сначала загрузить загрузчик в чип. В Интернете или даже по первой предоставленной вами ссылке есть много информации о том, как записать загрузчик на Atmega328. Для программирования через последовательный порт вам понадобится DTR, подключите RST через колпачок, взгляните на схему Pro Mini., @hcheung

@hcheung, Спасибо! Я только что понял это, когда вы разместили свой комментарий, но вы были правы! Спасибо!, @user14446

@Majenko, я разместил свои настоящие макеты в ответе. Спасибо!, @user14446


1 ответ


1

Отвечая на мой собственный вопрос; Я просто запутался в устранении неполадок.

Загрузить с помощью программатора != Записать загрузчик

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

И, как упоминал hcheung в комментариях, требуется конденсатор на линии сброса FTDI. Подключить напрямую НЕ получится. Я использовал 0,1 мкФ, и это работало хорошо. Я приложил пару разных фотографий моей установки для тех, кто пойдет по этому пути в будущем. Обратите внимание, что светодиод, который я использую, имеет внутренний резистор; обычному светодиоду потребуется резистор серии 1k. Кроме того, если оставить ISP-программатора подключенным во время загрузки скетча по последовательному порту, проблем не возникло.

atmega328 ftdi, вид сверху установка ftdi осталась право установки ftdi

,