Использование 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 заменить свои собственные предохранители?)

, 👍0

Обсуждение

Между похожими процессорами, такими как 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


2 ответа


Лучший ответ:

1

Вы можете временно поместить его в UNO. Не подключайте этот UNO через USB, а используйте перемычки для подключения контактов ISP и контактов питания к другому Arduino, который вы используете в качестве программатора ISP. (Вы также можете использовать заголовок (2x3) ISP на UNO, если это более удобно.)

Или вы можете использовать программатор высокого напряжения.

Или достать/выпаять кристалл из какого-нибудь хлама электроники. Точная частота не имеет большого значения. Я думаю, что где-то между 1 МГц и 16 МГц будет работать.

Затем вы можете сбросить предохранители, чтобы кристалл не требовался.

,

Спасибо за ваш ответ. Я попытаюсь поставить его на Uno временно, только время установки часов на внутренние. Как это сделать из Arduino IDE? Когда я выбираю Board: Uno, нет подменю для выбора внутренних/внешних часов. Есть идеи ?, @Basj

@Basj извините за это. Я как бы упустил из виду тот факт, что вы используете UNO только для кристалла, и вам все равно нужно подключить его к другому Arduino, используемому в качестве программатора ISP. Я отредактировал свой ответ, чтобы отразить это. Глядя на вашу правку, кажется, что вы уже сами это поняли. Что это здорово., @Gerben


0

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

Если ошибка не появляется, когда вы пытаетесь загрузить загрузчик для Uno (исходное устройство, с которого вы его собрали, для тех, кто собирал его из других конфигураций), вы будете знать, что это последнее.

В любом случае вы можете попробовать -f, запустив avrdude, чтобы записать загрузчик через командную строку (как там написано). Я успешно сохранял файлы с поврежденным загрузчиком таким образом, хотя я никогда не считал, что это стоит хлопот по сбору и перенастройке - если вы вытащили его из uno, вы наверняка сможете пришить его к часам.

Если ваши часы немного отстают, возможно, вам просто повезет с несколькими попытками :)

,