> При работе с ЛПТ в ЕПП моде, то есть посылке|приемке данных по адресам LPTBASE+3,LPTBASE+4,LPTBASE+5, скорость передачи данных до 2Мбайт/с с аппаратным формированием сигналов управления, которые можно использовать для защелки данных во внешних регистрах.
> Для использования USB есть 2 микросхемки фирмы FTDI - одна USB-RS232, другая - USB-параллельный интерфейс (не LPT). Во втором случае скорость до 1МБ/с. Есть драйвер под Линукс.
Так дело не в скорости порта, а чтобы софт умел(успевал) выдавать на ЛПТ с частотой, скажем 50кГц, импульсы управления шаговиком (шаговик будет работать в микрошаговом режиме), ПРИ этом чтобы можно было еще чтонибудь запустить параллельно, иначе получается как в однозадачном ДОСе.
Кто скажет, реалтайм патчи уже здесь нужны, или обычным ядром обойтись можно?
"...а это уже контейнерная перевозка называется..." :) (с) ТИП :)
для этого всякие RS485 или CAN басы придуманны :)
на LPT(serial, USB) PIC с CANом, и PICи с CAN на шаговые двигатели, тем более, что тащить паралельные шлейфы к моторчикам - моветон, и неудобно и помехонезащищенно! :)
> Так дело не в скорости порта, а чтобы софт умел(успевал) выдавать на
> ЛПТ с частотой, скажем 50кГц, импульсы управления шаговиком (шаговик
> будет работать в микрошаговом режиме), ПРИ этом чтобы можно было еще
> чтонибудь запустить параллельно, иначе получается как в однозадачном
> ДОСе.
насчет 50 кгц - вполне возможно - надо пользоваться DMA для lpt-порта. надо будет прикрутить внешную задержку которая из strobe будет делать ack. и побегут из памяти данные на lpt-порт, минуя процессор. с частотой определяемой внешней задержкой. а можно сам контроллер дма подкорректировать. или данные сделать "пожиже", скажем изменение данных на каждые два (или более) такта записи в порт.
ps навеяло воспоминаниями про псевдо-звуковуху GUS :) где-то даже линуксовый драйвер для него есть.
Кстати, для LPT дома валяется следующая самоделка: ЛПТ -> (ULN) -> реле, 220В. Другими словами, управление включением/выключением устройств с компьютера. Удобно.
ЗЫ. А на вечеринках эта же вещь используется для светомузыки (только нужны спец лампочки, обычные быстро сгорят, да и светофильтр хороший самому непросто сделать). Правда, приходится бук с Windows клянчить, там есть такой интересный плагин к Винампу:
http://discolitez.com/
> на выходе USB регистр ... ядре модуль хитрый
"всё уже урадено до нас"
есть стандартный модуль ядра для usb lpt, есть куча микросехмок lpt via usb - самая удобная imho - у philips в DIP корпусе (номер тончо н еопнмю но ищется не сложно, что-то типа http://www.semiconductors.philips.com/pip/isp1181A.html) - её аналог часто в сканер стоял ранбьше
сейчас чаще genetec ставят.
кстати - рекомендую - на основе genetec есть классное поделие - USB-to-IDE (синего цвета, рублей 500 стоит вместе с БП, на конце обычный 40-pin) - мы так на прольянт залили демьяна с dvd (внутри прольянта только cd был).
PLT порт в SPP-моде выдает чуть больше 100кБ/с - т.е 50кГц есть, а как я уже говорил, в EPP-моде до 2МБ/с - т.е. до 1МГц. В паузах между посылками данных свободного процессорного времени будет скорее всего достаточно.
А для управления именно шаговыми двигателями можно легко использовать электронику от дисководов - там уже и так все есть. Всего несколько проводов - шаг, направление и питание.
> она мне от ноута старого осталась не выкидывать же :-) народ почемуто обычно развивает тему "как прицепить tft lcd матрицу от ноута к vga" а вот как самостоятельный девайс никто что то не хочет юзать...
Я уже подключил старую Ч/Б матрицу от 386 ноута к VGA. Здесь есть проблема в том, что у старых матриц экран разбит на две горизонтальные половины, вывод на которые происходит одновременно. Для того, чтобы не было мерцания (а частота кадров около 60Гц) необходима буферная память на вторую половину кадра. При этом сильно усложняется электроника - приходится применять ПЛИС. Ну и АЦП на входе.
Если нужен автономный внешний экран, то можно попробовать для удешевления конструкции задействовать какую-нибудь ЕГА карточку, прицепив к ней на ISA шину контроллер вместо РС. Выходы у нее ТТЛ, есть своя интегрированная память, встроенный знакогенератор для текстовых режимов и обычно есть интегрированный RS-232, причем полный, а не только TxD RxD, как во многих контроллерах. Програмно установить разрешение по вертикали на половину матрицы и гнать выходные данные прямо на матрицу. Ну может ещё пару мелких микросхем понадобиться.
Кстати, на ЕГА карточках очень часто устанавливали и LPT порт, поэтому его можно задействовать для образования клавиатуры - вот вам и очень дешевый и компактный терминал.
> Позволю не согласиться с данным утверждением, как разработчик логического анализатора на LPT порт. Порт может выдать в режиме SPP 840кБ/с.
Я сделал себе IDE контроллер на LPT, так в нем в SPP моде трансфер на запись (то есть по 8-битной шине) был 130кБ/с с учетом формирования протокола обмена, который занимал примерно 10% времени. Чтение естественно было медленне за счет 4-битной шины.
Чтение/запись в порт ~1.3us. 840к - теоретический предел, без потерь на обработку.
При написании процедуры на асме, которая читала порт и складывала в память, контролируя нужный сигнал для прекращения, удавалось реально приблизиться к указанному значению(достичь правда не удалось :-) ).
А почему было не переключить порт на чтение и не читать по всем 8-ми разрядам? Там есть битик в порте управления( в ранней документации он показан как зарезервированный) кажеться 5-ый, который и переключает на ввод порт данных.
Кстати, индус так и не привел в исходниках ту часть, которая выводит данные в порт. :-)
> А почему было не переключить порт на чтение и не читать по всем 8-ми разрядам? Там есть битик в порте управления( в ранней документации он показан как зарезервированный) кажеться 5-ый
Этот бит действительно переводит порт в двунаправленную PS/2 моду, а она не везде есть. Не знаю правда как сейчас. Но я использовал ЕРР, а SPP оставил на всякий случай.
>под Оффтоп есть классная штукенция LabVIEW так что не заморачивайтесь на разную бурду
Почему именно под оффтоп? C маленькой буквы, кстати. Под Linux он тоже есть. Только управление одним шаговым двигателем через LabVIEW это не слишком ли тяжелое решение?
>>Если нужен автономный внешний экран, то можно попробовать для удешевления конструкции задействовать какую-нибудь ЕГА карточку, прицепив к ней на ISA шину контроллер вместо РС. Выходы у нее ТТЛ, есть своя интегрированная память, встроенный знакогенератор для текстовых режимов и обычно есть интегрированный RS-232, причем полный, а не только TxD RxD, как во многих контроллерах. Програмно установить разрешение по вертикали на половину матрицы и гнать выходные данные прямо на матрицу. Ну может ещё пару мелких микросхем понадобиться. Кстати, на ЕГА карточках очень часто устанавливали и LPT порт, поэтому его можно задействовать для образования клавиатуры - вот вам и очень дешевый и компактный терминал.
не совсем идею понял и еще lpt на ЕГАшке наблюдал а вот rs232 ниразу не попадалась...
тогда уж можно взять старую vga с vesa future connector там как раз набор сигналов нужный...
эх чувствую придется таки модуль от тошибы сателита на ct65550 юзать
>> Чтение/запись в порт ~1.3us
>Это на какой такой материнке?
Это, сейчас на любой материнке. Проверяли на нескольких экземплярах (i815, nForce2) с замерами времени записи - результаты ложились в пределы 1.1-1.4 мкс.А ноги этих времен ростут из шины ISA, где времена записи в порт ложились в некие пределы с разбросом. Думаю, не секрет, что ISA до сих пор эмулируеться(или неявно присутствует) во всех современных чипсетах(про самые современные умолчу, т.к. понятия не имею).
>Этот бит действительно переводит порт в двунаправленную PS/2 моду, а она не везде есть.
Утверждение, по крайней мере спорное, т.к. верно было в ранние времена 286/Jr. А нынче все матери умные и всеподдерживающие. Во всяком случае, учитывая мой скромный возраст, в реальной работе не поддерживающих его матерей я не встречал.
> И какой скорости удалось достичь в EPP режиме? А данную штуку LPT-IDE увидеть где-то можно? А под Линукс?
Я уже говорил, что скорость в такой моде до 2МБайт/с. С IDE винтом под виндой реальный трансфер был около 1.3МБайт/с. За основу схемы и драйвера была взята тема IDE2LPT адаптера, описанного в журнале Радиохобби лет 5 назад. Добавил в него аппаратное формирование сигналов управления для IDE шины и поддержку EPP моды. Все это дело размещается в одной альтере EPM3128ATC100-10. Драйвера только под ДОС и винду-9х, Даже под 2000/ХР не получилось осилить.
А вот, если есть старая матрица монохромная неизвестного производителя с
памятью, как определить её протокол? Разрешение 640Х480.10 сигнальная входная шина.