Archive for the ‘LPT-based’ Category.

avreal и LPT в Windows

С точки зрения AVReAl понятие «Windows» распадается на два семейства операционных систем.

Семейство Windows 9X, например, Windows 98, не требует установки драйвера доступа к LPT. В такой системе avreal работает с портами напрямую.

Windows XP, Windows 7 принадлежат другому семейству — Windows NT. Для них необходим драйвер DLPortIO, установка которого для 32-битных та 64-битных систем описана ранее.

Для всех версий Windows в командной строке необходимо указывать номер LPT или его базовый адрес, например, -p1, -p378. Номер порта есть сокращением стандартного адреса, как это сказано в описании ключа -p. Считается, что LPT1/2/3 имеют адреса 378/278/3BC.

Если LPT-порт используется на нестандартных адресах, например, используется плата расширения PCI-LPT (PCI-Express LPT, PCMCIA-LPT), то базовый адрес можно узнать в свойствах порта в диспетчере устройств.

»»» Как узнать адрес LPT в Windows XP, Windows 7

avreal и LPT в Linux

В отличие от Windows линейки NT, для работы avreal с LPT-адаптерами в Linux/x86 (32- и 64-битных) не нужен специальный драйвер типа DLPortIO.sys. В отличие от Windows 98, в Linux любая программа не может просто так получить доступ к портам ввода-вывода, для этого нужно настроить разрешение на такую работу.

Есть два варианта работы — непосредственный доступ к портам ввода-вывода и работа с устройством параллельного порта parport. Непосредственный доступ к портам даёт несколько более высокую скорость программирования, но требует использования привилегий администратора системы во время запуска avreal, что не всегда удобно или возможно.

Continue reading ‘avreal и LPT в Linux’ »

DLPortIO x64 и 64-bit Windows.

К сожалению, драйвера и библиотеки DriverLINX (DLPortIO.sys + DLPortIO.dll) не существует для версий Windows под архитектуру x86-64 (AMD64, Intel64). По крайней мере, я их не находил. Scientific Software Tools, Inc. (http://www.sstnet.com) прекратила поддержку этого драйвера, передала его другой фирме, но и там, кажется, есть только 32-битный вариант.
К счастью, существует комплект InpOut32 (hwinterface.sys+inpout32.dll), а также 64-битная версия InpOutx64 с драйвером hwinterfacex64.sys.

»»» Как установить DLPortIO в 64-битной Windows

DLPortIO и 32-bit Windows.

Для Windows NT, Windows 2000 и 32-битних WindowsXP, Windows 7 установку драйвера DLPortIO.sys и библиотеки DLPortIO.dll можно произвести как привычным для большинства пользователей Windows GUI-инсталлятором, так и CLI (Command-Line Interface) инсталлятором. Я рекомендю CLI-инсталлятор, занимающий в десять раз меньше места. Да и процесс установки мало отличается, ведь командный файл уже написан, остаётся его запустить.

»»» Как установить DLPortIO в 32-битной Windows

DLPortIO 32, DLPortIO x64 for Windows XP, Windows 7

avreal работал под 64-битными версиями Windows и раньше. Кто знал, что и как нужно делать — ставил себе нужный драйвер и программировал AVR-ки. Наконец-то я нашёл время и место для собственноручной проверки установки обычного драйвера DLPortIO под 32-битной версией Windows7 и его эмулятора для WindowsXP/64 и Windows7/64. Программа dd потрудилась как следует, восстанавливая разделы из образов перед каждой проверкой установки на «чистую» систему тем или иным способом.

В результате я выложил на страничке download архивы для двух методов инсталляции DLPortIO-32 (графический интерфейс и интерфейс командной строки) и архив с DLPortIO 64 (интерфейс командной строки). Можно выкачивать, устанавливать, работать.
А я в ближайшее время напишу про всё это несколько подробнее.


Написал:
DLPortIO и 32-bit Windows.
DLPortIO x64 и 64-bit Windows.

LPT и PnP в Windows.

Под ОС Windows avreal иногда нестабильно работает через LPT. Программирование может завершиться нормально, может в любой момент дать сбой, например, synchronisation lost.

Причиной таких сбоев может быть работа подсистемы Plug-and-Play (PnP) в Windows, периодически опрашивающей LPT с целью обнаружения подключенных устройств. Такой опрос производится при загрузке системы, что видно по перемигиванию светодиодов на адаптере, но оно может происходить и при работе. К сожалению, драйвер DLportIO.sys не блокирует доступ к LPT от других програм при работе с портом клиента данного драйвера и подсистема PnP уверена, что порт не занят, обращается к нему и нарушает работу avreal.

Для устранения проблемы загрузите и запустите на выполнение файл disable-lpt-poll.reg. Этот файл прописывает в реестре Windows ключ, запрещающий такой опрос (poll) во время работы системы.

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Parport\Parameters]
"DisableWarmPoll"=dword:00000001
[flagcounter image]