FT2232 vs MCP2200 как прграмматор AVR с бутлоадером.

Обсуждаем контроллеры компании Atmel.
Ответить
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 343
Зарегистрирован: Пн апр 01, 2013 15:13:40
Откуда: Москва

Сообщение Мikа »

Доброго времени суток. Помогите разобраться, в чём же дело :(
Суть такова. Есть ATmega32, в которой есть бутлоадер. Программирую через AVRProg.
При запуске AVRProg, он отсылает в COM порты с 1 по 4 команду и ждёт ответ. Если ответа нет - программа просто не запустится.
Если я в качестве USB-UART преобразователя юзаю FT2232, то всё работает отлично. Но если MCP2200, то AVRProg запускается, работает Verifying Flash. Но при попытке прошить, вылезает error erase.
Питание МК предельно близкое к 5В. Земли микросхемы и МК объединить не забыл. RX-TX не перепутаны точно, иначе программа бы не запустилась даже. Виртуальные COM порты, которые появляются благодаря микросхемам, находятся в пределах COM1-4.
В чём тут может быть подвох?
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Реклама
Держит паяльник хвостом
Сообщения: 963
Зарегистрирован: Чт апр 03, 2014 23:16:55
Откуда: Россия

Сообщение Rtmip »

может в цепи сброса? Схему подключения обоих вариантов изобразить можете? Кстати, AVRProg, какой конкретно?
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 343
Зарегистрирован: Пн апр 01, 2013 15:13:40
Откуда: Москва

Сообщение Мikа »

А разве при заливке бутлоадером нужен сброс? Он же сам себя сбросит?
Схемы такие:

Для FT2232 - это PinBoard II R2: http://i068.radikal.ru/1410/3f/1030f78347ce.png
Синим и красным я нарисовал каналы связи, чтобы было понятнее.

Для MCP2200: Каналы связи Rx-Tx микроконтроллера ПОЛНОСТЬЮ отключаются от платы, непосредственно на ноги МК цепляются соответствующие ноги MCP2200. То есть Rx-Tx, Tx-Rx.
Первый раз я подключал MCP2200 вот в таком виде: http://www.propox.com/products/t_281.html?lang=en . Питание и MCP2200 и ATmega32 шло только от USB.
Потом я попробовал запитать МК отдельно, думая, что, возможно, проблема в питании. На МК было подано 5В через КР142ЕН5А. Земли объединить не забыл.

Потом я попробовал подключить MCP2200 в другом корпусе. Я щас с ноутбука сижу, у меня тут нет схемы платы, на которой стоит эта MCP2200. Есть только начальный вариант этой схемы, который я доделывал на другом компьютере. Но там схема абсолютно стандартная. То есть подключено питание, установлен кварц 12 МГЦ, конденсаторы на кварце и линиях связи с USB, ну и выводы Rx-Tx.

В этом архиве лежит AVRProg, который я использовал. http://easyelectronics.ru/files/PinBoar ... qs_avr.zip

Я ещё раз обращу внимание на то, что при работе с MCP2200 AVRProg открывается и может проверять Flash.
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Держит паяльник хвостом
Сообщения: 963
Зарегистрирован: Чт апр 03, 2014 23:16:55
Откуда: Россия

Сообщение Rtmip »

Теперь понятнее. Если работает верификация, значит можно и прочитать МК, потом сравнить с тем, что было в нем зашито.
Если все совпадет, то не знаю в что ему надо...
Если при чтении будут ошибки, то возможны варианты: скорость, провода, кварц у MCP2200...
Проще говоря, наличии ответа от МК это хорошо, но вот понимают ли они друг друга и надо выяснить.
Еще момент, там в доп настройках что с лок битами? Или, раз через фт-ку шьет, значит все нормально?
Судя по рисунку, Вы не параллельно FT2232 подключаете MCP2200, они не мешают друг-другу?
Вот еще момент, в ДШ на MCP2200 пишут про RTS, CTS и способы управления этими сигналами.
Вы их как то конфигурировали через утилиту или подключили куда-нибудь? Может в них проблема, я с этой микросхемой
не работал, не могу ничего сказать :(
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 343
Зарегистрирован: Пн апр 01, 2013 15:13:40
Откуда: Москва

Сообщение Мikа »

Здравствуйте. По схеме - когда я подключаю MCP2200, я убираю джамперы и FT2232 полностью отключается от схемы. Сейчас мне тоже подкинули идею насчёт возможного недопонимания микросхем друг другом, попробую посмотреть осциллографом, на какой скорости они общаются. MCP2200 я, пока что, никак не конфигурировал, т.к. до этого она у меня использовалась только для отсылания байтов в МК при отладке "общения" двух устройств. ЩАс как на работе свободная минутка появится, буду пробовать :)
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 343
Зарегистрирован: Пн апр 01, 2013 15:13:40
Откуда: Москва

Сообщение Мikа »

Посмотрел я, что там шлёт MCP2200 в контроллер и обратно и тоже самое, для FT2232. Затык всегда происходит на одном и том же месте. Сегодня пробовал 2 разные MCP2200, скачал драйвера с официального сайта, переустанавливал их кучу раз, результата никакого.

Выкладываю картинкой, потому что УБОГАЯ И ВОНЮЧАЯ система форума вечно убивает табуляцию, убирает пробелы и пусть горит в аду человек, который это придумал.
Так, теперь к картинке. Что тут что:
USB - FT2232 - это значит, что мы смотрим, что идёт из USB в FT2232. Смотрим на ногах UART ATmega32. Аналогично для всего остального. Где написано наоборот, FT2232 - USB, соответственно, смотрим, что ATmega32 отправляет в UART.
CONNECT - данные, при запуске AVR Prog. Остальное - понятно.

Место затыка я выделил чёрным.
И вот в программинге, я не пойму. MCP2200 чисто случайно каждый раз вместо 4E отсылает 4C, или же она теряет 4E и шлёт вместо неё последующую 4C?
Картинка сильно обрезана по горизонтали. Там, где всё ОК, а именно во всех случаях FT2232 и случаях CONNECT и VERIFYING для MCP2200 код гораздо длиннее и полностью идентичен для обеих микросхем.

Более длинный код в местах --==--==--== - это следующее: Берём нормально запрограммированный через FT2232 МК. Подключаемся через MCP2200. Жмём Program. Получаем error erase.
Это сопровождается кодом, заканчивающимся на 4C. После чего жмём ещё раз Program. Получаем 2 всплывающих окна, говорящих об ошибках. при нажатии ОК каждого из этих окон добавляется часть кода, идущая после 4C.
Изображение
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Реклама
Держит паяльник хвостом
Сообщения: 963
Зарегистрирован: Чт апр 03, 2014 23:16:55
Откуда: Россия

Сообщение Rtmip »

А если в настройках ком-порта(на винде) отключить буферы fifo(или наоборот, включить)? Мне кажется это не случайно, вместо 4E 4С, может переполнение?
В ДШ на мср2200 пишут:
"• 128 byte buffer to handle data throughput at any
UART baud rate:
- 64 byte transmit
- 64 byte receive".
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 343
Зарегистрирован: Пн апр 01, 2013 15:13:40
Откуда: Москва

Сообщение Мikа »

Я игрался с этими fifo в первый день экспериментов. Но вот с новым драйвером не пробовал. Хотел сегодня понизить скорость передачи. В бутлоадере понизил, но чё-то д меня не сразу дошло, что AVRProg всё равно будет слать на 19200. Хм, полезу-ка я почитаю даташит на FT2232. Посмотрю, какого размера буферы там.

UPD:
Изображение
Судя по всему, у FT2232 буфферы в 2 раза больше, чем у MCP2200. Или я не так понимаю?

Посоветуете что-нибудь, что может прошить МК через бутлоадер на скорости 9600? :)
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Ответить

Вернуться в «AVR»