STLab I-430 PCI добавим LPT порт

2015-8-13 9:15 Инструменты

    Попалась в руки никому не нужная PCI мультикарта последовательных портов STLab I-430. Всего на плате заявлено было 4 9-ти пиновых COM-порта, но на самой плате есть ещё 2 нераспаянных разъема для подключения COM-портов и 1 разъем, который также нераспаян, для подключения LPT-порта. Интересной является возможность получить железный LPT-порт для ПК, в котором его нет. Особо мудрить не пришлось. Сдампил прошивку последовательной памяти, нашел нужные данные, заменил на другие, запаял, включил ... работает! 

2015-08-13

    Ну а теперь, подробности. Мультикарта собрана на микросхеме MOSCHIP MCS9865TV-AA. Плата спроектирована с задумкой до 6-ти 9-ти пиновых COM-порта, но драйвер знает только про платы с 4-мя COM-портами, поэтому добавление 2-х дополнительных COM-портов не рассматриваю вообще. Основная коммутация портов происходит в микросхеме ST16C552CJ. Прошивка содержащая в себе DEVICE ID и VENDOR ID, находится в микросхеме U2. Это микросхема последовательной памяти объемом 32 кбита. В моём варианте она промаркирована как ATMLH30B 32DM. Работать с ней нужно как с ATMEL 24C32. Именно эту прошивку и нужно изменить, чтобы появился LPT-порт. Разъем для LPT порта обозначен как JP1. Для того, чтобы он заработал нужно будет допаять резистивные сборки RN1 и RN2 номиналами резисторов 4.7 кОм, RN3 и RN4 номиналами резисторов 33 Ома, и керамические конденсаторы C45 - C52 номиналами 220 пФ.

    Оригинальная прошивка имеет следующий вид в HEX формате:

2015-08-13

    По-умолчанию моя мультикарта определялась в Windows так: PCI\VEN_9710&DEV_9865&SUBSYS_3002A000&REV_00

    Посмотрев файлы в пакете драйверов с CD-диска, который шёл в комплекте, я нашел файл PciMf.inf, в котором есть следующие строчки:

[Multi_IOCards]
%MultiFunctionName%= PCIISA_0P4S.MF, PCI\VEN_9710&DEV_9865&SUBSYS_3004A000&REV_00
%MultiFunctionName%= PCIISA_0P3S.MF, PCI\VEN_9710&DEV_9865&SUBSYS_3003A000&REV_00
%MultiFunctionName%= PCIISA_0P2S.MF, PCI\VEN_9710&DEV_9865&SUBSYS_3002A000&REV_00
%MultiFunctionName%= PCIISA_0P1S.MF, PCI\VEN_9710&DEV_9865&SUBSYS_3001A000&REV_00
%MultiFunctionName%= PCIISA_1P1S.MF, PCI\VEN_9710&DEV_9865&SUBSYS_3011A000&REV_00
%MultiFunctionName%= PCIISA_1P2S.MF, PCI\VEN_9710&DEV_9865&SUBSYS_3012A000&REV_00
%MultiFunctionName%= PCIISA_2P0S.MF, PCI\VEN_9710&DEV_9865&SUBSYS_3020A000&REV_00

    Моя версия мультикарты прописана в самом верху 0P2S - значит, что LPT-портов = 0 шт, COM-портов = 4 шт. Но, хочу заметить, что работают все 4 COM-порта. Меня же интересует наличие LPT-порта. Физически на мультикарте можно включить только 1 LPT-порт, поэтому не имеет смысла выбирать конфигурацию 2P0S. Я выбрал то, что выше помечено зеленым цветом. Теперь нужно найти аналогию этих данных в прошивке и заменить нужные байты.

2015-08-13

    Формат прошивки не совсем понятен, но некая закономерность всё-таки прослеживается. Для включения LPT-порта нужно заменить байт $1F имеющий значение 02 на значение 12. После прошивки и подключения мультикарты, она определится как PCI\VEN_9710&DEV_9865&SUBSYS_3012A000&REV_00, т.е. 1 LPT и 2 COM-порта. Также в устройствах появится ещё один настоящий железный LPT-порт. С адресом по умолчанию А000. Для сравнения первый LPT-порт в обычном ПК имеет адрес 378F. В настройках драйвера на мультикарту можно выбрать другой адрес в диапазоне А000 - А007.

2015-08-13

    Новое ПО версии 0.98D12C4 для программатора Willem PCB позволяет выбрать любой имеющийся в системе LPT-порт и работать через него. И эта мультикарта отлично определилась в ПО программатора и тест на прошивку нескольких микросхем пройден успешно, по скорости всё так же как и с обычным LPT-портом. Проблем я не увидел, модификацией доволен .

    Есть некоторые нюансы, судя по всему диапазон адресов LPT-порта на разных материнских платах будет разным. Бывают другие версии подобных мультикарт, особенностью некоторых является отсутствие последовательной памяти, в которой хранится прошивка конфигурации мультикарты. И без микросхемы ПЗУ тоже будет работать, но нужно резистором запретить доступ к ней, иначе мультикарта не запустится вообще если просто сдуть ПЗУ.

    Прошивки ПЗУ можно скачать ниже.

4com.rar

4com+1lpt.rar

    Официальная схема PCI платы 4com+1lpt

MCS9865_PCI_4S1P_REFERENCE_SCHEMATIC_V100.zip

    Образ диска с ПО и драйверами, который шёл в комплекте с мультикартой.

STLab.iso.rar

Внимание! Копирование, в том числе частичное, запрещено!

Теги: STLab COM LPT MOSCHIP MCS9865 PCI

vfiuchcikicshuusrch.ddns.net
Карта Сайта