Я использую Arduino UNO для программирования предварительно скомпилированного шестнадцатеричного изображения на ATTINY45, используя avrdude в каталоге Arduino IDE, в 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 запрашивать не загружаемый Arduino чип AVR?
Или эта ошибка просто означает, что у меня нет хорошего контакта между всеми моими выводами программатора и ATTINY?
И действительно ли нужны настройки предохранителей, может ли Uno запрограммировать флэш-память на частоту 1 МГц и таким образом сэкономить мне несколько шагов?
(Я бы просто купил «настоящего» программиста, но мне нужно получить этот код в ближайшие два дня, и я нахожусь в сельской части Новой Шотландии)
источник
-c avrisp
. Я думаю, что вы можете запрограммировать его на 1 МГц без проблем.-carduino
не stk500. Просто попробуйте загрузить программу blink в attiny из IDE. Таким образом, вы можете увидеть правильную командную строку внизу, если вы включите «подробный вывод» в настройках.Ответы:
Я припаял провода к контактам, чтобы убедиться, что соединение хорошее, и использовал эти провода для программирования из Uno. Затем программист работал, без каких-либо правок в командной строке, как указано в вопросе. Я запустил несколько вариантов и смог ответить на все мои вопросы, и еще несколько, кроме того:
Ошибка «Yikes! Invalid device signature» была вызвана плохим контактом между программатором (Uno) и выводами ATTINY.
Это не имело ничего общего с отсутствием загрузчика на новом микроконтроллере. Новый чип ATTINY45 не нуждается в загрузчике для работы внутрисхемного программатора.
Uno может программировать ATTINY45, настроенный на любую из его скоростей, 1 МГц или 8 МГц. Заводские настройки в порядке, и не требуют замены предохранителей.
Обе версии avrdude работали для программирования - 6.1 с сайта автора и модифицированная из Arduino IDE.
AVRDUDE программа может через Uno , используя любой из
-c avrisp
,-c arduino
или-c stk500v1
, это не имеет значения , которые.Один маленький вопрос, на который я не смог ответить, - с какой скоростью работают программы Uno (скорость связи между выводами ввода-вывода Arduino и микроконтроллером мигает). Это связано со скоростью последовательного порта? Но оказалось, что не уместно ответить на эту проблему. Кто-то еще может спросить это, если достаточно любопытно.
источник
У меня была именно эта проблема. Если ATtiny настроен на внешние часы, то ArduinoISP не сможет запрограммировать его без внешнего кристалла. Подключил 16 МГц кристалл и 2 конденсатора и работал отлично.
(Затем я смог установить ATtiny на внутренние часы, удалить кристалл, а затем работал без кристалла.)
источник
Добавьте плату и описание их предохранителей из того, что уже установлено, и оно будет работать.
Для добавления просто
C:\Program Files\Arduino\hardware\arduino\avr\boards.txt
добавьте описание доски.Я использовал это.
источник