При использовании Arduino Uno, поскольку ISP делает «Yikes! Недопустимая подпись устройства означает плохое соединение, плохую конфигурацию или плохую версию avrdude?

Я использую Arduino UNO для программирования предварительно скомпилированного шестнадцатеричного изображения на ATTINY45, используя avrdude в каталоге IDE Arduino, в Windows 7. Uno имеет эскиз ISP, загруженный из каталога примеров, Светодиод пульса хорошо освещает.

С технической стороны у меня есть эта настройка , за исключением того, что ATTINY является поверхностным креплением, припаянным к доске для серфинга со всеми ее штыри, проверенные с помощью вольтметра. Я использую полосу с заголовком, держащуюся за руку, чтобы получить штыри, прикасающиеся к доске для серфинга, чтобы получить сигналы от Uno до ATTINY.

Вот строки команд, которые я взял, глядя на вывод отладки IDE:

REM set the fuse for 8MHz, so the ISP programmer can work
C:\Progra~1\Arduino\hardware\tools\avr\bin\avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -e -Uefuse:w:0xff:m -Uhfuse:w:0xdf:m -Ulfuse:w:0xe2:m 
REM load the program
C:\Progra~1\Arduino\hardware\tools\avr\bin\avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -Uflash:w:firefly.hex:i
REM set fuse for 1MHz, as the project requires
C:\Progra~1\Arduino\hardware/tools/avr/bin/avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -e -Uefuse:w:0xff:m -Uhfuse:w:0xdf:m -Ulfuse:w:0x62:m 

- Я запускаю их отдельно, но всегда получаю эту ошибку:

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
     Double check connections and try again, or use -F to override
     this check.

, но иногда это число ff0000 или ffff00 или ffffff

Я читал, что «Arduino использует слегка измененную версию avrdude для загрузки эскизов на плату Arduino. Запросы стандартной версии для сигнатуры устройства платы не поняты загрузчику, что приводит к этой ошибке». Означает ли это, что использование Arduino avrdude с новым чипом ATTINY, без загрузчика на нем, также приведет к такой же ошибке? Другими словами, является ли измененное avrdude неспособным запрашивать чип AVR, не содержащий Arduino?

Или эта ошибка просто означает, что у меня нет хорошего контакта между всеми моими контактами программиста и ATTINY?

И, действительно ли настройки плавкого предохранителя действительно необходимы, может ли Uno запрограммировать вспышку на чердак, работающий на частоте 1 МГц, и таким образом сохранить некоторые шаги?

(Я бы просто купил «реального» программиста, но нужно получить этот код в ближайшие два дня, и я в сельской части Новой Шотландии)

9 голосов | спросил Yary 14 AM00000060000004031 2014, 06:52:40

3 ответа


6

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

  1. Ошибка «Yikes! Invalid device signature» была вызвана плохим контактом между программистом (Uno) и контактами ATTINY.

  2. Это не имело никакого отношения к загрузчику, не находящемуся на новом микроконтроллере. Новый чип ATTINY45 не нуждается в загрузчике для работы внутрисхемного программиста.

  3. Uno может запрограммировать ATTINY45, настроенный на любую из его скоростей, 1MHz или 8MHz. Заводские настройки прекрасны и не требуют замены предохранителей.

  4. Обе версии avrdude работали для программирования - 6.1 с сайта автора и модифицированный из IDE Arduino.

  5. avrdude может программировать через Uno, используя любой из -c avrisp, -c arduino или -c stk500v1, неважно, какой из них.

Один маленький вопрос, на который я не мог ответить, - это скорость, с которой работают программы Uno (скорость связи между штырьками ввода /вывода Arduino и микроконтроллером). Связано ли это со скоростью последовательного порта? Но оказалось, что это не уместно, чтобы ответить на эту проблему. Кто-то может спросить об этом, если это достаточно любопытно.

ответил Yary 16 AM00000040000005831 2014, 04:58:58
3

У меня была точно эта проблема. Если atTiny установлен для внешних часов, то ArduinoISP не сможет запрограммировать его без внешнего кристалла. Подключили кристалл 16 МГц и 2 конденсатора и отлично работали.

(тогда я смог установить atTiny на внутренние часы, удалить кристалл, а затем отлично работал без кристалла.)

ответил jcwh2 5 J0000006Europe/Moscow 2016, 23:49:27
1

Добавьте плату и их описание плавкого предохранителя из того, что уже установлено, и оно будет работать.

Для добавления только C: \ Program Files \ Arduino \ hardware \ arduino \ avr board.txt и добавления описания платы.

########
############ Definitions for ATmega 8MHz 
##############################################################
atmega16-8.name=Atmega16 (internal 8MHz clock)

atmega16-8.upload.tool=avrdude

atmega16-8.upload.protocol=stk500v1

atmega16-8.upload.maximum_size=14336
atmega16-8.upload.speed=19200

atmega16-8.bootloader.low_fuses=0xE8
atmega16-8.bootloader.high_fuses=0x99

atmega16-8.build.mcu=atmega16
atmega16-8.build.f_cpu=8000000L
atmega16-8.build.core=arduino:arduino
atmega16-8.build.variant=mega16

##############################################################
############################

Я использовал его.

ответил shubham 15 PM00000060000000531 2015, 18:14:05

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132