Как загрузить скетч на atmega328 через FTDI FT232RL UART и Arduino IDE?
У меня есть карманный программатор Sparkfun AVR, и я записал загрузчик и загрузил программы с помощью "загрузить с помощью программатора" через USBtinyISP. Это работает фантастически.
У меня есть sparkfun FTDI Basic (а также еще один прорыв FTDI), который может отправлять и получать байты через последовательный монитор Arduino IDE.
Однако я не могу загрузить новый или измененный скетч на atmega328 через FTDI. IDE просто зависает при загрузке до истечения времени ожидания. Вот список некоторых моих попыток устранения неполадок:
- Я попытался загрузить простой загрузчик, а также запущенную программу через программатор ISP перед попыткой FTDI.
- Я попытался напрямую подключить сброс FTDI DTR/RTS к контакту 1 Atmega328.
- Я также попытался подключить сброс FTDI DTR/RTS к одной стороне колпачка 0,1 мкФ, а другой конец колпачка к контакту 1 Atmega328. Я предполагаю, что ограничение заключается в отправке только импульса сброса вместо константы сброса.
- Я пробовал чип FTDI FT232RL другой марки. Без разницы.
- Я попытался добавить резисторы 1k на линии Tx и Rx. Без разницы.
Возможность программирования через последовательный порт — это действительно секретный соус, который делает Arduino намного проще для начинающих, чем стандартный чип AVR. Однако мне не удалось найти никакой подробной информации о том, как на самом деле работает программирование Arduino через последовательный порт. Кроме того, я не уверен, как контакт сброса работает по отношению к этому процессу. Я помню кое-что, что на старых платах Arduino вам нужно было нажать или удерживать сброс при загрузке, но я не смог найти эту информацию, так как она была похоронена временем.
Эта статья о сборке Arduino на макетной плате и фотография из этой статьи ниже являются хорошим описанием установки У меня сейчас. Но в этой конфигурации кажется, что скетч не может быть загружен. Что мне нужно, чтобы добавить макетную плату, чтобы загрузить скетч через последовательный порт? Или какую процедуру мне нужно сделать с кнопкой сброса при загрузке?
Спасибо!
Технические характеристики Atmega328 PDF
@user14446, 👍1
Обсуждение1 ответ
Отвечая на мой собственный вопрос; Я просто запутался в устранении неполадок.
Несмотря на то, что я тестировал оба способа, я, очевидно, накладывался друг на друга, маскируя основную проблему. Загрузка с помощью программатора прекрасно подходит для передачи скетча, но НЕ позволяет позже загружать скетчи через последовательный порт. (Не уверен, есть ли для этого врожденная или логическая причина, но это то, что я нашел экспериментальным путем).
И, как упоминал hcheung в комментариях, требуется конденсатор на линии сброса FTDI. Подключить напрямую НЕ получится. Я использовал 0,1 мкФ, и это работало хорошо. Я приложил пару разных фотографий моей установки для тех, кто пойдет по этому пути в будущем. Обратите внимание, что светодиод, который я использую, имеет внутренний резистор; обычному светодиоду потребуется резистор серии 1k. Кроме того, если оставить ISP-программатора подключенным во время загрузки скетча по последовательному порту, проблем не возникло.
- SparkFun RedBoard PTH Kit неправильно настроенное оборудование
- Запрограммировать ATMega328P и использовать его без платы Arduino.
- ESP32-CAM первый: 0x8 TG1WDT_SYS_RESET загрузочный цикл
- как отправить данные в Adafruit Bluefruit Feather (32u4) через Bluetooth?
- SIM800C, CPIN: НЕ ГОТОВ (КОД ОШИБКИ: +CME ОШИБКА: 10)
- Как установить последовательные драйверы FTDI на Mac?
- Atmega328p — переход на низкое энергопотребление 1,8 В с использованием генератора 4 МГц — прошивка загрузчика
- Программирование ATMega328P без платы Arduino всегда возвращает ошибку: avrdude: stk500_recv(): programmer is not responding
Вместо того, чтобы показывать картину того, что вы пытались сделать, вы должны показать нам картину того, что вы на самом деле сделали., @Majenko
1) Ваша первая ссылка фактически предоставила всю необходимую информацию. По умолчанию Atmega328 поддерживает программирование только через ISP (который является интерфейсом SPI), для последовательной загрузки вам необходимо сначала загрузить загрузчик в чип. В Интернете или даже по первой предоставленной вами ссылке есть много информации о том, как записать загрузчик на Atmega328. Для программирования через последовательный порт вам понадобится DTR, подключите RST через колпачок, взгляните на схему Pro Mini., @hcheung
@hcheung, Спасибо! Я только что понял это, когда вы разместили свой комментарий, но вы были правы! Спасибо!, @user14446
@Majenko, я разместил свои настоящие макеты в ответе. Спасибо!, @user14446