|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.07.2012, 00:39 | #1 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,330
|
USB-LPT переходник. Программирование, железо.
Почитал несколько статей по работе с LPT-портом. Все бы ничего, но на моем компе и ноуте этого чуда нет.
Решил связаться с переходником USB-LPT с целью: 1. Понять структуру и работу USB 2. Научиться программировать USB устройства 3. Смастерить что либо вроде очумелых ручек (есть детская мечта сделать цифровой осциллограф ). Поскольку немного умею программировать, разрабатывать цифровые схемы и держать паяльник, то надеялся ... К тому-же Интернет под рукой ... Советоваться не с кем было. Купил переходник от TRENDNet TU-P1284. Спаял простую схему с регистром на триггерах и примитивной логикой. Научился программировать это чудо на C++ и Delphi. До сегодняшнего дня, перекапывая "свалку", добрался до следующего состояния: 1. Программирую состояние байтового регистра - светодиоды горят. Можно передавать от одного байта. Буфер для одной передачи - 32 байта. 2. Читаю статусный регистр с его тремя битами. 3. Формирую сигнал инициализации устройства. И наконец о проблеме. Как организовать ввод данных в комп. По параметрам дескриптора следует, что данный переходник может как передавать байты, так и принимать их. Но для управления обратной передачей необходим сигнал от компа, что он готов принимать данные. К сожалению в сетях явного указания не нашел. Одни утверждают, что надо использовать сигнал AUTOFD (14 pin), а другие - отправляют к сигналу SelectIN (36 pin). Есть ссылки на то, что какой-то другой сигнал должен быть в некотором состоянии, сигнализируя о готовности ПУ (периферийного устройства) к передаче. Вопрос: Как можно представить логику взаимодействия ПУ с хостом в режиме обратной передачи байта (чтение байта из ПУ)? Какие сигналы и в какой последовательности должен формировать хост, а какие ПУ? PS: Предполагаю, что вопрос поднял не в том разделе. Да простят меня модераторы и пошлют куда им виднее. Тут уже было обсуждение похожей темы и были отрицательные высказывания в сторону подобного устройства. Моя тема на стыке программирования, железа, подготовки будущей статьи.
Как-то так, ...
|
26.07.2012, 07:27 | #2 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
Для приема данных необходмо включить у порта режим ECP+EPP, иногда он называется Bidirectional. В компах это включалось в биосе, а у переходника ... в общем надо поискать как это включить и будет все ок
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
26.07.2012, 09:03 | #3 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,330
|
Цитата:
Bidirectional - протокол обмена, который развивает протокол Centronics. Оба они так же входят в группу протоколов 1284. Поскольку на хвосте стоит микроконтроллер (узнать его имя не удалось), то обмен ведётся в автоматическом режиме. Т.е. при получении команды прямой передачи и данных, микроконтроллер самостоятельно генерирует стробы и контролирует состояние сигналов ПУ. Такой же режим, как я предположил, должен был быть реализован и для обратной передачи (чтение из ПУ). Однако ... Но вот только что вычитал в одном анг. документе, что режим все же надо включать. Будем пробовать. Как-то так, ...
Как-то так, ...
|
|
26.07.2012, 09:38 | #4 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
...направление обмена определяется управляющими регистрами порта.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
26.07.2012, 21:34 | #5 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,330
|
У указанного переходника есть нулевая конечная точка, и две конечных токи для чтения и записи байтов данных. При чтении состояния нулевой конечной точки можно прочитать байт состояния принтера (сигналы Select, PaperEnd и Error), а при записи - сформировать сигнал Init (сброс состояния принтера).
Так теперь понимаю, что надо записать в нулевую конечную точку некоторый код, который бы перевел выход данных в третье состояние. Попытка записать $20 (пятый бит, как описано у М. Гука) или просто и грубо - $FF, результата не принесла. Сижу, "курю бамбук" - пытаюсь найти нечто подобное в datasheet, которые имеются в сети для подобных контроллеров. Ну вот, поделился мыслью и появились новые мысли. А то как-то застрял ...
Как-то так, ...
|
26.07.2012, 22:01 | #6 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
Странно. Везде по сети написано что переходник уже работает в режиме bidirectional.
А установкой соответствующего бита почему не вышло?? Вот красивый мануал, мне понравилось. Расписаны все контрольные регистры. Мануал Там внизу указано какой бит дернуть для bidir. А как вы проверяете прим данных??? Чисто технически???
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
27.07.2012, 00:17 | #7 | |||
Старожил
Регистрация: 23.10.2010
Сообщений: 2,330
|
Ссылка мне знакома. Спасибо, что еще раз напомнили. Прочитал повнимательнее. Попробую разобраться, хотя с английским есть проблемы
Цитата:
Для контроля есть еще DeviceMonitor. К сожалению только пробная версия и остался один день (лекарства нет) Для контроля построил схему так, что записываю данные в регистр и должен их же и прочитать. Да, нашел еще одно описание работы USB-принтеров. Там сказано, что Цитата:
Цитата:
Спасибо за внимание. Есть чем прибить ближайшие дни ...
Как-то так, ...
|
|||
27.07.2012, 13:20 | #8 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
прием можно проверить так:
Написать прогу простенькую и в цикле опрашивать порт. сделать перемычку из 100 омного сопротивления ... но может меньше. Замыкая пины данных будет видно изменение прочитанного байта. Только с сопротивлением надо помудрить... главное не спалить вход. А в том мануале все просто. Есть базовый адрес 0378 - это регистр данных Контрольный регистр это 0378 + 2 = 037A вот там то и надо установить 5 бит в 1. И все должно заработать.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Считывание сигнала с LPT и USB портов | DGiv | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 13.03.2012 22:56 |
Переходник USB > COM BA8050 от "Мастер Кит" - нет приёма\передачи. | С.М.С | Компьютерное железо | 4 | 25.01.2012 13:26 |
Переходник USB 2.0 MicroSD | zumm | Компьютерное железо | 15 | 09.11.2010 17:04 |
LPT > USB | rama.sol | Компьютерное железо | 5 | 28.09.2010 14:28 |
Самодельные устройства для ПК, подключаемые в USB,LPT,COM порты | Terran | Компьютерное железо | 8 | 09.09.2010 01:42 |