. Там же можно получить и необходимое программное обеспечения, а также рекомендации по написанию драйверов.
Модуль имеет следующие основные характеристики:
- возможет прием и передача данных со скоростью до 1 Мбайт/с;
- буфер передачи типа FIFO объемом 384 байт;
- буфер приема типа FIFO объемом 128 байт;
- протокол шины формируется аппаратно;
- совместимость с USB 1.1 и USB 2.0;
- возможность сохранения конфигурации во встроенном EEPROM;
- драйверы виртуального COM-порта совместимы со всеми ОС;
- USB direct драйверы совместимы с Win 98/NT/2000/ME/XP.
Применение модуля, как указывают его разработчики, предельно просто и не вызовет никаких трудностей для тех, кто хотя бы немного знаком с принципами программирования для PC.
|
|
рисунок 2 Расположение контактов на плате модуля DLP-USB245M |
На рисунке 2 показано расположение контактов модуля DLP-USB245M, их наименования. Ниже приводится описание функционального назначения контактов.
- "1" BID - выход; предназначен для идентификации используемого модуля; высокие уровень идентифицируется как DLP-USB232M, низкий уровень идентифицируется как DLP-USB245M;
- "2" GND - общий провод схемы;
- "3" RST - вход; используется для сброса модуля внешним устройством; если этот вход не задействуется, его необходимо подключить к шине питания VCC внешней схемы;
- "4" RSO - выход; сигнал внутреннего генератора сброса;
- "5" GND - общий провод схемы;
- "6" 3V3 - выход; вывод внутреннего источника напряжения 3,3 В; отсюда можно запитать внешнюю схему, если ее потребление не превысит 5 мА;
- "7" GND - общий провод схемы;
- "8" SLP - выход; сигнал активности USB шины; если по шине идет обмен данными, сигнал имеет низкий уровень, при остановке обмена устанавливается в высокий уровень; этот сигнал может быть использован для коммутации P-канального транзистора, управляющего внешней схемой и, таким образом, снизить энергопотребление;
- "9" SND - вход; сигнал инициации обмена по шине;
- "10" VIO - вход; питание параллельной шины данных; если модуль сопрягается с 3,3-вольтовыми логическими элементами, этот вывод соединяется с источником напряжения 3,3 В; либо соединяется с VCC внешней схемы для питания напряжением 5,0 В; возможно также соединение с выводом "11" EXT;
- "11" EXT - вход; сигнал питания модуля напряжением 4,4…5,25 В; этот вывод должен быть соединен с выводом "12" PVC для включения в режим USB-порта;
- "12" PVC - выход; напряжение питания; этот вывод может быть использован для питания внешней схемы, если ее потребление не будет более 500 мА;
- "13" RXF - выход; сигнал поступления данных в буфер приема; имеет низкий уровень, когда в буфере находится хотя бы один байт данных из 128 возможных;
- "14" TXE - выход; сигнал заполнения буфера передачи; имеет высокий уровень, когда буфер микросхемы заполнен на величину 385 байт;
- "15" WR - вход; сигнал чтения данных с линий параллельного порта;
- "16" RD - вход; сигнал записи данных из буфера обмена;
- "17…24" D7…D0 - вход/выход; двунаправленные линии данных.
Как уже было сказано, программное обеспечение для модуля имеет две основных составляющих: ПО виртуального COM-порта (VCP) и ПО типа D2XX, позволяющее "общаться" с помощью DLL-драйвера. Драйвер типа D2XX имеет в своей основе Windows WDM драйвер, который связывает прикладное программное обеспечение (то есть программное обеспечение, разработанное пользователем) с USB портом. Для разработки прикладного ПО может быть использована любая среда визуального программирования, например, VC++,C++Builder,Delphi, VB.
В составе модуля имеется EEPROM типа 94С46, в котором может храниться специфическая информация, которая загружается туда пользователем. Сюда можно "зашить" самые разнообразные данные, например VID и PID идентификаторы, наименование производителя, серийный номер. Но прежде чем начинать "прошивку" этой информации, необходимо установить D2XX драйвер.
Что необходимо сделать, чтобы установить драйвер? Необходимо следовать рекомендациям инструкции, приведенной ниже.
1 Поместить драйвер FTD2XX.dll на жесткий диск компьютера (драйвер можно получить в Интернете с сайта dlpdesign.com или ftdichip.com).
2 С этих же сайтов загрузить программу FTDIUNIN.EXE.
3 Аппаратно сконфигурировать модуль по способу питания и величине напряжения питания (за это "отвечают" выводы "10", "11" и "12). Также убедиться, что уровень сигнала на входе "3" высокий.
4 Соединить модуль с USB портом компьютера при помощи стандартного соединителя (с одной стороны - соединитель типа "А", подключение к источнику сигнала, с другой - тип В, подключение к периферийному устройству). Это действие инициализирует Windows на загрузку драйвера. Когда появится окно "выбрать драйвер", следует отыскать папку, в которой расположен драйвер FTD2XX.dll, и компьютер автоматически его установит. Если компьютер потребует перезагрузить систему, это необходимо выполнить. Теперь при каждом подключении модуля он будет автоматически опознан и для него загружен драйвер.
5 Запустить программу FTDIUNIN.EXE или иное программное обеспечение и выполнить запись данных в EEPROM. Программируется VID (0403) и PID (6001), также можно запрограммировать данные о разработчике ID. Вообще, как сказано в документации, VID и PID уже запрограммированы на заводе-изготовителе, и их можно оставить таковыми по умолчанию. Но если возникнет необходимость их изменить, то такая возможность имеется.
6 Отсоединить модуль от компьютера, затем, выждав 10 секунд, повторно присоединить модуль и произвести перезагрузку компьютера. Модуль готов к работе.
Следует обратить внимание, что имеющаяся в окне загрузчика функция "Test" предназначена для проверки работоспособности модуля DLP-USB232M, а в случае использования DLP-USB245M она работать не будет. Функция же "Read" работать будет в любом случае и с ее помощью можно получить содержимое EEPROM.
|
рисунок 3 Принципиальная схема DLP-модуля |
Вообще-то модуль DLP можно собрать и самостоятельно, по схеме рис.3. Для этого потребуется приобрести микросхему FT245BM, память EEPROM 93С46, кварцевый резонатор на 6 МГц, гнездо USB, несколько резисторов и конденсаторов, контактные штыревые планки. Можно вообще обойтись без планок, разработав печатную плату для вашего устройства с учетом этой "обвязки". Конечно, таким образом можно сэкономить деньги, однако едва ли получится экономия времени. Отсюда можно "скачать" общую схему DLP-модуля, а отсюда - варианты схем модуля с различными вариантами питания внешней части конструкции, относящейся к пользовательской компетенции.
Теперь перейдем непосредственно к программатору. Алгоритм его работы аналогичен алгоритму работы программатора А.Измайлова, который был описан во второй части дополнения "Как прошить КР1878ВЕ1 без проблем", отличие состоит в использовании языка С++ и WinApi. Функции обращения к портам заменены функциями обращения к DLL, которая, в свою очередь, обращается к низкоуровнему драйверу. Низкоуровневый драйвер "общается" с микросхемой, установленной в DLP-модуле.
Микросхема EEPROM, установленная в DLP-модуле, здесь используется лишь для опознания программатора, так как к компьютеру может быть подключено несколько устройств на основе FT245BM. Программа поддержки является многопоточной, то есть не "зависает" на время программирования. DLP-модуль работает в режиме Bit-Bang, то есть линии ввода-вывода функционируют аналогично портам ввода-вывода микроконтроллера. Питание программатора берется с USB, то есть никакого дополнительного источника питания не потребуется.
Данный программатор собирался его автором на макетной плате и после испытаний был разобран в целях модернизации его схему. В настоящее время имеется два варианта схемы, которые приводятся ниже. Автор завершил их испытания и гарантирует надежную работу "железа" и "софта".
|
рисунок 4 Схема первого варианта программатора |
На рисунке 4 показан первый вариант программатора, с использованием ключей на транзисторах КП501Б. Эту схему в "читабельном" варианте можно получить отсюда. Микросхема DA1 представляет собой преобразователь напряжения 5/12 В. Если такую микросхему найти не удастся, возможно использовать внешний источник питания на напряжение 12…12,5 В, например, такой, как был описан в книге. Программное обеспечение для этого варианта скачивайте отсюда. А микросхема 74НС14 может быть заменена на отечественную КР1564ТЛ2.
|
рисунок 5 Схема второго варианта программатора |
На рисунке 5 показан второй вариант программатора, в котором Сергей решил заменить транзисторы КП501Б на трехстабильный буфер 74HC125 (отечественный аналог КР1564ЛП8) и использовать всего два состояния - "0" и третье состояние. Использование этой микросхемы, как предполагает автор, позволяет повысить быстродействие программатора. Других особенностей схема не имеет и легко повторяется. Программное обеспечение для этого варианта скачивайте отсюда.
Теперь поговорим о том, как настроить программное обеспечение программатора. Делается это очень просто. Во-первых, подключив его к USB-порту, нужно будет инсталлировать драйвер таким образом, как это было указано выше. Драйвер FTD2XX.dll имеется в комплекте программ. Во-вторых, необходимо несколько видоизменить содержимое EEPROM. Эта задача выполняется лучше всего с помощью программы EditEEPROM.exe.
|
рисунок 6 Внешний вид окна программы EditEEPROM |
На рисунке 6 показан внешний вид окна программы EditEEPROM. После запуска программы нужно найти подключенное устройство (программатор) и установить с ним связь. Для этого в меню "файл" выбираем пункт "поиск устройств", затем в том же меню выбираем пункт "открыть порт" и далее находим подключенное устройство. Необходимо в область UserArea записать фразу "Ve1ProgUSB" с учетом регистра. Поступаем так: в зоне "UserArea" окна программы набираем "Ve1ProgUSB" (без кавычек), затем в меню "UserArea" выбираем "записать". Желательно также перед записью данных установить величину максимального потребляемого тока равной 180 мА. Собственно, на этом настройка заканчивается.
|
рисунок 7 Внешний вид окна программы Ve1ProgUSB |
А теперь - собственно о работе с программатором. Начать работу с ним необходимо с запуска Ve1ProgUSB.exe. Это программа поддержки, которая была непосредственно разработана Сергеем. Вначале в меню "настройка" выбираем "поиск устройств", затем в этом же меню выбираем "открыть порт" и название найденного устройства. Программатор готов к работе, открытие файлов "прошивки" (в виде .hex или .sav) осуществляется по меню "файл" (пункт "открыть"). В дальнейшем автор планирует добавить верификацию и, возможно, HEX редактор. Время "прошивки"ы микроконтроллера составляет приблизительно 15 секунд (DLP-модуль настроен на работу с USB2.0).
|
рисунок 8 Ввнешний вид макета программатора |
И в заключение приводим внешний вид (рисунок 8) аппаратной части программатора в авторском варианте. Сергей не стал заниматься разработкой "по всем правилам" печатной платы, а просто собрал его на макетной плате. Так что если кто-то решит разработать печатную плату, призываем прислать ее эскиз для дополнения этой статьи, желательно, с фотографией сборки и именем-фамилией разработчика.