Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить

Re: Делаем LPT управление шаговым двигателем со скоростью 4

Пт ноя 19, 2021 23:30:10

DMA у LPT ЕСТЬ! Как и FIFO. Сравнение корректное, так как скорость и непрерывность обеспечивается свойствами шины. Какая юзер мода, когда работа идет из ядра ОС через родной драйвер Винды. Вы в этом похоже не разбираетесь совсем. Товарищ Вы о чем? я говорю о работе Windows драйвера ECP (простите за привычное LPT), просто физически тот-же разъем.

Я же по русски говорил, обращаемся за сервисом к Windows драйверу (РОДНОМУ в каждой версии Windows есть из коробки) режима ECP DMA и чтобы работало нужно: Секрет прост. При работе посредством CreateFile(), WriteFile() есть одна особенность. Устройство, подключенное к LPT должно сбрасывать в 0 линии ОШИБКА и КОНЕЦ БУМАГИ. Иначе будет висеть. Соединить линию PeriphAck (11) и AckReverse (12) с общим проводом (20). HostClk (1) соединить с PerifClk (10).

P.S. Просто Вам трудно поверить, что родной, из коробки, драйвер Windows, умеет 4 мегагерца Х 8 бит без разрывов 8)

Re: Делаем LPT управление шаговым двигателем со скоростью 4

Сб ноя 20, 2021 18:51:50

Какая юзер мода, когда работа идет из ядра ОС через родной драйвер Винды. Вы в этом похоже не разбираетесь совсем. Товарищ Вы о чем? я говорю о работе Windows драйвера ECP (простите за привычное LPT), просто физически тот-же разъем.

Это вы ноль в теме о LPT. Что бы с эмулировать к примеру программно шину SPI на порту MiltiIO "LPT" GPIO, необходимо иметь прямой доступ к портам, а именно 0x378h и 0x379h где 378 на запись, 379 на чтение.
Просто так Windows из режима user mode не разрешит инструкции in и out, для этого нужен драйвер, который откроет дыру для программы.



Я же по русски говорил, обращаемся за сервисом к Windows драйверу (РОДНОМУ в каждой версии Windows есть из коробки) режима ECP DMA и чтобы работало нужно: Секрет прост. При работе посредством CreateFile(), WriteFile() есть одна особенность. Устройство, подключенное к LPT должно сбрасывать в 0 линии ОШИБКА и КОНЕЦ БУМАГИ. Иначе будет висеть. Соединить линию PeriphAck (11) и AckReverse (12) с общим проводом (20). HostClk (1) соединить с PerifClk (10).

P.S. Просто Вам трудно поверить, что родной, из коробки, драйвер Windows,

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

умеет 4 мегагерца Х 8 бит без разрывов 8)


Реальная скорость при обращение к порту с помощью инструкций in/out 1 МHz не выше.

Re: Делаем LPT управление шаговым двигателем со скоростью 4

Сб ноя 20, 2021 19:04:56

Ну Вы даете, чтобы так поступать in и out, Вам потребуется ОС вообще выгрузить. И чем Вам WriteFile() и ReadFile() не заменеа in и out, только снабженная DMA и нативным драйвером режима ядра? Что касается SPI так он может посылать данные неограниченной длинны даже в микроконтроллере тоже пользуясь DMA.

"Секрет прост, учить мат. часть и проверить что происходит с портом LPT, когда родной из коробки драйвер дрыгает раз несколько в секунд самостоятельно ноги Mio LPT изменяя их состояние."

И чего, Вам это мешает? А мне нет, поскольку протокол дрыгания известен мне, но не Вам я вижу. И этот протокол совершенно безопасен для управляемого устройства если оно не вступает в диалог согласования, который можно отключить. Да будет Вам известно, что дрыгает ногами драйвер и есть способ его попросить поступать по другому.


"Реальная скорость при обращение к порту с помощью инструкций in/out 1 МHz не выше"


Вы заблуждаетесь мамой клянусь.... Чтобы эмулировать SPI master на 4 Мегагерца достаточно команды ОС WriteFile() чтобы slave соответственно ReadFile() да будет латентность но она небольшая не больше 4/16=1/4 четверти микросекунды если повезет и до латентности обеспеченной приоритетом задачи которую я сам назначу, например высокий, но не реального времени, это мне не надо, хотя попробовать можно если написать код приложения в стиле кооперативной ОС.

Итого: с нативным драйвером латентность будет не выше чем с драйвером mah3 а утилизация процессора и длина сообщения без разрыва больше.

Re: Делаем LPT управление шаговым двигателем со скоростью 4

Сб ноя 20, 2021 22:34:25

Ну Вы даете, чтобы так поступать in и out, Вам потребуется ОС вообще выгрузить.


Вовсе не требуется, читайте MSDN. Из user mode можно использовать инструкции in/out

И чем Вам не заменеа in и out, только снабженная DMA и нативным драйвером режима ядра?

WriteFile() и ReadFile() работает с портом только при наличии драйвера. Штатный драйвер LPT удален по причине помехи и выставления разных уровней по адресу 0x378h

И чего, Вам это мешает? А мне нет, поскольку протокол дрыгания известен мне, но не Вам я вижу. И этот протокол совершенно безопасен

Совершенно не безопасен, так как задача не использовать LPT, а управлять совершенно иным устройством и повышение уровней в Data Port на одном из бит PD7 - PD0 приведет к печальным последствиям.

Вы заблуждаетесь ..Чтобы эмулировать SPI master на 4 Мегагерца достаточно команды ОС WriteFile()

Недостаточно, работа шины так и будет на частоте 1MHz.
Ответить