The MBHP_DIO_MATRIX module has been initially be designed for the MIDIO128 and MIDIbox KB project to simplify connections to keyboard matrices. It's compatible to the MBHP_DIN and MBHP_DOUT module, which means that it's for example possible to use it as a replacement when only two DIN and two DOUT shift registers are needed for a project, or when the special pinout of the digital in- and output pins lead to a better wiring to the frontpanel.
The digital input part consists of two 74HC165 based serial shift registers; every register provides 8 digital inputs which are sampled with the latch enable signal LD, and shifted out with the clock signal SCLK.
The digital output part consists of two 74HC595 based serial shift registers; every register provides 8 digital outputs which are updated with the latch enable signal RCLK, and shifted out with the clock signal SCLK.
The advantage of using such shift registers is, that they can be cascaded to a long chain without the need of more than 6 cables to the core module. This means that multiple MBHP_DIO_MATRIX modules can be connected in order to enhance the number of inputs and outputs. Normaly up to 16 DIN and up to 16 DOUT shift registers are supported by MIOS or MIOS32 based applications, MIDIbox NG even allows to connect up to 32 DIN and 32 DOUT registers in a chain!
By connecting multiple buttons to a matrix, it's possible to scan multiple rows as shown in this schematic.
Additional connection diagrams for Fatar keyboards can be found at the MIDIbox KB
Please note that the module could also be used for many other projects whenever they support matrices if not explicitely mentioned. Just translate "DIN shift register" and "DOUT shift register" to the schematic of the MBHP_DIO_MATRIX module! :-)
It's even possible to connect buttons (or encoders) and LEDs directly to the MBHP_DIO_MATRIX module as shown in this schematic.