Интересный баг с AVRDUDE+FTDI+PB2

Делал недавно одну штуку на ATTiny2313 и нарвался на занятный баг
Вкратце, дело выглядит так:
При прошивке AVR через PINBOARD2+AVRDUDE (программатор 2ftbb) в буфер FT2232 может попасть лишний байт, который вызовет сдвиг всего остального массива и неправильное чтение данных — короче, работать нихера не будет. Такое несчастье случается, если за 7 миллисекунд (плюс-минус километр) до фактического начала прошивки (сброса МК) линия MOSI (которая соединена с пином RX на FT2232) находится в низком уровне. При переключении из BitBang режима в UART FT2232 заглатывает байт 0x00.

По ссылке мой серый уютный бложек с более подробным описанием и фоткой творческого беспорядка на рабочем месте :)

P.S. Да, мне лень перепостить текст сюда
P.P.S. Топик-ссылка — преунылейшая вещь. Как им вообще пользоваться можно? DIHALT включи хоть теги и нормальное форматирование там…
  • -1
  • 09 февраля 2013, 15:18
  • dcoder

Комментарии (2)

RSS свернуть / развернуть
Нормальная вещь. Только символов чуть побольше и возможность вставить до одной картинки. Но главное — переносы строк!
0
Долго и упорно пытался воспроизвести описанный баг на своей Pinboard2 с модулем Mega8, — все работает безупречно. Потом до меня наконец-то дошло, что баг проявляется в первой ревизии платы, где действительно переходник jtag так разведен, что ADBUS1(RX в режиме UART)идет на MOSI процессорного модуля. На плате второй ревизии разводка другая, и подобной проблемы нет. И если поправить конфиг AVRDUDE для 2ftbb в соответствии с Вашим случаем(MISO-2,SCK-0,MOSI-1,RST-4), и подключить шлейф программатора без переходника HappyJTAG, а также в прошивке МК прижать PORTB к земле, то и на плате второй ревизии проблема проявляется. Следовательно, на платах первой ревизии шить нужно без переходника, и конфиг дудки должен быть miso = 5;sck = 6;mosi = 4;reset = 7, то есть не использовать пин RX, как Вы и указали.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.