Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Обсуждение статей
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2012, 00:39   #1
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию 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: Предполагаю, что вопрос поднял не в том разделе. Да простят меня модераторы и пошлют куда им виднее.
Тут уже было обсуждение похожей темы и были отрицательные высказывания в сторону подобного устройства.
Моя тема на стыке программирования, железа, подготовки будущей статьи.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 26.07.2012, 07:27   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Для приема данных необходмо включить у порта режим ECP+EPP, иногда он называется Bidirectional. В компах это включалось в биосе, а у переходника ... в общем надо поискать как это включить и будет все ок
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 26.07.2012, 09:03   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Цитата:
Для приема данных необходмо включить у порта режим ECP+EPP, иногда он называется Bidirectional. В компах это включалось в биосе, а у переходника ... в общем надо поискать как это включить и будет все ок
Это не так. ECP и EPP - это самостоятельные протоколы обмена в группе протоколов стандарта 1284.
Bidirectional - протокол обмена, который развивает протокол Centronics. Оба они так же входят в группу протоколов 1284.

Поскольку на хвосте стоит микроконтроллер (узнать его имя не удалось), то обмен ведётся в автоматическом режиме. Т.е. при получении команды прямой передачи и данных, микроконтроллер самостоятельно генерирует стробы и контролирует состояние сигналов ПУ. Такой же режим, как я предположил, должен был быть реализован и для обратной передачи (чтение из ПУ). Однако ...

Но вот только что вычитал в одном анг. документе, что режим все же надо включать.
Будем пробовать.

Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 26.07.2012, 09:38   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

...направление обмена определяется управляющими регистрами порта.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 26.07.2012, 21:34   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

У указанного переходника есть нулевая конечная точка, и две конечных токи для чтения и записи байтов данных. При чтении состояния нулевой конечной точки можно прочитать байт состояния принтера (сигналы Select, PaperEnd и Error), а при записи - сформировать сигнал Init (сброс состояния принтера).
Так теперь понимаю, что надо записать в нулевую конечную точку некоторый код, который бы перевел выход данных в третье состояние.
Попытка записать $20 (пятый бит, как описано у М. Гука) или просто и грубо - $FF, результата не принесла.
Сижу, "курю бамбук" - пытаюсь найти нечто подобное в datasheet, которые имеются в сети для подобных контроллеров.


Ну вот, поделился мыслью и появились новые мысли.
А то как-то застрял ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 26.07.2012, 22:01   #6
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Странно. Везде по сети написано что переходник уже работает в режиме bidirectional.
А установкой соответствующего бита почему не вышло??
Вот красивый мануал, мне понравилось. Расписаны все контрольные регистры. Мануал
Там внизу указано какой бит дернуть для bidir.

А как вы проверяете прим данных??? Чисто технически???
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 27.07.2012, 00:17   #7
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Ссылка мне знакома. Спасибо, что еще раз напомнили. Прочитал повнимательнее. Попробую разобраться, хотя с английским есть проблемы

Цитата:
А как вы проверяете прим данных??? Чисто технически???
Приема данных пока не получилось реализовать, так как ошибка появляется на стадии таймаута - буфер данных пуст. Сигналы для записи формирует моя схема, но она должна отреагировать на спад сигнала HostBusy (AutuFeeD). К сожалению этот сигнал не хочет падать просто при подаче команды чтения (как мне казалось, это должно было делаться автоматом). Теперь понимаю, что этот спад заблокирован, пока выходные сигналы данных не переведены в третье состояние.
Для контроля есть еще DeviceMonitor. К сожалению только пробная версия и остался один день (лекарства нет)

Для контроля построил схему так, что записываю данные в регистр и должен их же и прочитать.

Да, нашел еще одно описание работы USB-принтеров. Там сказано, что
Цитата:
Подключение принтера USB эмулирует его подключение к LPT -порту в режиме SPP или двунаправленном (IEEE 1284).
Цитата:
А установкой соответствующего бита почему не вышло??
Пытаюсь разобраться. Пока потратил время на перепрочтение имеющегося ...

Спасибо за внимание. Есть чем прибить ближайшие дни ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 27.07.2012, 13:20   #8
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

прием можно проверить так:
Написать прогу простенькую и в цикле опрашивать порт.
сделать перемычку из 100 омного сопротивления ... но может меньше.
Замыкая пины данных будет видно изменение прочитанного байта.

Только с сопротивлением надо помудрить... главное не спалить вход.

А в том мануале все просто.
Есть базовый адрес 0378 - это регистр данных
Контрольный регистр это 0378 + 2 = 037A вот там то и надо установить 5 бит в 1. И все должно заработать.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считывание сигнала с 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