avrdude: invalid device signature - почему и как не повторить такой результат?
- Войдите на сайт для отправки комментариев
Вообщем ситуация следующая - ПЕРВЫЙ раз в жизни имею дело с голым AVR контроллером - Atamega8A, изначально все было вполне терпимо - с помощью китайской копии Arduino Mega 2560 начал его прошивать, в качестве примера просто поставил вывод/снятие напряжение на ножку PD5 раз в секунду, bootloader-ы не использовал, с помощью Atmel Studio генерировал hex файл и с помощью SinaProg его заливал.
Изначально все работало хорошо, но секунда прописанная в МК длилась секунд 5 в настоящем времени, я обрадовался и такому результату, но от включения к включению контроллер вел себя странно, то не выполнял прошитые действия, то задержки были еще больше, вроде бы как при отключении от Arduino он вообще терял прошивку (шил с помощью кнопки Program подраздела Flash в SinaProg), в качестве программатора использовал ArduinoISP, скорости выставил правильные.
Потом мне взбрело в голову поиграться с разделом Fuses и я повыбирал разные варианты из предложенные предустановок, в итоге при одном из включений секунда стала длиться сколько нужно, я еще немного попробывал посмотреть как там устроен UART, но потом решил отложить этот вопрос, отключил конктроллер от Arduino, включил опять и - тишина. На некоторых выходах 1.8 вольта, SinaProg жалуется на invalid device signature, похоже с фьюзами я доигрался, или с источниками питания, грубо говоря одновременно были включено 3 источника питания - один от PC, второй 12V через LM7805 на спаянной плате с контроллером, третий 5V был подключен к ардуино, может это довело контроллер, не знаю. Пытался считать фузы запустив avrdude через консоль, а не оболочку, получил файлы TMP, при попытке их прочитать через Notepad++ он показал везде 2-3 символа "NUL"
Как вы считаете, контроллер уже не спасти или разбор полетов займет слишком много времени? Контроллеров то я заказал целых 10 штук, если целесобразней его перепаять - не проблема. Но как не сжечь все 10? Я слышал есть хорошие bootloader-ы на языке Arduino (проект все-равно очень мелкий, так что за производительность волноваться не стоит), какой именно лучше взять и как его зашить? И что делать с фузами?И какие советы в целом вы можете дать, что бы опять не наступать на грабли?
Если будете ссылаться на статью или тему, то допишите какие моменты в этой статье отсутствуют, а то для меня может быть что-то совсем не очевидным. Заранее спасибо!
GeneralProger, вроде всё грамотно излагаете, пока не натыкаешься на фразу типа "Я слышал есть хорошие bootloader-ы на языке Arduino". Во-первых выражение "язык ардуино" крайне условное, подразумевает использование готовых функций на Си. Во вторых если вам нужен мк с бутлоадером, зачем вы закупили кучу мег8 ? Удобнее было взять готовые варианты ардуино. Раз уж купили, то есть 2 варианта - установить и использовать родной лоадер, который есть в IDE (выбрав arduino NG) , либо можно вставить в настройках ссылку для менеджера плат от оптибута, и установить универсальный аддон оптибута в менеджере плат. Что касается вашего пострадавшего МК, то наиболее вероятный вариант -вы накосячили при игре с фузами. Соответссно "починить" М.К. можно HVPP программатором или его упрощёнными вариациями (типа fuse doctor, scratch monkey), которые можно собрать на коленке.
dimax, получается подобные ( http://homes-smart.ru/index.php/oborudovanie/arduino/avr-zagruzchik ) bootloader-ы сами настраивают нужные фузы при заливке через Arduino IDE? Или я чего-то не понял.
Мне к контроллеру была нужна обвязка из MAX488, нескольких PC8574 и ULN2003, плату в любом случае изготавливать надо было и я уж подумал сделать все чуточку компактнее и распаять контроллер самому, а не делать плату-расширение для Arduino NANO, в принципе сейчас уже жалею, наверное вариант с расширением был бы стабильнее в плане программирования
Фузы устанавливаются при заливке конкретного бутлоадера через Arduino as ISP, прописаны в секции файла board.txt.
Разницу от работы Наны наездником или саморазведенного МК, при наличии загрузчика не заметите (за исключением отсутствия разведенного USB-UART на борту Наны).