Почему ATMEGA328P U-TH не отвечает USBasp, но работает с Arduino в качестве ISP?
Недавно я заказал ATMEGA328P AU из Китая, но получил "ATMEGA328P U-TH". которые кажутся очень проблематичными. Я пытаюсь использовать USBasp для записи загрузчика, но он терпит неудачу и показывает сообщение об ошибке, как показано на рисунке.
avrdude: error: program enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
и я полагал, что многие люди сталкиваются с той же ситуацией, что и я. Затем я случайно нашел решение, используя Arduino в качестве ISP, который успешно загрузил загрузчик birn. После этого я могу использовать USBasp для загрузки sketch или записи bootloader. Я не понимаю, что здесь происходит. Примечание: Я припаиваю ATMEGA328P U-TH в SMD-пакете к Arduino UNO clone.
@M lab, 👍-1
1 ответ
Если вы хотите загрузить скетч через любой другой интерфейс, кроме ISP, atmega нуждается в загрузчике.
Загрузчик в основном представляет собой часть программного обеспечения, которая хранится в специальном разделе flash, "разделе загрузчика". Код, хранящийся в этом разделе загрузчика, имеет специальную возможность записи в те части флэш-памяти, где хранится сама программа (это называется "раздел приложения"). В общем, программа не может перезаписать свой собственный раздел flash, поэтому загрузчик и приложение должны храниться в разных разделах/разделах.
В принципе, загрузчик может делать все, что может делать обычный скетч: переключать контакты, получать доступ к eeprom, читать UART/I2C/etc... и поскольку он также может записывать данные в "раздел приложения", вы можете заставить его считывать данные из любого интерфейса и передавать их в раздел приложения. Вот что происходит, если вы загружаете код через USBasp (ардуино имеет на борту конвертер USB-to-UART). Но, конечно, для этого требуется установить загрузчик.
avrdude: ошибка: включение программы: цель не отвечает. 1
- это может показаться вводящим в заблуждение, но на самом деле это означает, что загрузчик не отвечает. Это имеет смысл, поскольку устройство не имеет загрузчика.
Когда нет загрузчика, единственный способ загрузить код-это использовать ISP, который не нуждается в каком-либо программном обеспечении для работы. Это аппаратная функциональность, которую Atmel реализует в кремнии. Загрузка кода через ISP работает (почти) в любом случае.
- Arduino UNO для получения подписи чипа ATmega328P-PU
- Как запрограммировать чип ATmega328 au tqfp32 (SMD)?
- Ардуино как ISP с serial monitor для ATmega328
- Как записать загрузчик и загрузить скетчи на ATmega328P U (конкретно этой модели)?
- Как записать загрузчик на atmega328 (не atmega328p)?
- Ошибка при перезаписи загрузчика на atmega328p с помощью usbasp в Arduino IDE
- Arduino как ISP — программа загружается на Arduino, а не на макетную плату
- Пользовательская плата 328P-AU не отвечает через ICSP
Как usb-asp, так и Arduino as ISP-это программатор, который сможет загрузить скетч из любого загрузчика. В моем вопросе он выполняет ту же работу по загрузке, но чип не отвечает на usbasp, но он отлично работает с arduino в качестве провайдера. моя проверка касается заводской настройки тактовой частоты чипа, который соответствует тактовой частоте программатора. но по-прежнему ни малейшего понятия., @M lab
Я думаю, что загрузчик используется только с загрузкой по последовательному протоколу UART stk500., @M lab