The GMX ( Gimasi Module eXchange ) bus has been developed for the Tuino family to easily bring on the platform different RF modules.
It's a very simple bus that essentially exposes different communication buses. The idea was to standardize the layout of the GPIO pins.
Here the layout:
General I/O Pins
- UART: UART_RX and UART_TX
- I2C: SDA and SCL
- SPI: MISO, MOSI, SCLK and CS
- GPIO: GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6
The standard power supply for GMX modules is 3.3V and all signal levels are 3.3V. The 5V is not compulsory and has been added only for legacy chips that need the 5V voltage, this to avoid the adding a step-up converter on the module.
Module Control Pin
gmxRESET: Reset signal to the GMX Module ( active LOW )
gmxINT: Interrupt pin to signal to the host processor (active LOW ). Usually used when an RX frame is received by the module.
IDENT_1Wire: One-Wire connection to the onboard EEPROM/PROM - usually a DS28EC20. This is currently optional, it's functionality has not yet been implemented. It will allow the host processor to identify the functionalities of the inserted module.
gmxCONNECT: Presence pin. On the module should be pulled UP to VCC (3.3V), the host processor will identify the presence of a module on the bus via this pin.
Programming / Debugging Pins
- SWDIO, SWCLK, SWO/V
Standard programming/debugging SWD pins. Not all modules will have these pins connected only those that have a programmable MCU on board.
The standard GMX bus specification has alternate functions for the GPIO pins layout. Again standardizing the layout of additional functionalities.
- GPIO1 => ADC1 / DAC1
- GPIO2 => ADC2 / DAC2
- GPIO3 => UART2_RX
- GPIO4 => UART2_TX
- GPIO5 => USB_DM
- GPIO6 => USB_DP
Master or Slave
GMX Modules are mainly Slave devices connected to a host MCU. But it is also possible to have a Master module, ie. having the main MCU on the module and driving through the GMX bus a peripheral board. In Master mode some of the pin direction get's reversed:
- gmxRESET becomes output. Reset to the peripheral board.
- SPI CS becomes output. Can be used as SPI CS, as well as other GPIO pins present on the bus.
- gmxInt becomes input. Interrput from the peripheral board.
The maximum dimensions for a GMX module are 28mmx45mm, like in the picture.