Почему ATMEGA328P U-TH не отвечает USBasp, но работает с Arduino в качестве ISP?

atmega328 arduinoisp usbasp

Недавно я заказал 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.

, 👍-1


1 ответ


-1

Если вы хотите загрузить скетч через любой другой интерфейс, кроме ISP, atmega нуждается в загрузчике.

Загрузчик в основном представляет собой часть программного обеспечения, которая хранится в специальном разделе flash, "разделе загрузчика". Код, хранящийся в этом разделе загрузчика, имеет специальную возможность записи в те части флэш-памяти, где хранится сама программа (это называется "раздел приложения"). В общем, программа не может перезаписать свой собственный раздел flash, поэтому загрузчик и приложение должны храниться в разных разделах/разделах.

В принципе, загрузчик может делать все, что может делать обычный скетч: переключать контакты, получать доступ к eeprom, читать UART/I2C/etc... и поскольку он также может записывать данные в "раздел приложения", вы можете заставить его считывать данные из любого интерфейса и передавать их в раздел приложения. Вот что происходит, если вы загружаете код через USBasp (ардуино имеет на борту конвертер USB-to-UART). Но, конечно, для этого требуется установить загрузчик.

avrdude: ошибка: включение программы: цель не отвечает. 1 - это может показаться вводящим в заблуждение, но на самом деле это означает, что загрузчик не отвечает. Это имеет смысл, поскольку устройство не имеет загрузчика.

Когда нет загрузчика, единственный способ загрузить код-это использовать ISP, который не нуждается в каком-либо программном обеспечении для работы. Это аппаратная функциональность, которую Atmel реализует в кремнии. Загрузка кода через ISP работает (почти) в любом случае.

,

Как usb-asp, так и Arduino as ISP-это программатор, который сможет загрузить скетч из любого загрузчика. В моем вопросе он выполняет ту же работу по загрузке, но чип не отвечает на usbasp, но он отлично работает с arduino в качестве провайдера. моя проверка касается заводской настройки тактовой частоты чипа, который соответствует тактовой частоте программатора. но по-прежнему ни малейшего понятия., @M lab

Я думаю, что загрузчик используется только с загрузкой по последовательному протоколу UART stk500., @M lab