Ремонт аналога Arduino Diecimila

proger10
Offline
Зарегистрирован: 03.06.2012

Случайно подал на 2 (или 4) ногу +12В. После этого ATMega168 стала жутко греться. Купил новую, почитал - понял, что нужно прошить бутлоадер, с помощью этого вроде даже успешно (это не факт) прошил. Но вот Ардуиновская софтина всячески не хочет работать с платой: на венде (win7) говорит "stk500_getsync() not in sync resp=0x00", на линуксе (ubuntu 12.04) - "avrdude: stk500_recv(): programmer is not responding". Один раз через ужасно нестабильный (постоянно отключается и работает 1 из 10 раз) переходник USB<->UART (кабель от старого самсунга x100), подключеный к 0, 1 и gnd выводам ардуины, смог залить на нее програмку, но больше повторить такой подвиг не могу. Вытащил МК, замкнул на панельке от МК выводы соответствующие Tx и Rx, через PuTTY посмотрел - все, что отправляю назад приходит. Есть мнение что спалил не только МК. Что делать? 

leshak
Offline
Зарегистрирован: 29.09.2011

 >смог залить на нее програмку,

Ну значит бутлоадер прошился.

>но больше повторить такой подвиг не могу.

Нужно еще соорудить авторесет, или вовремя руками кнопку reset нажимать (перез самой заливкой, в самом конеце процесса компиляции)

> Есть мнение что спалил не только МК. Что делать

Попробуйте как работает на внешнем питании.

Потыкайте тестером что у вас происходит на пине 5v при внешнем питании и при USB.

>Вытащил МК, замкнул на панельке от МК выводы соответствующие Tx и Rx, через PuTTY посмотрел - все, что отправляю назад приходит

Ну значит FTDI тоже "минимально живо". Так что где-то "питание, контакты". Либо, все-таки, где-то еще дорогу попалили. Глазами и тестором, позвонить от пинов, до разъемов панельки.

Соотсвествие пинов и ног камня тут http://arduino.cc/it/Hacking/PinMapping168

leshak
Offline
Зарегистрирован: 29.09.2011

 И да, еще, случайно, после подачи питания, через несколько секунд не начинает "быстро-быстро" и "без конца" мигать светик на 13-том пине?

proger10
Offline
Зарегистрирован: 03.06.2012

leshak пишет:

Нужно еще соорудить авторесет, или вовремя руками кнопку reset нажимать (перез самой заливкой, в самом конеце процесса компиляции)

А вот тут можно по-подробнее? Вообще, у меня программка, которая смогла успешно залиться, после запуска (void setup()) мигает светодиодом, поэтому видно, что девайс перезагружается, когда пытаюсь залить програмку.

С питанием все нормально, пины протестил - тоже все нормально - дороги целы остались.

leshak
Offline
Зарегистрирован: 29.09.2011

>поэтому видно, что девайс перезагружается, когда пытаюсь залить програмку.

В таком случе, если честно, идеи исчерпались :( Раз перегружается - значит авторесет работает.

Подробнее: как правило, когда используется внешний USB конвертер, у которго подключены только RX,TX пины - нужно перед самым моментом заливки нажать Reset. Что-бы контроллер перезапустился и стартанул бутлоадер (который и принимает новый скетч от ардуины). Но выходит - вам это не нужно.

Но, по вашим словам, reset и так происходит. Значит руками кнопку reset жать не нужно.

А вообще выглядит как мистика. По вашему описанию каждая "часть" работает нормально.

  • при замыкании RX-TX данный возвращаются - значит USB-Serial работает
  • один раз скетч залили - значит бутлоадер живой
  • скетч мигает диодом - значит и камень живой
  • перегружается при попытки заливки - значит со стартом бутлоадера тоже нет проблем

Все вместе - должно работать :(

Может плата неправильно выбрана? В ArduinoIDE пункт boards?

Ну, смутно, можно еще попытася на кварц погрешить (или кондеры при нем). Но как это проверить и может ли он быть виновным - я не знаю (просто больше деталей вроде как и не осталось).

Может "не тот бутлоадер влили"? Или с фьюзами что-то чепухнули (например включили работу от внутреннего осцилятора).

Ну или, все-таки, где-то искать "гуляющий"  контакт.

Ну можно еще попытатся отложить дуину в сторону и запустить голый кристал на макетке (с внешним кварцем). Отдельно. С помощью внешнего USB конвертера.

 

proger10
Offline
Зарегистрирован: 03.06.2012

Кажется починил. Вчера ночью внезапно решил, что стоит перепрошить бутлоадер. В обычном режиме постоянно прошивалось с ошибками. В итоге ничего не перепрошил, с утра попробывал медленный режим. В нем все нормально прошилось. Вдруг я решил почитать даташит, и вдруг у меня закрались подозрения насчет назначения lock bits'ов. Я делал раньше так: в lock пишем 3F, заливаем прошивку, high fuse ставим DD, low fuse FF, ext 00, потом в lock пишем 0F. Раньше думал, что в lock сначала нужно записать, что то для разблокировки, а в конце какую-то последовательность для блокировки. Интуитивно решил, что может стоит попробывать без последнего действия (опыт работы с МК - 1 ночь, так что не пинайте сильно). Ну и теперь всё работает. Но все равно у меня остался вопрос: что я сделал и как на самом деле обстоят дела с lock bits?