Официальный сайт компании Arduino по адресу arduino.cc
Что за странности происходят с ATmega168PA-AU
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Доброго времени суток.
Хотел на макетки собрать устройство. Припоял ATmega168PA-AU в TQFP32 корпусе, минимальная обвязка - кварц, керамика 22 пФ, резистор 1кОм на ресет с 5+ подключаю к UNO (предварительно залив ISP) читаю фьюсы через AVR Burn-O-Mat все Ок. Далее ставлю фьсы как тут:
Записываю, все отлично.
Немного пред истории: В предыдущей моей попытки залить скет в ATmega168PA-AU в файле, цетирую
"В файле \arduino-1.0.3\hardware\arduino\boards.txt в строке diecimila.build.mcu=atmega168 добавляете
буковку p (пэ англ.), сохраняете файл, перезапускаете IDE."
нужно было для того что бы сигнатуры подошли. С этим все нормально. Но чуть ниже там есть строки:
diecimila.bootloader.low_fuses=0xff diecimila.bootloader.high_fuses=0xdd diecimila.bootloader.extended_fuses=0x00
Т.е. как я понимаю это фьсы по умолчанию. И когда записываем скетч то эти фьюсы тоже ведь записываются?
Потому как было такое дело. Я поставил фьюсы опять же так как на картинки выше. И попробывал залить скетч все нормально. Но при попытки залить скет 2й раз программа выдовала ошибку (не помню какую) приходилось опять обнавлять фьюсы через AVR Burn-O-Mat после чего скет опять загружался. Но такой гемарой меня не устроил. И в этот раз я решил прописать нужные фьюсы в этих строках. Что бы каждый раз не лесть в AVR Burn-O-Mat, прописал я таки фьюсы:
diecimila.bootloader.low_fuses=0xff diecimila.bootloader.high_fuses=0xdd diecimila.bootloader.extended_fuses=0x07
что соответсвуют выставленым на картинке.
Идем дальше.
Пробую загрузить боотлоадер через ISP после чего пишет ошибку
C:\Users\1\Downloads\arduino-1.0.2-windows\arduino-1.0.2\hardware/tools/avr/bin/avrdude -CC:\Users\1\Downloads\arduino-1.0.2-windows\arduino-1.0.2\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega168p -cstk500v1 -P\\.\COM2 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0x07:m -Uhfuse:w:0xdd:m -Ulfuse:w:0xff:m avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "C:\Users\1\Downloads\arduino-1.0.2-windows\arduino-1.0.2\hardware/tools/avr/etc/avrdude.conf" Using Port : \\.\COM2 Using Programmer : stk500v1 Overriding Baud Rate : 19200 avrdude: Send: 0 [30] [20] avrdude: Send: 0 [30] [20] avrdude: Send: 0 [30] [20] avrdude: Recv: . [14] avrdude: Recv: . [10] AVR Part : ATMEGA168P Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PC2 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 65 20 4 0 no 512 4 0 3600 3600 0xff 0xff Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- flash 65 6 128 0 yes 16384 128 128 4500 4500 0xff 0xff Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00 Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 Programmer Type : STK500 Description : Atmel STK500 Version 1.x firmware avrdude: Send: A [41] . [80] [20] avrdude: Recv: . [14] avrdude: Recv: . [02] avrdude: Recv: . [10] avrdude: Send: A [41] . [81] [20] avrdude: Recv: . [14] avrdude: Recv: . [01] avrdude: Recv: . [10] avrdude: Send: A [41] . [82] [20] avrdude: Recv: . [14] avrdude: Recv: . [12] avrdude: Recv: . [10] avrdude: Send: A [41] . [98] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] Hardware Version: 2 Firmware Version: 1.18 Topcard : Unknown avrdude: Send: A [41] . [84] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] avrdude: Send: A [41] . [85] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] avrdude: Send: A [41] . [86] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] avrdude: Send: A [41] . [87] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] avrdude: Send: A [41] . [89] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] Vtarget : 0.0 V Varef : 0.0 V Oscillator : Off SCK period : 0.1 us avrdude: Send: A [41] . [81] [20] avrdude: Recv: . [14] avrdude: Recv: . [01] avrdude: Recv: . [10] avrdude: Send: A [41] . [82] [20] avrdude: Recv: . [14] avrdude: Recv: . [12] avrdude: Recv: . [10] avrdude: Send: B [42] . [86] . [00] . [00] . [01] . [01] . [01] . [01] . [03] . [ff] . [ff] . [ff] . [ff] . [00] . [80] . [02] . [00] . [00] . [00] @ [40] . [00] [20] avrdude: Recv: . [14] avrdude: Recv: . [10] avrdude: Send: E [45] . [05] . [04] . [d7] . [c2] . [00] [20] avrdude: Recv: . [14] avrdude: Recv: . [10] avrdude: Send: P [50] [20] avrdude: Recv: . [14] avrdude: Recv: . [10] avrdude: AVR device initialized and ready to accept instructions Reading | avrdude: Send: V [56] 0 [30] . [00] . [00] . [00] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] avrdude: Send: V [56] 0 [30] . [00] . [01] . [00] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] ################avrdude: Send: V [56] 0 [30] . [00] . [02] . [00] [20] avrdude: Recv: . [14] avrdude: Recv: . [00] avrdude: Recv: . [10] ################################## | 100% 0.06s avrdude: Device signature = 0x000000 avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check. avrdude: Send: Q [51] [20] avrdude: Recv: . [14] avrdude: Recv: . [10] avrdude done. Thank you.
Тадам что за фигня? Читаю фьюсы через AVR Burn-O-Mat там такая муть :((
Записать новые не получается из за того что установлен бит RSTDISBL. Это уже второй убитый камень.
Что делать, как быть?
З.Ы. Камень подключен правильно, не где не чего не замкнуто. Уже проверял много раз.
Вычитал вот тут
Если теперь программатор ругается на device signature 0x000000,
то это значит, что ему помогло снижение частоты, но не хватает сил запитать чип. В этом случае необходимо подключить (припаять, если с нуля делаем) к драйверу аккум.
На самом деле в тот раз я подключал отдельно питание. в этот раз все питается от UNO... хм..
Т.е. как я понимаю это фьсы по умолчанию. И когда записываем скетч то эти фьюсы тоже ведь записываются?
Эта фигня вам сообщает, что что фьзы все затерты и прошить бутлоудер нельзя.
Что делать, как быть?
З.Ы. Камень подключен правильно, не где не чего не замкнуто. Уже проверял много раз.
Искать параллельный/высоковольтный программатор и востанавливать фьзы. Кстати, поищите, например атмега8 можно востановить без такового программатора.
М/б у вас самая распространенная ошибка с мегами - отключили кварц, когда прошивали фьюзы...попробуйте на вход XTAL, там где кварц подключается, подать импульсы от 500 кГц, может прошиться, если только не затерли SPI_ON. Если и ето не помогло, то да, как выше написано ищите параллельный программатор, ну или покупайте еще одну мегу :)
Генератор можно на 2и-не слепить, запитать от платы и проводком прямо тыкнуть на вход xtal. И в программаторе сверяйте, что у него значит галочка, а то у некоторых надо зеркально даташиту выбирать(кажись так в ponyproge).
А посоветуйте какой програматор мужно купить (не паять самому что б)
Может вам лучше МК новый купить? Универсальные параллельные программаторы не дешовая штука.
И вот кстати http://arduino.ru/forum/programmirovanie/kak-ozhivit-arduino-atmega8a#comment-28316
У меня их целых 20 штук.. но так дело не пойдет уже 3 в мусарке. =((( в этот раз подключил от отдельного блока питания, 5 вольт аж 1.5 ампера.
Я хочу собирать не одно такое уст-во.. По этому готов разориться на програматор. Какой лучше взять?
Может ли это быть брак? Свою первую я покупал в местном магазине, а те что сейчас пытаюсь прошить в москве. И серия или что это у них разные, типа название а потом 1723 точно не помню, а на той что покупал в местном магазинчике другая цеферка.
А посоветуйте какой програматор мужно купить (не паять самому что б)
а что там поять, HC244 один,5 резисторов и получается STK200/byteblaster в зависимости от подключения в разъем :), долго на таком сидел, пока не сделал аналог AVR910 для USB
STK200/byteblaster, AVR910 это последовательные программаторы, при затирании фьюзов они бесполезны.
Такой подойдет http://habrahabr.ru/post/128939/ ?
Конечно нет, это тоже последовательный. http://ra4nal.qrz.ru/stk500.shtml
Увидев одну схему, я уже решил что лучше заплатить и купить :DDDD
Вот, сейчас я думаю, мб это мой касяк с фусами? Можете подсказать как их поставить?
Конечно ваш, фьюзы можно читать/шить так например http://arduino.ru/forum/obshchii/zapretit-skachivanie-programmy-iz-arduino#comment-27493
Калькулятор фьюзов: http://www.engbedded.com/fusecalc
Самое главное не путать Hfuse, Lfuse и Efuse.
maksim, можете помочь с этим делом если не сложно? Читал про фусы но так не чего и не понял какие нужно правильно поставить.
Так в калькуляторе же все ясно, вы если не понимаете ,то опишите хотябы что хотите...
Ясно - вам) Вы этим давно как я уже понял занимаетесь, а я на своем веку ток 2 мк прошил))
Ну вот те фюсы что на картинки с ними не чего у меня не выходит. Как я уже писал, я ставлю эти фюсы, потом (пробывал залить ботлоадер или сразу скет) и в том и в том случаи пишет ошибку поле чего фьюсы все затерты.
ATmega168PA-AU, внешний кварц 16Мгц. Мб как по другому нужно выставить? Я чет уже запутался %)
А зачем вы тогда вообще правите и прошиваете фьюзы отдельно, если хотите залить дуиновский бутлоудер??? Они уже установленны как надо.
Просто добавили буковку p в файле boards, сохранили:
перезвпустили IDE, выбрали плату Arduino Diecimila or Duemilanove w/ ATmega168, нажали burn bootloader.
ВСЕ - фьюзы и загрузчик прошиты. Потключаете UART (или вставляете МК в дуину) можно заливать скейтчи.
Хорошо, попробую так. Спасибо.
Но если у вас есть ISP-программатор (ArduinoISP), то тогда вопрос - а зачем вам бутлоудер? заливайте скейтчи через ISP. В общем вы сами для начала определитесь что вам нужно.
Да мне всего лишь нужно один раз залить скет на мк и все.. Но что-то мне не хочется 5-й мк "убить")) попробую как Вы сказали... если опять все фьюсы затрутся тогда хз что делать :(
Да, ещё сделать так что б работало от внешнего 18 МГц кварца
Добавьте строки в файл boards и сохраните его:
перезапустите IDE, выберите плату ATmega168P, нажмите burn bootloader.
Если удачно, ВСЁ - фьюзы прошиты. Скейтчи теперь можно заливать только по ISP, нажимаете в меню Файл -> Загрузить с помощью программатора, ВСЁ скейтч залит.
Да, ещё сделать так что б работало от внешнего 18 МГц кварца
Попробуйте изменить строку:
Всему виной мои кревые руки как аказалось. Все сделал, все работе. maksim спасибо!)
Вот фото готового уст-ва)) ток в место ленты светодиод повесил))
выбрали плату Arduino Diecimila or Duemilanove w/ ATmega168, нажали burn bootloader.
ВСЕ - фьюзы и загрузчик прошиты.
вроде не совсем так,
у 168р как минимум отличаются фьюзы от Диечимила, должно быть так
Прошло шесть лет, а диалог продолжался......