Задумался о том что давно ничего не выкладывал для народа, надо бы это дело исправить.
 Хочу представить XMaple, В одном кристалле вся неоходимая логика чтобы делать как MAPLE HOST  (переходники для дримкастовских джойстиков, рулей, маракасов, мышей, фишинг контроллеров и прочее, с чтением катрочек)
 так и MAPLE DEVICE  (Джойстики, карты памяти, рули, фишинг контроллеров, камеры, микрофоны и прочее и прочее)
 самое приятное в этой поделке, что береться дешевый кристалл от Альтера  (EPM3032ATC44 - я брал за 64р ~2$), и к нему привешивается дешевый ширпотреп-микроконтроллер, я выпишу пример подключения к ATtiny (XMAPLE осуществляет тока прием данных, это самое так сказать малореализуемое в контроллере, отправлять же данные по MAPPLE BUS микроконтроллер обязан уметь).
 Ну да ладно, хватит прелюдий.
1. Распиновка: 
 
  | NAME D0
 D1
 D2
 D3
 D4
 D5
 D6
 D7
 DTFLIP
 SDCKA
 SDCKB
 CE
 OE
 PAT
 cPAT
 RST
 FRMERR
 VDS
 VCC(3.3v)
 GND
 PU
 
 | PIN 12
 2
 6
 5
 44
 8
 13
 43
 21
 14
 42
 15
 10
 18
 19
 20
 22
 23
 9,17,29,41
 4,11,16,24,30,36
 1,7,26,32
 
 | Description Data Bit 0
 Data Bit 1
 Data Bit 2
 Data Bit 3
 Data Bit 4
 Data Bit 5
 Data Bit 6
 Data Bit 7
 Data BYTE Ready PIN
 MAPPLE BUS Serial Data/Clock 'A' PIN
 MAPPLE BUS Serial Data/Clock 'B' PIN
 Crystall enable pin
 Output enable pin
 NO CRC Pattern start signalling pin
 CRC Pattern start signalling pin
 RESET DEVICE signalling pin
 Frame Error Signalling pin
 Valid Data Signalling pin
 3.3v power supply
 Ground
 Pull upped pins
 
 | 
 Напомню, что у EPM3032ATC44 стандартный TQFP44 корпус, вот такой: 

А вот теперь поехали:
А как жа с этим чипом работать?
 1. Сброс MIE.
 1.1 Инициализация CE,OE->HI (VCC)
 1.2 CE->LO (GND), OE->LO (GND)
 1.3 Чип готов к работе.
 2. Прием сигнала (я рекомендую подключение VDS к ноге регистрации прерываний в микроконтроллере, прерывание на передний фронт, смотрим эпюры сигналлов ниже).
 2.1 Ждем прерывание LO->HI
 2.2 Как только прерывание пришло, смотрим что за прерывание:
     RST = 1 - Пришла команда сброса (только если наше устройство DEVICE)
     PAT = 1 - Получили начало пакета без CRC подтверждения
     cPAT = 1 - Получили начало пакета с CRC подтверждением
 2.3 Ждем DTFLIP = 0 
 2.3 Прошло 5us а DTFLIP не равно 1, переходим на пункт 1 (скорее всего произошло отключение).
 2.4 Ждем DTFLIP = 1, читаем байт данных.
 2.5 VDS=1?
      2.5.а Не равно (возможно конец пакета переходим на пункт 2.6) 
      2.5.а Равно (сохраняем байт данных переходим на пункт 2.3) 
 2.6 FRMERR = 1
      2.6.а Не равно (конец пакета переходим на пункт 2.7) 
      2.6.а Равно (ошибка в пакете переходим на пункт 2) 
 2.7 Конец приема, обрабатываем полученный пакет.
 2.8 Переходим на пункт 2.
 Вот, теперь глянем на эпюру иллюстрирующую прем CRC пакета, собственно в красках:

 Таааак, а теперь я покажу типовое подключение к микроконтроллеру (DEVICE):

 Вот что интересно, чип XMAPLE регистрирует начало и конец пакета, а так же показывает состояние сигнала 'DTFLIP', однако если 'VDS' = 0, то мы можем однозначно понять что текущий пакет нам не нужен, такое возможно если мы активировали кристал в тот момент когда уже идет передача пакета, для лучшего понимания работы XMAPLE выложу ка я, эпюру сигнала побольше. 

P.S в приложенных, файлы прошивки...