Для тестирования (с помощью PC) устройств с интерфейсами NI-15 и NI-3x8 (nedoCPU), я разработал простую плату под названием
nedoTester-22 (22 так как имеется 22 сигнала ввода-вывода - 8 I/O + 14 O). Причём подключив плату к
NedoMama-100, мы получим возможность использовать до 100 дискретных входов-выходов! Состоит плата из 6 микросхем - четыре регистра 74LS574, один буфер 74LS245 и один мультиплексор 74LS157. К PC плата подключается через стандартный LPT порт (8 выходов данных, 4 выходных сигнала, 5 входных сигналов). Плата имеет два разъема NI-15 и NI-3x8 (можно пользоваться либо одним, либо другим т.к. на них выходят одни и теже сигналы). Программно оно может управляться на языке Python и библиотеки
pyparallel (есть версии под Linux и Windows). Регистры назовём RA,RB,RC,RD. Часть сигналов с регистра RA идут на шину управления NI-15 либо младшую часть порта A разъема NI-3x8 (старшие 2 сигнала порта A заняты под GND и +5V). Старшие 3 бита выхода регистра RA используются следующим образом - RA5 разрешает нулём выход регистра RC; RA6 подключается к зелёному светодиоду; RA7 выбирает какие 4 бита регистра RD идут на PC через мультиплексор ("0" - младшие 4 бита, "1" - старшие 4 бита), кроме того этот сигнал идёт обратно в PC через один из входных сигналов порта LPT (чтобы программно удостовериться, что подключена ожидаемая половинка байта). Выход регистра RB подключается только к порту B разъема NI-3x8. Выход регистра RC подключается к шине данных NI-15 либо к порту C разъема NI-3x8 (причём как уже писалось выход этого порта может быть переведён в сосотяние Z путём записи "1" в бит RA5). Входы регистров RA,RB,RC подключены через буфер к шине данных LPT. Вход регистра RD подключен туда же, куда и выход регистра RC. Выход регистра RD подключен к мультиплексору, с выхода которого 4 бита идут на PC через входные сигналы порта LPT. Сигналы записи всех регистров подаются параллельно через выходные сигналы порта LPT (т.е. допустима параллельная запись в эти регистры). Как видно запись 8 бит в регистры идёт непосредственно с 8 линий данных порта LPT, а вот чтение идёт половинками (4 бита) за раз (напомню, что переключение половинок управляется через RA7), причём перед чтением нужно запомнить снимаемый байт на регистре RD.
P.S. В марте 2016 переименовал проект из NedoTest-21 в nedoTester-22