Использование Arduino Nano для программирования (как ISP) автономного 328p
Я загрузил скетч ArduinoISP в Arduino Nano, чтобы использовать его в качестве программатора для других микросхем.
Мне удалось запрограммировать ATtiny45, я сделал обычную проводку между ними и добавил 10 мкФ между RST и GND Nano. Все заработало.
Теперь я хотел бы запрограммировать автономный ATmega328p с Nano, я также сделал обычную проводку (см. это учебник), а также этот цоколь 10 мкФ.
Но это не работает:
avrdude: Подпись устройства = 0x000000 avrdude: Ой! Неверная подпись устройства. Дважды проверьте соединения и повторите попытку или используйте -F для переопределения. этот чек.
Причина может заключаться в том, что этот 328p исходит от Arduino Uno, вероятно, настроенного на внешнюю тактовую частоту с помощью кристалла. Принимая во внимание, что у меня здесь нет кристалла, и я хотел синхронизировать 328p с внутренними часами.
Вопрос: как восстановить 328p до заводских/внутренних часов, если у меня нет кристалла?
Или по какой другой причине может быть эта ошибка?
Изменить: решение можно найти здесь: Замените предохранители Arduino Uno (может ли Arduino Uno заменить свои собственные предохранители?)
@Basj, 👍0
Обсуждение2 ответа
Лучший ответ:
Вы можете временно поместить его в UNO. Не подключайте этот UNO через USB, а используйте перемычки для подключения контактов ISP и контактов питания к другому Arduino, который вы используете в качестве программатора ISP. (Вы также можете использовать заголовок (2x3) ISP на UNO, если это более удобно.)
Или вы можете использовать программатор высокого напряжения.
Или достать/выпаять кристалл из какого-нибудь хлама электроники. Точная частота не имеет большого значения. Я думаю, что где-то между 1 МГц и 16 МГц будет работать.
Затем вы можете сбросить предохранители, чтобы кристалл не требовался.
Спасибо за ваш ответ. Я попытаюсь поставить его на Uno временно, только время установки часов на внутренние. Как это сделать из Arduino IDE? Когда я выбираю Board: Uno, нет подменю для выбора внутренних/внешних часов. Есть идеи ?, @Basj
@Basj извините за это. Я как бы упустил из виду тот факт, что вы используете UNO только для кристалла, и вам все равно нужно подключить его к другому Arduino, используемому в качестве программатора ISP. Я отредактировал свой ответ, чтобы отразить это. Глядя на вашу правку, кажется, что вы уже сами это поняли. Что это здорово., @Gerben
Эта ошибка в основном говорит о том, что загрузчик, который вы пытаетесь записать, кажется не для этого устройства. Это может быть связано с повреждением или (что более вероятно в вашем случае) сбором и перенастройкой оборудования.
Если ошибка не появляется, когда вы пытаетесь загрузить загрузчик для Uno (исходное устройство, с которого вы его собрали, для тех, кто собирал его из других конфигураций), вы будете знать, что это последнее.
В любом случае вы можете попробовать -f, запустив avrdude, чтобы записать загрузчик через командную строку (как там написано). Я успешно сохранял файлы с поврежденным загрузчиком таким образом, хотя я никогда не считал, что это стоит хлопот по сбору и перенастройке - если вы вытащили его из uno, вы наверняка сможете пришить его к часам.
Если ваши часы немного отстают, возможно, вам просто повезет с несколькими попытками :)
- Как запрограммировать чип ATmega328 au tqfp32 (SMD)?
- Atmega328p загружает через ISP, но не через загрузчик
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- как быстро loop() работает в Arduino
- Самая низкая мощность, возможная в Arduino
- Использовать Arduino Nano V3 для программирования другого Arduino (Pro Mini)?
- Поскольку double и float представляют один и тот же тип данных (обычно), что предпочтительнее?
- Arduino Nano использует контакты SPI в качестве контактов ввода-вывода? а еще можно сделать ISP?
Между похожими процессорами, такими как ATMega328P-PU и ATMega328PU, есть некоторые отличия (сигнатурные номера). Проверьте эту [ссылку](https://www.robotshop.com/community/forum/t/bootloader-burning-problem/10029/2), @smajli
Решение: https://arduinoprosto.ru/q/68779/change-the-fuses-of-an-arduino-uno-can-an-arduino-uno-change-its-own-fuses, @Basj