Доброго времени суток. Помогите разобраться, в чём же дело Суть такова. Есть ATmega32, в которой есть бутлоадер. Программирую через AVRProg. При запуске AVRProg, он отсылает в COM порты с 1 по 4 команду и ждёт ответ. Если ответа нет - программа просто не запустится. Если я в качестве USB-UART преобразователя юзаю FT2232, то всё работает отлично. Но если MCP2200, то AVRProg запускается, работает Verifying Flash. Но при попытке прошить, вылезает error erase. Питание МК предельно близкое к 5В. Земли микросхемы и МК объединить не забыл. RX-TX не перепутаны точно, иначе программа бы не запустилась даже. Виртуальные COM порты, которые появляются благодаря микросхемам, находятся в пределах COM1-4. В чём тут может быть подвох?
_________________ Почему я здесь и задаю тупые вопросы? Потому что хочу научиться.
Для 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.
Теперь понятнее. Если работает верификация, значит можно и прочитать МК, потом сравнить с тем, что было в нем зашито. Если все совпадет, то не знаю в что ему надо... Если при чтении будут ошибки, то возможны варианты: скорость, провода, кварц у MCP2200... Проще говоря, наличии ответа от МК это хорошо, но вот понимают ли они друг друга и надо выяснить. Еще момент, там в доп настройках что с лок битами? Или, раз через фт-ку шьет, значит все нормально? Судя по рисунку, Вы не параллельно FT2232 подключаете MCP2200, они не мешают друг-другу? Вот еще момент, в ДШ на MCP2200 пишут про RTS, CTS и способы управления этими сигналами. Вы их как то конфигурировали через утилиту или подключили куда-нибудь? Может в них проблема, я с этой микросхемой не работал, не могу ничего сказать
Здравствуйте. По схеме - когда я подключаю MCP2200, я убираю джамперы и FT2232 полностью отключается от схемы. Сейчас мне тоже подкинули идею насчёт возможного недопонимания микросхем друг другом, попробую посмотреть осциллографом, на какой скорости они общаются. MCP2200 я, пока что, никак не конфигурировал, т.к. до этого она у меня использовалась только для отсылания байтов в МК при отладке "общения" двух устройств. ЩАс как на работе свободная минутка появится, буду пробовать
_________________ Почему я здесь и задаю тупые вопросы? Потому что хочу научиться.
Посмотрел я, что там шлёт 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.
_________________ Почему я здесь и задаю тупые вопросы? Потому что хочу научиться.
А если в настройках ком-порта(на винде) отключить буферы fifo(или наоборот, включить)? Мне кажется это не случайно, вместо 4E 4С, может переполнение? В ДШ на мср2200 пишут: "• 128 byte buffer to handle data throughput at any UART baud rate: - 64 byte transmit - 64 byte receive".
Я игрался с этими fifo в первый день экспериментов. Но вот с новым драйвером не пробовал. Хотел сегодня понизить скорость передачи. В бутлоадере понизил, но чё-то д меня не сразу дошло, что AVRProg всё равно будет слать на 19200. Хм, полезу-ка я почитаю даташит на FT2232. Посмотрю, какого размера буферы там.
UPD: Судя по всему, у FT2232 буфферы в 2 раза больше, чем у MCP2200. Или я не так понимаю?
Посоветуете что-нибудь, что может прошить МК через бутлоадер на скорости 9600?
_________________ Почему я здесь и задаю тупые вопросы? Потому что хочу научиться.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения