В связи с разбиением платы на части и иной нумерацией микросхем и разъемов изменилось и описание девайса, который теперь состоит из трёх плат (см. принципиальные схемы
тут и
тут):
Разъемы платы и количество пинов в скобках:
JP1, JP2, JP3 (24) - подключение платы NedoCPU (NI-3x8);
JP4 ( 8 ) - внешняя шина данных (8 i/o);
JP5 ( 15 ) - шина NI-15 (8 i/o, 5 o);
JP6 ( 8 ) - входной порт (8 i);
JP7 ( 8 ) - входной порт (8 i);
JP8 ( 8 ) - входной порт (8 i);
JP9 ( 8 ) - входной порт (8 i);
JP10 ( 8 ) - входной порт (8 i);
JP11 ( 8 ) - выходной регистр (8 o);
JP12 ( 8 ) - выходной регистр (8 o);
JP13 ( 8 ) - выходной регистр (8 o) выводящий наружу младшие байт внутренней шины адреса;
JP14 ( 8 ) - выходной регистр (8 o) выводящий наружу старший байт внутренней шины адреса.
JP15 ( 8 ) - непосредственные входы-выходы микроконтроллера для внешнего использования (RA0,RA1,RA2,RA3,RTCC,RB5,RB6,RB7), причём 4 из них могут являться источниками прерывания работы микроконтроллера (7 i/o, 1 interrupt);
JP16 (32) - подключение бортовой памяти NedoMem (NI-32).
Итого имеем следующие входы-выходы:
- 1 вход прерываний (RTCC) - не может быть непосредственно использован как вход или выход данных (теоретически может быть использован как вход-выход при подключении другого модуля NedoCPU, построенного к примеру на PIC у которого будет пин A4);
-
23 входов-выходов (3 из которых также могут быть запрограммированы как входы прерваний - а именно RB5,RB6,RB7);
-
40 входов (ввод через буфера);
-
37 выходов (вывод через регистры).
т.е. всего
100 возможных входов/выходов для приёма/передачи данных (отсюда и название материнской платы - NedoMama-100).
Модуль процессора NedoCPU может быть построен на базе другого микроконтроллера ( не SX-28 ) с аналогичным количеством портов, например PIC16F870. В материнскую плату может быть воткнута бортовая память ( например NedoMem-16K ) объемом до 64К, причём адресующие её сигналы могут быть использованы как выходы (JP13 и JP14). На выход NI-15 можно припаять как угловые иголки, для втыкания платы NedoMama-100 вертикально в другую NI-15 материнку либо бредборду (в этом случае преобразователь напряжения 7805 (IC17) можно не припаивать, считая что питание идёт с шины), либо 15 дырчатый разъем-маму для втыкания других NI-15 устройств или простых разветвителей шины NI-15 (типа NedoMama-1) - в таком случае плата располагается горизонтально - разъемами вверх (и в бок), а микросхемами вниз.
Теперь о том как с этим устройством предполагается работать. Микроконтроллер SX-28 ( модуль NedoCPU-28 ) имеет лишь 20 сигналов ввода-вывода и данная плата должна дать возможность использовать большее количество сигналов (а именно 100), но не напрямую. На плате имеется внутренняя шина данных, подключённая к порту C микроконтроллера (RC0...RC7) - разъем JP3. Место куда эту шину подключать, определяется младшими 4 битами порта B (RB0...RB3) - разъем JP2, которые дешифруются с помощью IC1 и IC2 (а само действие запускается временным обнулением бита RB4):
0000 ( S0 ) - чтение из бортовой памяти NedoMem по ранее сохранённому адресу;
0001 ( S1 ) - чтение с внешней шины данных (JP4) через буфер IC3 (есть возможность использовать буфер не только на вход, но и на выход - см.описание регистра управления);
0010 ( S2 ) - чтение с шины NI-15 (JP5) через буфер IC5;
0011 ( S3 ) - чтение буфера IC7 (JP6);
0100 ( S4 ) - чтение буфера IC9 (JP7);
0101 ( S5 ) - чтение буфера IC10 (JP8);
0110 ( S6 ) - чтение буфера IC11 (JP9);
0111 ( S7 ) - чтение буфера IC12 (JP10);
1000 ( S8 ) - запись в бортовую память NedoMem по ранее сохранённому адресу;
1001 ( S9 ) - запись в регистр IC4 (для дальнейшего вывода во внешнюю шину данных JP4);
1010 ( S10 ) - запись в регистр IC6 (для дальнейшего вывода в шину NI-15 через разъём JP5);
1011 ( S11 ) - запись в регистр управления IC8 (о назначении отдельных битов см.ниже);
1100 ( S12 ) - запись в регистр IC13, хранящий младший байт адреса бортовой памяти (байт доступен извне через разъем JP13);
1101 ( S13 ) - запись в регистр IC14, храняший старший байт адреса бортовой памяти (байт доступен извне через разъем JP14);
1110 ( S14 ) - запись в регистр IC15, выход которого доступен через разъем JP11;
1111 ( S15 ) - запись в регистр IC16, выход которого доступен через разъем JP12.
Назначение битов регистра управления IC8 (запись по адресу 1011):
бит 0 - сигнал _CS шины NI-15 (JP5) - может использоваться как обычный выход;
бит 1 - сигнал ALE шины NI-15 (JP5) - может использоваться как обычный выход;
бит 2 - сигнал M_IO шины NI-15 (JP5) - может использоваться как обычный выход;
бит 3 - сигнал _RD шины NI-15 (JP5) - может использоваться как обычный выход;
бит 4 - сигнал _WR шины NI-15 (JP5) - может использоваться как обычный выход;
бит 5 - разрешение вывода данных из регистра IC6 (записанного по адресу 1010) в шину NI-15 (JP5);
бит 6 - разрешение вывода данных из регистра IC4 (записанного по адресу 1001) во внешнюю шину данных (JP4);
бит 7 - управление направлением буфера IC3 (обычно "0", но может быть установлено в "1" для вывода во внешнюю шину данных без защёлкивания через адрес 0001 - при этом бит 6 должен быть установлен в "1", чтобы выход регистра IC4 не шёл в эту шину).