Невозможно использовать Arduino nano в качестве ISP, потому что он не может прочитать подпись устройства.

Я запрограммировал загрузчик внутреннего генератора 8 МГц на новый Arduino Nano с другим Arduino nano, работающим с скетчем ISP, который работал нормально в первый раз (Arduino, как ISP, выбранный в качестве программатора). (Я хотел проверить это, прежде чем я хочу записать этот загрузчик на пустой 328p-au uC.) Но теперь, когда я получил 328p-au uC, я попробовал то же самое, записать загрузчик на epty uC, но почему-то он не может прочитать подпись устройства, ни от свежего arduino Nano, ни от другого avr (по крайней мере, это то, что сказал avrdude). Я подключил все точно так, как было написано в ISP Sketch.

Вот одно из сообщений об ошибках, которые я получил, когда пытался записать стандартный 16-мегагерцовый загрузчик:

     Programmer Type : STK500
     Description     : Atmel STK500 Version 1.x firmware
     Hardware Version: 2
     Firmware Version: 1.18
     Topcard         : Unknown
     Vtarget         : 0.0 V
     Varef           : 0.0 V
     Oscillator      : Off
     SCK period      : 0.1 us

     Fehler beim Brennen des Bootloaders.
     avrdude: AVR device initialized and ready to accept instructions

     Reading | ################################################## | 100%          0.02s

     avrdude: Device signature = 0xff0000
     avrdude: Expected signature for ATmega328P is 1E 95 0F
     Double check chip, or use -F to override this check.

     avrdude done.  Thank you.

Что я делаю не так? (Я пробовал использовать -F, но это не сработало, за исключением первого раза, когда я запрограммировал загрузчик 8Mhz Int. Oscillator Bootloader)

Что особенно бросается в глаза, так это то, что на линии MISO ничего не происходило. Вот скриншот моего программного обеспечения Logic Aalyzer: ibb.co/hWXrpp7

А вот изображение моей установки (правый Arduino — программатор, а на левом припаян пустой UC): https:/ /ibb.co/zXQFmwR Я новичок в Arduino, поэтому надеюсь, что кто-то из вас поможет мне с этим.

, 👍0

Обсуждение

у вас выбран программатор "Arduino as ISP"?, @Juraj

Да, я сделал... То же сообщение об ошибке., @Lukas Kamina

так вы используете другой Arduino со скетчем «Arduino as ISP» или нет? потому что тогда нет других вариантов программиста для «такой же ошибки». показать в вопросе вывод с правильным выбранным программатором, @Juraj

Да, я использую скетч «Arduino as ISP» и выбрал программатор «Arduino as ISP». «То же самое сообщение об ошибке» Я только что попытался запрограммировать, используя avrdude напрямую, чтобы реализовать идею другого парня, который ответил, но это не помогло., @Lukas Kamina

у вас есть конденсатор на программаторе Arduino для предотвращения сброса при новом USB-подключении?, @Juraj

Новый чип AVR от производителя имеет некоторые (так называемые) наборы фьюзбитов. Они предотвращают программирование или считывание MCU. Это может быть объяснением, почему вы не можете прочитать подпись. Но программатор должен установить эти биты, если вы используете его для загрузки загрузчика. Вот ссылка от парня, который был недоволен документацией, которую он нашел в Интернете. Он написал свой собственный Как: https://makersportal.com/blog/2018/3/15/arduino-internet-of-things-part-1-burning-the-arduino-bootloader-onto-a-blank-atmega328p-chip-using- Ардуино-Уно, @Peter Paul Kiefer

Как упоминал @Jurai, вам нужен конденсатор ~ 100 мкФ между выводом сброса и землей программатора arduino. Это очень важно. Я не вижу этого в схемах ссылки, на которую я вам указал. Таким образом, для более новых UNO или Nano это может быть интегрировано в плату. Ааа... И забыл: Вы написали "внутренний осциллятор". Если чип новый, этот осциллятор может быть отключен, поэтому для успеха вам в конечном итоге понадобится внешний кварц. Но это всего лишь предположение., @Peter Paul Kiefer

Спасибо, у меня был конденсатор 6,8 мкФ между сбросом и землей, но с конденсатором 100 мкФ он все еще не работает. Так как я припаял emty uC к плате Nano, остался оригинальный кварц 16 МГц. Вот изображение моей установки. Левый — программатор, правый — Arduino с пустым uC https://ibb.co/zXQFmwR, @Lukas Kamina


1 ответ


1

Похоже, вы используете слишком высокую скорость программирования. Период SCK al, равный 0,1 мкс, отображает 10 МГц, что слишком быстро, если кристалл работает на частоте 8 МГц. Не знаю, где его изменить в среде Arduino, но вы должны добавить этот ключ в строку запуска avrdude.exe:

avrdude.exe -B 8

Это установит скорость программирования на 125 кГц. Также я предлагаю вам купить дешевый программатор USBasp на eBay или AliExpress. Он хорошо документирован и имеет множество программ с графическим интерфейсом, работающих поверх avrdude. В новейшей среде разработки Arduino вы можете создавать шестнадцатеричные файлы в каталоге скетча и записывать их с помощью программатора.

,

Спасибо, но я попробовал это, и это не сработало. Это было ужасно медленно, но я получал такое же сообщение об ошибке (на этот раз я использовал avrdudess, gui для avrdude). Ну, я купил такого дешевого китайского USB-провайдера, который не работает, поэтому я пытался перепрограммировать UC на этом программаторе, следуя руководству. Но, как я уже сказал, я больше не могу программировать с помощью Arduino nano., @Lukas Kamina

О, и я отслеживал сигналы SPI с помощью логического анализатора, поэтому кажется, что часы работают на частоте 125 кГц, но, как вы можете видеть, а можете и не видеть, на линии MISO никогда ничего не происходит ...., @Lukas Kamina

https://ibb.co/hWXrpp7, @Lukas Kamina

@LukasKamina Вы должны отредактировать свой вопрос, чтобы включить эту информацию. Вся необходимая информация должна быть включена в ваш вопрос., @sempaiscuba