- Переходник USB-LPT
- SDR и Ретро от RA3PKJ
- Вы на странице: Переходник USB/LPT на CY7C68013
- Переходник USB/LPT на CY7C68013
- Создайте тему (если она ещё не создана) на моём форуме http://ra3pkj.keyforum.ru (кликабельно)
- Чистые платы для различного применения от Юрия (R3KBL) на его сайте http://sdrham.ru (кликабельно)
- Введение
- Использование для работы с трансивером SDR-1000
- Использование для работы с прочим LPT-железом (программаторы и т.д.)
- Программа usbdeview — удобное средство для контроля параметров usb-устройств
- Схема
- Микросхема внешней памяти
- Плата
- Готовые платы
- Предварительное краткое описание технологии инсталляции переходника
- Приступим!
- Установка драйвера прошивальщика
- Запуск прошивальщика
- Установка основного рабочего драйвера
Переходник USB-LPT
Сейчас стационарных PC с сейчас стационарных PC с LPT портом нужно поискать (т.е. далеко не каждая «материнка» сейчас идет в комплекте с LPT портом). Про ноутбуки вообще говорить не приходится. Современные модели LPT порт вообще не применяют. Только очень дорогие и специализированные машины, типа DEll, могут «похвастаться» наличием этого порта.
А так, как не надо был LPT порт, я нашол сей девайс:
Очень простой в повторении конвертер USB — LPT. Это клон версии 1.5 на односторонней печатке. Он может подойти для программирования микросхем ISP, JTAG, SEEPROM, управлять примитивной автоматикой, не критичной к скорости работы. Оригинальная схема нарисована мутно, а по сути — элементарная. Если проанализировать, то схема упрощается до безобразия — три резистора на входе с USB, и 15 выводов на LPT. Кварц в стандартном включении.
Если при правильной прошивке комп не определит нового устройства, то резистор R3 поменяте на 1.5кОм и а для надежности нужно понизить питающее напряжение до 3,3. 3,6V (как в исходной схеме).
Топология печатки версии 1.5.
Спаяли, прошили через тотже LPT. После прошивки перерезали проводник между RESET(1) и PC2(25). Включили внешний кварц (для этого пректа hfuse=0x89 lfuse=0xAE)
Воткнули шнур в USB — ура! Установили драйвера.
Устройство работает, но очень медленно.
А если всё работает, а записать ничто через него нельзя, то читаем дальше.
Инстркуция гласит что этот прибор полностью совместим с различными принтерами, сканерами и т.д. Подключаем переходник к USB порту, устанавливаем драйвера. Смотрим диспетчер устройств — да там действительно появился некий LPT порт, например LPT2. Ok. Пробуем запустить какой-нибудь пример из статей выше. И ни тут то было — ни чего не работает. Грамотный читатель вдруг вспомнит что LPT2 имеет базовый адрес ввода-вывода 0x278. Однако такая модернизация адреса в запросах ни к чему не приводит — светодиоды как не загорались так и не загораются.
Чтобы разобраться в чем тут дело давайте вернемся на время к обычному «родному железному» LPT порту — LPT1, который из материнской платы торчит. Зайдем в диспетчер устройств, заглянем в свойства нашего порта. Там мы увидим вот такую картину. Отлично видно, что система прописала базовый адрес ввода-вывода 0x378 и запрос на прерывание номер 7. Все правильно.
Теперь погрузимся на уровень программирования. В примерах статей выше мы минуя систему защиты ввода-вывода легальными и нелегальными способами напрямую общались с реально существующим регистром ввода-вывода, которому присвоен адрес 0x378. Тут все понятно. Незабудем также о том, что Windows рекомендует работать с LPT портом используя вызовы API функций — OpenFile(), WriteFile(), ReadFile(). Приложения, которые используют LPT порт для обмена информацией по парралельному интерфейсу с внешними устройствами (принтер, например) так и делает. У него нет задачи установить на каком-либо бите регистра Data лигическую еденицу. Ему (приложению) нужно просто отправить пакет данных, а кто там будет какие линиии при этом дергать и считывать его не сильно интересует. Эти операции проводит системный драйвер LPT порта. Он подгружается в память при загрузке ОС. Когда мы вызываем функцию OpenFile(«LPT1», . ) мы посути дела обращаемся к драйверу порта, который имеет символическое имя LPT1. Драйвер делает кучу всякой работы — запрещает доступ к порту другим процессам, настраивает параметры протокола передачи данных, собственно реализует эту передачу, но в конечном итоге все это сводится к прямому управлению отдельными битами LPT порта на уровне ядра ОС.
А теперь попробуем поработать с нашим переходником USB-LPT. Начнем как не покажется странным, с API вызовов. Запускаем OpenFile(«LPT2», . ) (например LPT2, смотря как этот переходник диспетчере устройств назовется). Что при этом происходит? Дело в том, что теперь мы будем работать не с драйвером LPT порта ОС а с драйвером этого переходника! Вот в чем фокус то! Он принимает пакет данных от нашего пользовательского приложения и в нужном формате через систмный драйвер USB отсылает этот пакет на USB контроллер, «ноги» которого торчат из внешней LPT розетки на проводе (ну это так, «грубое объяснение»). Чуяте, здесь нет ни какого намека на обращение к регистрам по адресам 0x378(0x278), т.к. их просто нет!
Поэтому, когда Вы патаетесь запускать примеры данного раздела и обращаться напрямую по адресам 0x378 (если этот «псевдо порт» назвался LPT1), 0x278 (LPT2) и т.д. ни чего не происходит. Их просто нет! А вот программа котороая работает через API вызовы ни чего не заметит — вся низкоуровневая работа делается драйвером, а каким драйвером и куда пойдут пакеты данных (в реальный порт ввода-вывода или в USB хост-контроллер) — приложению насрать! Попробуйте открыть свойства «псевдопорта» в диспетчере устройств — что, нет вкладки с ресурсами? Есть, но там каие-то бредовые значения или вкладка деактивировнна? То то и оно.
Источник
SDR и Ретро от RA3PKJ
Вы на странице: Переходник USB/LPT на CY7C68013
Переходник USB/LPT на CY7C68013
Создайте тему (если она ещё не создана) на моём форуме http://ra3pkj.keyforum.ru (кликабельно)
Чистые платы для различного применения от Юрия (R3KBL) на его сайте http://sdrham.ru (кликабельно)
Введение
Автор переходника Henrik Haftmann. Сайт https://www-user.tu-chemnitz.de/
heha/basteln/PC/USB2LPT/index.en.htm. Переходник может работать с различным LPT-железом, включая трансивер SDR-1000 (последний с ограничениями).
Использование для работы с трансивером SDR-1000
Нормально использовать этот переходник с трансивером SDR-1000 можно только в Windows XP и Windows 7-32. Использовать данный переходник для работы с SDR-1000 в Windows 7-64 и выше (Win8, Win10) по-человечески невозможно (тормоза. ), к тому же вылезают проблемы с цифровой подписью драйвера. В указанных ОС используйте переходник от RA3PKJ/RN3QMP (работает с системным HID-драйвером в любых версиях Windows и описан на этом сайте).
Использование для работы с прочим LPT-железом (программаторы и т.д.)
В Windows 7-64 установку основного рабочего драйвера на конечном этапе инсталляции переходника необходимо производить, запустив Windows в режиме с отключённой проверкой цифровой подписи драйверов (клавиша F8 при загрузке Windows). Дальнейшая эксплуатация переходника может оказаться возможна только в этом режиме с отключённой проверкой подписи, т.е. каждый раз при загрузке Windows надо отключать проверку. Подробную информацию по отключению проверки подписи драйверов можно найти в интернете, в частности здесь . Кстати по указанной ссылке описаны продвинутые способы, которые возможно помогут кардинально решить проблему (я сам не пробовал, т.к. не имею Windows 7-64). Информацию о работе переходника в Windows 8 и выше не имею, но на сайте автора уже имеется драйвер для всех версий Windows, включая Windows 10.
Программа usbdeview — удобное средство для контроля параметров usb-устройств
Прежде чем начать описание USB/LPT переходника, хочу обратить Ваше внимание на программу usbdeview, которая поможет в случаях, когда возникнут непредвиденные проблемы при установке драйверов, переустановке драйверов, прошитии и перепрошитии различных usb-устройств (надеюсь, что Вы не столкнётесь с подобными проблемами и всё пройдёт гладко). Программа не определяет usb-дескрипторы, это не её стезя. Собственно помощь заключается в том, что программа даёт ценную информацию, помогающую при решении проблем. Программа покажет значения VendorID (VID), ProductID (PID), покажет установлен ли драйвер для этих VID,PID, покажет версию драйвера (если он установлен). Программа отслеживает и запоминает даже кратковременное подключение usb-устройств с отображением их параметров. При помощи этой программы легко удалять usb-устройства из системы (например при переустановке драйвера). Для 32-разрядных ОС скачать usbdeview.zip, для 64-разрядных ОС скачать usbdeview_64.zip. Программа не требует инсталляции, при запуске в окне программы Вы увидите информацию о usb-устройствах. Для удаления usb-устройства достаточно кликнуть правой клавишей мыши по названию устройства и выбрать «Удалить выбранные устройства».
Схема
Даташит на микроконтроллер : cy7c6801356pvc.zip
Cкачать схему в формате .gif : shema_cy7.gif
Микросхема внешней памяти
При включении устройства рабочая программа из микросхемы памяти загружается на выполнение в ОЗУ микроконтроллера. В cхеме используется микросхема FLASH-памяти 24C64 для хранения рабочей программы. Даташит at24c64d.pdf . Можно использовать микросхемы с бОльшей памятью, например у меня AT24C128 прошилась и заработала без проблем. Кстати, для общего развития: микросхемы с объёмом памяти 64кБ и выше именуются как Large EEPROM, т.е. грубо говоря большая память, а микросхемы, имеющие память 32кБ и меньше, именуются как Small EEPROM, т.е. маленькая память.
Микросхему памяти после прошивки следует защитить от случайного перепрограммирования. Достигается это путём отключения ножки 7 микросхемы памяти от корпуса и подключения её на +5В (т.е. к ножке 8). Если этого не сделать, то однажды Вы обнаружите, что ваш переходник не работает из-за испорченной прошивки по неизвестной причине. При попытке заново прошить микросхему памяти программа-прошивальщик не увидит устройство.
Информация для понимающих. Пока микросхема памяти не прошита (т.е. чистая), устройство определяется прошивальщиком с Vendor ID (т.е. VID) = 0x04B4 и Product ID (т.е. PID) = 0x8613, которые считываются из микроконтроллера. После прошивки устройство не определяется прошивальщиком, т.к. эти параметры считываются уже из микросхемы памяти, но там они уже будут иметь другие значения (т.е. уже будут не родными для прошивальщика). Новые значения: Vendor Product >
Спасение микросхемы памяти! Методы борьбы в случаях с неправильно прошитыми микросхемами, испорченными прошивками и использования б/у микросхем памяти, снятых с других устройств, в общем-то не мудрёные. Признаком того, что в микросхеме памяти содержится непотребная прошивка может служить тот факт, что Вам никак не удаётся установить драйвер прошивальщика (параграф «Установка драйвера прошивальщика»). Если драйвер прошивальщика был установлен ранее, то признаком непотребной прошивки может служить тот факт, что прошивальщик не видит устройство, т.е. в окне прошивальщика не отображается название устройства — Cypress EZ-USB FX2LP No EEPROM (параграф «Запуск прошивальщика»). В этих случаях следует всего-навсего запретить функционирование микросхемы памяти до момента самого прошивания. Это позволит установить драйвер прошивальщика, а если драйвер был установлен ранее на компе, то позволит прошивальщику снова увидеть устройство. Достигается это, например, отпайкой ножки 5 (SDA) от платы и подключением её тумблером уже непосредственно перед прошиванием, т.е. перед нажатием кнопки Lg EEPROM в окне прошивальщика. Можно также использовать для этой цели ножку 8 (VCC).
Плата
Как пример исполнения переходника — плата от RV3DLX:
Скачать показанное выше фото: plata_rv3dlx.jpg
Проект платы от RV3DLX в формате программы SprintLayout : usb2lpt_RV3DLX.lay
В проекте платы отсутствует переключаемая перемычка для защиты микросхемы памяти от случайного перепрограммирования (о чём я выше писал), поэтому у Вас есть шанс до изготовления платы предусмотреть в проекте эту перемычку.
Готовые платы
Для изготовления переходника можно воспользоваться готовыми платами, которые легко купить через интернет (например в Китае) почти задаром. В этом случае нужно сделать LPT-кабель и перепрошить микросхему памяти, т.к. она содержит непотребную прошивку (лично у меня в микросхеме памяти содержалась прошивка многоканального логического анализатора, значения VID = 0925 и PID = 3881). Микросхему памяти надо будет прошить как описано в этом разделе сайта.
CY7C68013A USB Board (type A) EZ-USB FX2LP Evaluation Development Module Kit
CY7C68013A-56 EZ-USB FX2LP USB 2.0 Develope Board Module
Дополнительно о перепрошивании. На последней плате есть (на первой плате наверняка тоже есть) джампер-перемычка, которая перед подключением железки к usb предварительно должна быть снята. После запуска программы-прошивальщика джампер надо установить обратно.
Предварительное краткое описание технологии инсталляции переходника
1) Установка программы-прошивальщика и его драйвера. Драйвер необходим для взаимодействия прошивальщика с «железом». «Железо» до прошивания представляет из себя пустую заготовку. Прошитое «железо» — это уже USB/LPT переходник, но он НЕ сможет выполнять свою роль без установки основного рабочего драйвера. Кстати, прошивальщик и его драйвер после прошивания могут быть удалены с компьютера за ненадобностью. Для прошивания не требуется какой-либо программатор. Процесс прошивания происходит через имеющееся USB-соединение переходника с компом.
2) Далее установка основного рабочего драйвера, эмулирующего LPT. Прошитое устройство будет выполнять роль USB/LPT переходника только при установке этого основного рабочего драйвера.
Ниже я опишу весь процесс инсталляции на примере Windows XP SP2. Кстати, прошитый ранее переходник я потом испытал в Windows 7-32, для чего в Windows 7-32 выполнил только установку основного рабочего драйвера.
Приступим!
Скачать у меня пакет, включающий программу-прошивальщик с собственным драйвером, это пакет Cypress Suite USB 3.4.7 — CY3684Setup.rar (53 Мб). Распаковать и запустить скачанный файл. В процессе инсталляции будет установлено много лишнего. Не беда, после прошивания можно всё удалить, т.к. установленный пакет целиком будет уже не нужен.
Нумерация пунктов сквозная для всего описания инсталляции переходника!
1. Указать папку для установки:
2. Выбрать типовую установку:
3. Подтвердить лицензионное соглашение:
4. Установка среды программирования Keil uVision2 (она Вам совсем не понадобится):
5. Подтвердить лицензионное соглашение:
6. Ничего особенного:
7. Указать какую-нибудь папку для среды программирования Keil uVision2:
8. Подтвердить Ваши данные:
9. Ничего особенного:
10. Снять галочку:
11. Установка GPIF Designer (это Вам не понадобится):
12. Подтвердить лицензионное соглашение:
13. Указать папку для установки:
14. Ничего особенного:
15. Установка GPIF Designer завершена:
16. Установка Cypress Suite USB 3.4.7 (вот это Вам уже точно понадобится при прошивании):
17. Подтвердить лицензионное соглашение:
18. Подтвердить Ваши данные:
19. Указать папку для установки (проверьте правильность буквы ВАШЕГО диска):
20. Ничего особенного:
21. Cypress Suite USB 3.4.7 установлена:
22. Снять все галочки:
Установка пакета завершена. После прошивания пакет можно будет удалить, для чего идём Пуск > Панель управления > Установка и удаление программ (это в Windows XP, а в Windows 7 может быть иначе). Cледует удалить следующие программы: CY3684 EZ-USB FX2LP. Cypress Suite USB 3.4.7, GPIF Designer, uVision2.
Установка драйвера прошивальщика
После установки пакета Cypress Suite USB 3.4.7 на вашем компьютере появилась папка с драйверами для этого пакета. Её надо найти на вашем диске (лично у меня диск F) F:\Cypress\Cypress Suite USB 3.4.7\Driver\bin. В этой папке содержатся папочки и подпапочки с драйверами для различных операционных систем. Так как эти драйверы не адаптированы для нашего случая, то следует заменить целиком папку bin, скачав у меня bin.zip . Соответствие драйверов для различных операционных систем в этой папке следующее:
Определитесь с выбором вашего драйвера и запомните путь к нему.
23. Подключить USB-вилку переходника в гнездо компьютера, должен появиться Мастер нового оборудования, выбрать пункт «Нет, не в этот раз» :
Внимание. Если Вы не увидели показанный выше скрин (если же увидели, то пропустить данный абзац и не заморачиваться), то это означает, что Вы ранее когда-либо установили какой-то драйвер для этого usb-устройства. Надо убедиться, что установлен нужный драйвер, для чего запускаем программу usbdeview (программа описана в начале этой страницы). Если в окне программы есть хотя бы одно упоминание (строчка) о устройстве с VendorID = 04b4 и ProductID = 8613, содержащее описание — Cypress EZ-USB FX2LP No EEPROM, имя драйвера — CYUSB.sys, версия драйвера 3.4.4.0, то это означает, что ранее был уже установлен нужный драйвер (в связи с чем можно смело переходить к параграфу «Запуск прошивальщика»). Если же в окне usbdeview присутствует usb-устройство с нужными VendorID = 04b4 и ProductID = 8613, но остальные данные не соответствуют приведённым, то необходимо удалить в окне все упоминания этого устройства (клик правой клавиши мыши по найденной строчке, далее — «Удалить выбранные устройства»). Затем произвести новую установку драйвера прошивальщика, начиная с пункта 23. Если в окне usbdeview вовсе не обнаружились usb-устройства с VendorID = 04b4 и ProductID = 8613, то это означает, что в микросхеме памяти уже содержится какая-то непотребная прошивка. Следует заменить микросхему памяти на новую или же предпринять подготовку по «спасению» микросхемы памяти как описано выше в параграфе «Микросхема внешней памяти», затем возобновить установку драйвера прошивальщика, начиная с пункта 23.
24. Кстати для общего развития сообщу, что всякое usb-устройство с не установленным пока драйвером видится в Диспетчере устройств как USB Device с восклицательным знаком (отвлекитесь и сбегайте сейчас в Диспетчер устройств, убедитесь сами). Один из вариантов (возможны другие похожие варианты) показан на скрине:
Как вариант, можно увидеть там такое (зависит от прихоти компьютера):
25. Выбрать установку драйвера из указанного места (ниже скрин не корректный — название устройства должно быть другим, если будет возможность я его заменю):
26. Выбрать папочку с вашим драйвером (в соответствии с вашей операционной системой):
27. Не обращаем внимание на предупреждение и жмём «Всё равно продолжить»:
28. Установка драйвера прошивальщика завершена:
29. Если сбегать в Диспетчер устройств, то увидим там следующее:
Внимание! Если установка драйвера оказалась неудачной (выскочило сообщение, что подходящий драйвер не найден), то это означает, что в микросхеме памяти уже содержится какая-то непотребная прошивка. Следует заменить микросхему памяти на новую или же предпринять подготовку по «спасению » микросхемы памяти как описано выше в параграфе «Микросхема внешней памяти», затем возобновить установку драйвера прошивальщика, начиная с пункта 23.
Запуск прошивальщика
Прежде чем запустить прошивальщик, скачайте файл прошивки usb2lpt2.iic и разместите его в любой папке на Ваше усмотрение.
Через кнопку Пуск > Все программы (Установленные программы) запускаем на выполнение программу CyConsole из меню Cypress > Cypress Suite USB 3.4.7 > CyConsole.
30. После того, как прошивальщик увидел устройство (в окне есть строчка — Cypress EZ-USB FX2LP No EEPROM), выбираем EZ-USB Interface:
31. Попадаем в окно прошивальщика. Эта программа, кроме прошивания, умеет многое другое, но не пытайтесь экспериментировать с функциями программы, т.к. в данном случае это совершенно не нужно. Жмём указанную кнопку (кнопка для микросхем с объёмом памяти 64кБ и выше):
32. Получаем запрос файла прошивки. Открыть ранее скачанный файл прошивки:
33. Видим текст загруженной прошивки, а внизу сообщение о успешной прошивке.
Закрываем все окна прошивальщика.
Установка основного рабочего драйвера
Скачать драйвер : Driver_3_04_12.zip , распаковать и разместить в любом месте на диске по вашему усмотрению. Версия драйвера — от 3.04.12 (английский вариант). На сайте автора https://www-user.tu-chemnitz.de/
heha/basteln/PC/USB2LPT/index.en.htm можно скачать последнюю версию драйвера. При последнем посещении сайта я обнаружил там драйвер от 10.02.16 для всех версий Windows, включая Windows 10.
Конечно же, технология установки драйвера в Windows 7 (и выше) отличается от установки в Windows XP, в частности Windows 7 не предложит Вам установить драйвер после подключения переходника к компьютеру, поэтому Вам придётся лезть в «Пуск» > «Устройства и принтеры» и самостоятельно установить скачанный выше драйвер для «Составного USB устройства» в его составной части «Direktzugriff».
34. Выдернуть USB-шнур и снова его подключить, появится Мастер нового оборудования. Не разрешаем подключение к интернету для поиска драйвера:
35. Если на этом этапе сбегать в Диспетчер устройств, то увидим там нечто похожее на это:
36. Выбрать установку драйвера из указанного места :
37. Указать папку «en» с основным рабочим драйвером, который Вы только что скачали и разместили где-то на вашем диске:
38. Не обращаем внимание на предупреждение и жмём «Всё равно продолжить»:
39. Ну вот и добрались до завершения инсталляции переходника:
40. Смотрим что получилось в Диспетчере устройств. Не обращайте внимание на надпись LPT3, это всего лишь название (лейбл), не отражающее эмулируемый порт:
41. Щёлкаем двойным кликом левой клавиши мыши по упомянутому названию в Диспетчере устройств и попадаем в свойства переходника, где выбираем закладку Emulation :
Выбираем порт для эмуляции. Лично я поставил LPT2, чтобы не было конфликта с реальным физическим LPT1, который существует в моём компьютере. Не забудьте снять нижнюю галочку (как на скрине). При использовании переходника для работы с SDR-1000 в PowerSDR укажите тоже LPT2. Кстати, не вздумайте в PowerSDR поставить галочку «USB-Adapter», там речь совсем про другой переходник.
Источник