Class 2 Motherboards

Introduction

This article tries to explain in detail the Rhomb.io Standard used in the design of Rhomb.io Class 2 Motherboards. It explains the type of sockets used and all the connections that must be made between the Master module and the differents Slave modules that can be plugged on the corrier board, as well as the auxiliary circuits required for the correct functioning of all communication interfaces, GPIO and control signals.

Class 2 Motherboards

Class 2 Motherboards are those that allow the interconnection between Master modules with microcontrollers and peripheral Slave modules that provide various functionalities, so they are perfect for devices that do not need a core microprocessor. Thus, it is possible to create small electronic systems combining modules in a simple way, without the need to design, manufacture and assemble an ad hoc PCB.

Class 2 Motherboards are very versatile. For practical purposes, its main advantage is having a socket in which many different processing units fit together and being able to switch between them indistinctly. The user will have at his disposal a wide range of Master modules with microcontrollers from different manufacturers, different architectures and different memory capacities, and anyone can be connected to the socket of the Motherboard. Again, this feature is very useful for conceptualization phases of a product, in which it is still being decided which microcontroller would adapt better to the system. The fact of being able to perform rapid tests between several models of microcontroller by simply removing a Master module and putting another one is a considerable saving of time and money, in addition to eliminating to a large extent the possibilities of future design failures.

These Motherboards have the ability to connect several Slave modules with the Master module. The Slave module sockets of the Rhomb.io platform have exactly the same pin assignment, so any Slave module will work independent of the socket in which it is connected. The additional connectors of the Master module socket provide the necessary connectivity for the Slave module sockets.

Rhomb.io sells a series of Class 2 motherboards with different form factors, essentially small boards ready to be used in embedded systems, portable equipment, drones, robots, "wereables", etc. These boards have been developed with the Internet of Things (IoT) in mind.

Rhomb.io Standard

To make it possible for any Master module to be able to communicate with any Slave module, regardless of the communication interface used, the number of GPIOs, the control signals or the socket used, a robust connection system is necessary. During the last years, Tecnofingers S.L. has developed its own standard of connections between modules: the Rhomb.io Standard.

This standard is divided into two parts, on the one hand it defines the modules themselves: the different types of modules and their functions, their dimensions, the electrical signals they use and the connectors that allow their communication with the motherboards. On the other hand it defines all the connections that must be made in the motherboards between sockets to allow a total communication between a Master module and one or more Slave modules without the buses communicating, GPIOs or control signals cause collisions, interferences or short-circuits.

In the following sections explains this Rhomb.io Standard applied to Class 2 Motherboard.

Sockets

The main component of a Rhomb.io Class 2 Motherboard is the socket where the module will be plugged. This socket contains all the signals used by the microcontroller and the peripheral modules, from power rails to GPIO passing by control signals. There are three different types of sockets depending of the number of lines and functionalities of the module: S100, S200 and S300. This codification indicates the maximun number of signals available in the socket. The size of the footprint is the same in all them, only the number of connectors used changes.

The part number of the Rhomb.io connectores used in the sockets are the 5037725010 for the receptacle and the 5037765010 for the plug, both of the Molex SlimStack series. These low-profile connectors are ideal for compact applications and garantee a robust communication between the Motherboard and the module. Each one have 50 loaded circuits that support up to 300 mA. The manufacturer garantees a durability of 30 mating cyples, but we have done many test and we assure that this number is much higher.

S100 Socket

It is the socket of the Slave modules and the simpliest S100 Master modules, it contains all the basic signals required to turn on the module and to keep a complete communication with the Motherboard regardless its functions and used interface.

The Rhomb.io modules measure 30 x 23 mm. The sockets are a 0.3 mm larger because of fabrication error and to leave a clearance between the module an the onboard components. The receptacle connector (J101) is located on the left side and the plug connector (J202) on the right side. The use of male and female connectors and the mark located on the top left is to guarantee the connection of the module with the correct polarity.

The next figure shows specifications of the S100 socket:

S100 Master Socket Dimensions.png

           S100 Slave Socket Dimensions.png

S200 Socket

It is the socket for the S200 Master modules. These modules mount more powerful microcontrollers with more functionalities that requieres 100 extra signals. These new signals are included in the two additional Rhomb.io receptacle connectors added on the bottom side of the socket (J203 and J204).

The next figure shows specifications of the S200 socket:

S200 Socket Dimensions.png

S300 Socket

It is the socket for the S300 Master modules. These modules mounts the most powerful and versatile microcontrollers that can be carried on a Rhomb.io module. They can even process multimedia content and use the RMII interface. In this socket two extra Rhomb.io plug connectors are added to use the new functionalities of these microcontrollers (J305 and J306).

The next figure shows specifications of the S300 socket:

S300 Socket Dimensions.png

Pinout and Connections

The Rhomb.io Standard has been designed to interconnect a Master module with up to three Slave modules, but if you use a S100 Master, you will not be able to control more than one Slave module without resorting to auxiliary circuits such as switches or IO-expanders. You need a S200 Master to control two o three Slave modules, but pay attention when choosing your Master module because not all of them have all the necessary signals to do it. For example, a Master module that mounts a microcrontroller with 150 lines will have a S200 format because it use more than 100 signals, but it won't fill all the S200 connections. In the same way, you have to ensure that the Master module has available the same communication interface as the Slave module and it is tied to the Rhomb.io connectors of the socket. Regardless the Master module used, the Class 2 Motherboards will have all the connections between modules that the Rhomb.io Standard defines.

Pinout

The full pinout of a Master module is shown in the following table. An S300 socket have all lines. The S200 and S100 sockets have exactly the same pinout but eliminating the signals from the extra connectors.

Master Socket

J101, J201 & J301 (S300, S200 & S300 Sockets)
Pin Number Pin Name Description Pin Number Pin Name Description
1 GND GND 50 GND GND
2 SDIO_CMD SDIO Interface 49 QSPI_CS0 QSPI Interface
3 SDIO_CDN 48 QSPI_IO3
4 SDIO_DATA3 47 QSPI_IO2
5 SDIO_DATA2 46 QSPI_CLK
6 SDIO_CLK 45 QSPI_IO1
7 SDIO_DATA1 44 QSPI_IO0
8 SDIO_DATA0 43 GND GND
9 GND GND 42 USB_N USB Interface
10 MTR_EXT0 External Connection 41 USB_P
11 MTR_EXT1 40 GND GND
12 MTR_EXT2 39 UART-B_RXD UART-B Interface
13 MTR_EXT3 38 UART-B_TXD
14 MTR_EXT4 37 GND GND
15 MTR_EXT5 36 I2C-A_SDA I2C-A Interface
16 MTR_EXT6 35 I2C-A_SCL
17 GND GND 34 #NMI Interruption
18 VRTC RTC Voltage 33 GND GND
19 CLK32K 32.768 kHz CLK Input 32 SPI-A_MISO SPI-B Interface
20 GND GND 31 SPI-A_MOSI
21 CAN-A_RXD CAN-A Interface 30 SPI-A_CLK
22 CAN-A_TXD 29 SPI-A_CS0
23 VBAT Battery Voltage 28 INT0 Interruption
24 27 GND GND
25 26 RESET_OUT Control Signal
J102, J202 & J302 Connectors (S300, S200 & S300 Sockets)
Pin Number Pin name Description Pin Number Pin name Description
1 GND GND 50 GND GND
2 DIFF-A_N Differential Pair 49 DIFF-A_P Differential Pair
3 IO0 GPIO 48 1WIRE 1-Wire Interface
4 IO1 47 VIO_OUT Master Logic Level
5 IO2 46 VIO_IN_MASTER Slave Logic Level
6 IO3 45 GND GND
7 IO4 44 1V8 1.8 V Voltage
8 IO5 43 GND GND
9 IO6 42 SAI-A_BCLK SAI-A_Interface
10 IO7 41 SAI-A_LRCLK
11 SAI-A_MCLK SAI-A Interface 40 SAI-A_SDI
12 GND GND 39 SAI-A_SDO
13 UART-A_RTSN UART-A Interface 38 GND GND
14 UART-A_RXD 37
15 UART-A_TXD 36 2V8 2.8 V Voltage
16 UART-A_CTSN 35
17 GND GND 34 GND GND
18 AD0 Analog 33
19 GND GND 32 3V3 3.3 V Voltage
20 PWM0 PWM 31
21 CAPT0 Input Capture 30 GND GND
22 CAPT1 29 - -
23 VSYS System Voltage 28 VIN_REG Adjustable Voltage
24 27
25 26 #RESET_IN Control Signal
J203 & J303 Connectors (S200 & S300 Sockets)
Pin Number Pin Name Description Pin Number Pin Name Description
1 TS_XR Touch Screen
(Analog Input)
50 AD5 Analog Input
2 TS_YD 49 AD6
3 TS_XL 48 COMP-A_P Comparator A
(Analog Input)
4 TS_YU 47 COMP-A_N
5 GND GND 46 GND GND
6 JTAG_TRST JTAG Interface
(GPIO)
45 UART-C_RXD UART-C Interface
7 CAN-B_RXD CAN-B Interface
(GPIO)
44 UART-C_TXD
8 CAN-B_TXD 43 UART-D_RXD UART-D Interface
9 PWM4 PWM
(GPIO)
42 UART-D_TXD
10 OTG_P USB OTG Interface 41 I2C-B_SDA I2C-B Interface
11 OTG_N 40 I2C-B_SCL
12 OTG_ID 39 SPI-B_MOSI SPI-B Interface
13 QSPI_CS1 QSPI Interface
(GPIO)
38 SPI-B_MISO
14 QSPI_CS2 37 SPI-B_CLK
15 SAI-B_SDO SAI-B Interface
(GPIO)
36 SPI-B_CS0
16 SAI-B_SDI 35 - -
17 SAI-B_LRCLK 34 GND GND
18 SAI-B_BCLK 33 SPI-A_CS1 SPI-A Interface
(GPIO)
19 SAI-B_MCLK 32 SPI-A_CS2
20 - - 31 IO26 GPIO
21 - 30 IO27
22 - 29 IO28
23 - 28 PWM3 PWM
(GPIO)
24 - 27 PWM2
25 - 26 PWM1
J204 & J304 Connectors (S200 & S300 Sockets)
Pin Number Pin Name Description Pin Number Pin Name Description
1 - - 50 IO8 GPIO
2 - 49 IO9
3 INT6 Interruption
(GPIO)
48 IO10
4 INT5 47 IO11
5 INT4 46 IO12
6 INT3 45 IO13
7 INT2 44 IO14
8 INT1 43 IO15
9 GND GND 42 GND GND
10 JTAG_TMS/SWDIO JTAG Interface
(GPIO)
41 IO16 GPIO
11 JTAG_TCK/SWCLK 40 IO17
12 JTAG_TDO/SWO 39 IO18
13 JTAG_TDI 38 IO19
14 1V8 1.8 V Voltage 37 IO20
15 2V8 2.8 V Voltage 36 IO21
16 35 IO22
17 3V3 3.3 V Voltage 34 IO23
18 33 DAC0 DAC
19 32 DAC1
20 AREF1 Analog Reference 31 - -
21 AREF0 30 GND GND
22 GND GND 29 AD1 Analog Input
23 COMP-B_P Comparator A
(Analog Input)
28 AD2
24 COMP-B_N 27 AD3
25 AD13 Analog Input 26 AD4
J305 Connector (S300 Socket)
Pin Number Pin Name Description Pin Number Pin Name Description
1 RMII_MDC RMII Interface 50 GND GND
2 RMII_MDIO 49 CAM_D8 CAM Interface
3 RMII_TXD1 48 CAM_D9
4 RMII_TXD0 47 CAM_D10
5 RMII_RX_CLK 46 CAM_D11
6 MII_RXD0 45 CAM_D12
7 RMII_RXD1 44 CAM_D12
8 RMII_TX_EN 43 GND GND
9 RMII_TX_DV 42 - -
10 RMII_RX_ER 41 -
11 GND GND 40 -
12 - - 39 -
13 - 38 -
14 - 37 GND GND
15 - 36 - -
16 - 35 -
17 - 34 -
18 - 33 -
19 - 32 -
20 - 31 -
21 - 30 -
22 - 29 -
23 - 28 -
24 - 27 -
25 GND GND 26 -
J306 Connector (S300 Socket)
Pin Number Pin Name Description Pin Number Pin Name Description
1 LCD_R7 LCD 50 GND GND
2 LCD_R6 49 LCD_BKL1/VD_IO0 LCD
3 LCD_R5 48 LCD_EXTCLK
4 LCD_R4 47 LCD_DEN/8bRW
5 LCD_R3 46 LCD_RST
6 LCD_R2 45 LCD_XFRP
7 LCD_R1 44 LCD_VSYNC/VST/8bRS
8 LCD_R0 43 LCD_CLK/VCK
9 LCD_G7 42 LCD_HSYNC/HST/8bE
10 LCD_G6 41 LCD_HCK
11 LCD_G5 40 LCD_ON
12 LCD_G4 39 LCD_BKL0
13 LCD_G3 38 GND GND
14 LCD_G2 37 CAM_D0 CAM
15 LCD_G1 36 CAM_D1
16 LCD_G0 35 CAM_D2
17 LCD_B7 34 CAM_D3
18 LCD_B6 33 CAM_D4
19 LCD_B5 32 CAM_D5
20 LCD_B4 31 CAM_D6
21 LCD_B3 30 CAM_D7
22 LCD_B2 29 CAM_PIXCLK_OUT
23 LCD_B1 28 CAM_PIXCLK
24 LCD_B0 27 CAM_VSYNC
25 GND GND 26 CAM_HSYNC

Slave Sockets

The pinout of a three Slave sockets is shown in the following table. The three sockets maintain the same generic signal distribution, only changing where the point-to-point interfaces and GPIO are connected to the Master.

J101 (Slave 1 Socket)
Pin Number Pin Name Description Pin Number Pin Name Description
1 GND GND 50 GND GND
2 SDIO_CMD SDIO Interface 49 QSPI_CS0 QSPI Interface
3 SDIO_CDN 48 QSPI_IO3
4 SDIO_DATA3 47 QSPI_IO2
5 SDIO_DATA2 46 QSPI_CLK
6 SDIO_CLK 45 QSPI_IO1
7 SDIO_DATA1 44 QSPI_IO0
8 SDIO_DATA0 43 GND GND
9 GND GND 42 OTG_N USB Interface
10 MOD1_EXT0 External Connection 41 OTG_P
11 MOD1_EXT1 40 GND GND
12 MOD1_EXT2 39 UART-D_RX UART-D Interface
13 MOD1_EXT3 38 UART-D_TXD
14 MOD1_EXT4 37 GND GND
15 MOD1_EXT5 36 I2C-A_SDA I2C-A Interface
16 MOD1_EXT6 35 I2C-A_SCL
17 GND GND 34 #NMI1 Interruption
18 VRTC RTC Voltage 33 GND GND
19 CLK32K 32.768 kHz CLK Input 32 SPI-A_MISO SPI-B Interface
20 GND GND 31 SPI-A_MOSI
21 CAN-A_RX CAN-A Interface 30 SPI-A_CLK
22 CAN-A_TXD 29 SPI-A_CS0
23 VBAT Battery Voltage 28 INT0 Interruption
24 27 GND GND
25 26 MOD1_RESET_OUT Control Signal
J102 (Slave 1 Socket)
Pin Number Pin name Description Pin Number Pin name Description
1 GND GND 50 GND GND
2 DIFF-B_N Differential Pair 49 DIFF-B_P Differential Pair
3 MOD1_IO0 GPIO 48 1WIRE 1-Wire Interface
4 MOD1_IO1 47 VIO_OUT_MOD1 Slave Logic Level
5 MOD1_IO2 46 VIO_IN Master Logic Level
6 MOD1_IO3 45 GND GND
7 MOD1_IO4 44 1V8 1.8 V Voltage
8 MOD1_IO5 43 GND GND
9 MOD1_IO6 42 SAI-A_BCLK SAI-A_Interface
10 MOD1_IO7 41 SAI-A_LRCLK
11 SAI-A_MCLK SAI-A Interface 40 SAI-A_SDI
12 GND GND 39 SAI-A_SDO
13 UART-A_RTS UART-A Interface 38 GND GND
14 UART-A_RX 37
15 UART-A_TX 36 2V8 2.8 V Voltage
16 UART-A_CTS 35
17 GND GND 34 GND GND
18 AD0 Analog 33
19 GND GND 32 3V3 3.3 V Voltage
20 PWM0 PWM 31
21 CAPT0 Input Capture 30 GND GND
22 CAPT1 29 - -
23 VSYS System Voltage 28 VIN_REG Adjustable Voltage
24 27
25 26 #RESET_IN_MOD1 Control Signal
J103 (Slave 2 Socket)
Pin Number Pin Name Description Pin Number Pin Name Description
1 GND GND 50 GND GND
2 - - 49 QSPI_CS1 QSPI Interface
3 - 48 QSPI_IO3
4 - 47 QSPI_IO2
5 - 46 QSPI_CLK
6 - 45 QSPI_IO1
7 - 44 QSPI_IO0
8 - 43 GND GND
9 GND GND 42 - -
10 MOD2_EXT0 External Connection 41 -
11 MOD2_EXT1 40 GND GND
12 MOD2_EXT2 39 UART-D_RX UART-D Interface
13 MOD2_EXT3 38 UART-D_TXD
14 MOD2_EXT4 37 GND GND
15 MOD2_EXT5 36 I2C-A_SDA I2C-A Interface
16 MOD2_EXT6 35 I2C-A_SCL
17 GND GND 34 #NMI2 Interruption
18 VRTC RTC Voltage 33 GND GND
19 CLK32K 32.768 kHz CLK Input 32 SPI-A_MISO SPI-B Interface
20 GND GND 31 SPI-A_MOSI
21 CAN-A_RX CAN-A Interface 30 SPI-A_CLK
22 CAN-A_TXD 29 SPI-A_CS1
23 VBAT Battery Voltage 28 INT1 Interruption
24 27 GND GND
25 26 MOD2_RESET_OUT Control Signal
J104 (Slave 2 Socket)
Pin Number Pin name Description Pin Number Pin name Description
1 GND GND 50 GND GND
2 DIFF-C_N Differential Pair 49 DIFF-C_P Differential Pair
3 MOD2_IO0 GPIO 48 1WIRE 1-Wire Interface
4 MOD2_IO1 47 VIO_OUT_MOD2 Slave Logic Level
5 MOD2_IO2 46 VIO_IN Master Logic Level
6 MOD2_IO3 45 GND GND
7 MOD2_IO4 44 1V8 1.8 V Voltage
8 MOD2_IO5 43 GND GND
9 MOD2_IO6 42 SAI-A_BCLK SAI-A_Interface
10 MOD2_IO7 41 SAI-A_LRCLK
11 SAI-A_MCLK SAI-A Interface 40 SAI-A_SDI
12 GND GND 39 SAI-A_SDO
13 - - 38 GND GND
14 UART-B_RX UART-B Interface 37
15 UART-B_TXD 36 2V8 2.8 V Voltage
16 - 35
17 GND GND 34 GND GND
18 AD1 Analog 33
19 GND GND 32 3V3 3.3 V Voltage
20 PWM1 PWM 31
21 CAPT0 Input Capture 30 GND GND
22 CAPT1 29 - -
23 VSYS System Voltage 28 VIN_REG Adjustable Voltage
24 27
25 26 #RESET_IN_MOD2 Control Signal
J105 (Slave 3 Socket)
Pin Number Pin Name Description Pin Number Pin Name Description
1 GND GND 50 GND GND
2 - - 49 QSPI_CS2 QSPI Interface
3 - 48 QSPI_IO3
4 - 47 QSPI_IO2
5 - 46 QSPI_CLK
6 - 45 QSPI_IO1
7 - 44 QSPI_IO0
8 - 43 GND GND
9 GND GND 42 USB_N USB Interface
10 MOD3_EXT0 External Connection 41 USB_P
11 MOD3_EXT1 40 GND GND
12 MOD3_EXT2 39 UART-D_RX UART-D Interface
13 MOD3_EXT3 38 UART-D_TX
14 MOD3_EXT4 37 GND GND
15 MOD3_EXT5 36 I2C-A_SDA I2C-A Interface
16 MOD3_EXT6 35 I2C-A_SCL
17 GND GND 34 #NMI3 Interruption
18 VRTC RTC Voltage 33 GND GND
19 CLK32K 32.768 kHz CLK Input 32 SPI-A_MISO SPI-B Interface
20 GND GND 31 SPI-A_MOSI
21 CAN-A_RX CAN-A Interface 30 SPI-A_CLK
22 CAN-A_TX 29 SPI-A_CS2
23 VBAT Battery Voltage 28 INT2 Interruption
24 27 GND GND
25 26 MOD3_RESET_OUT Control Signal
J106 (Slave 3 Socket)
Pin Number Pin name Description Pin Number Pin name Description
1 GND GND 50 GND GND
2 DIFF-D_N Differential Pair 49 DIFF-D_P Differential Pair
3 MOD3_IO0 GPIO 48 1WIRE 1-Wire Interface
4 MOD3_IO1 47 VIO_OUT_MOD3 Slave Logic Level
5 MOD3_IO2 46 VIO_IN Master Logic Level
6 MOD3_IO3 45 GND GND
7 MOD3_IO4 44 1V8 1.8 V Voltage
8 MOD3_IO5 43 GND GND
9 MOD3_IO6 42 SAI-A_BCLK SAI-A_Interface
10 MOD3_IO7 41 SAI-A_LRCLK
11 SAI-A_MCLK SAI-A Interface 40 SAI-A_SDI
12 GND GND 39 SAI-A_SDO
13 - 38 GND GND
14 UART-C_RX UART-C Interface 37
15 UART-C_TX 36 2V8 2.8 V Voltage
16 - 35
17 GND GND 34 GND GND
18 AD2 Analog 33
19 GND GND 32 3V3 3.3 V Voltage
20 PWM2 PWM 31
21 CAPT0 Input Capture 30 GND GND
22 CAPT1 29 - -
23 VSYS System Voltage 28 VIN_REG Adjustable Voltage
24 27
25 26 #RESET_IN_MOD3 Control Signal

Connections

A huge number of communication interfaces and GPIO are included in the Rhomb.io Standard. In order to avoid collisions, interferences or short-circuits, it is necessary that all the communication buses, GPIOs and control signals follow some connection rules. Each type of signal follows its own. Next, the function of each signal and how is the Master-Slave communication are explained in detail.

User Interfaces

CAN

A Controller Area Network is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other in applications without a host computer. It is a message-based protocol, designed originally for multiplex electrical wiring within automobiles to save on copper, but is also used in many other contexts.

This interface is only the CAN protocol, not the phisical bus. If you want to connect a CAN bus, first you must use a transceiver.

The main CAN interface is the CAN-A, located on the S100 socket, and its lines are routed from the point of view of the Master module, so RX lines are the receive data lines and TX are the transmit data lines. The crossing of lines is done on the Motherboard, not on the modules. This interface connects the Master socket with all the Slave sockets, so only one module with this interface can be used at the same time. The CAN-B interface is only available in S200 Socket. It is designed for connect directly to Motherboard circuits and it is not connected to Slave sockets.

Signal Function Slave Sockets
Slave 1 Slave 2 Slave 3
CAN-A_RXD Receive data x x x
CAN-A_TXD Transmit data x x x
Signal Function Sockets
Slave 1 Slave 2 Slave 3
CAN-B_RXD Receive data
CAN-B_TXD Transmit data


QSPI

The Quad Serial Peripheral Interface add two more I/O lines to the SPI interface, a synchronous serial communication interface specification used for short distance communication, to send 4 data bits per clock cyple and thus increase the transmission speed. Multiple slave devices are supported through selection with individual chip select (CS) lines.

This interface connects the Master socket with all the Slave sockets, but you need the chip selects lines of a S200 Master (QSPI_CS1 and QSPI_CS2) to communicate with the second and the third Slaves.

Signal Function Slave Sockets
Slave 1 Slave 2 Slave 3
QSPI_CS0 Slave 1 chip select x
QSPI_CS1 Slave 2 chip select x
QSPI_CS2 Slave 3 chip select x
QSPI_CLK Serial clock x x x
QSPI_IO0 Serial data 0 x x x
QSPI_IO0 Serial data 1 x x x
QSPI_IO0 Serial data 2 x x x
QSPI_IO3 Serial data 3 x x x


SDIO

The Secure Digital Input Output is an interface used for reliable data storage in applications that require a small form factor in the consumer hand-held and portable electronics, such as cellphones, digital cameras, etc.

This interface is only connects to Slave 1 socket. The default mode is native SDIO mode but some Masters modules can be configured to use a slower SPI mode. SDIO interface operates in clock serial mode with bit widths of 1-4 bits (in SPI mode, the card operates in 1-bit mode only). The clock frequency is 0-25 MHz.

Signal Function Slave Sockets
Slave 1 Slave 2 Slave 3
SDIO_CMD Command and response x
SDIO_CDN Card detection (by host), and non-SPI mode detection (by card) x
SDIO_CLK Serial clock x
SDIO_DATA0 Serial data 0 x
SDIO_DATA1 Serial data 1 x
SDIO_DATA2 Serial data 2 x
SDIO_DATA3 Serial data 3 x


USB

The Universal Serial Bus is a communication bus that follows a standard that defines protocols the cables, connectors and protocols used to connect, communicate and provide electrical power between computers, peripherals and electronic devices.

The main USB works as a host and is used to flash the microcontroller code of the Master module, so it is connected to an USB connector of the Motherboard, but not to the Slaves. The second USB is OTG, is located on the S200 Masters and can be used to communicate with the Slave 1 socket.

Signal Function Slave Sockets
Slave 1 Slave 2 Slave 3
USB_N Data -
USB_P Data +
Signal Function Sockets
Slave 1 Slave 2 Slave 3
OTG_N Data - x
OTG_P Data + x
OTG_ID ID pin


UART

The Universal Asynchronous Receiver-Transmitter is a computer hardware device for asynchronous serial communication in which the data format and transmission speeds are configurable. The electric signaling levels and methods are handled by a driver circuit external to the UART. A UART is usually an individual (or part of an) integrated circuit used for serial communications over a computer or peripheral device serial port.

Up to four UART interfaces can be integrated in the Rhomb.io Master modules and up to two UART in Slave modules. The main UART port of each module is called UART-A, the secondary port, UART-B, and so on until UART-D.

In Class 2 Motherboard, the main UART of the Master module (UART-A) is connected to the main UART of the Slave 1 socket. The second UART (UART-B) is connected to the main UART of the Slave 2 and the third UART (UART-C) is connected to the main UART of the Slave 3 socket. The fourth UART (UART-D) is connected to the secundary UART of the three Slave sockets, so only one Slave module with a second UART interface can be used at the same time. The Class 2 Motherboard also includes a switch to allow you to control with a Master with at least two UART interfaces all the possible UART interfaces of the Slaves modules independently of the sockect position. This is detailed better in the auxiliary circuit section.

The UART lines are routed from the point of view of the Master module, so RX lines are the receive data lines and TX lines are the transmit data lines. The crossing of lines is done on the Motherboard, not on the modules. The UART-C and UART-D interfaces are only available in S200 Socket. Only the UART-A has flow control lines.

Signal Function Slave Sockets
Slave 1 Slave 2 Slave 3
UART-A_RXD Receive data x
UART-A_TXD Transmit data x
UART-A_CTSN Clear to Send x
UART-A_RTSN Request to Send x
Signal Function Sockets
Slave 1 Slave 2 Slave 3
UART-B_RXD Receive data x
UART-B_TXD Transmit data x
Signal Function Slave Sockets
Slave 1 Slave 2 Slave 3
UART-C_RXD Receive data x
UART-C_TXD Transmit data x
Signal Function Slave Sockets
Slave 1 Slave 2 Slave 3
UART-D_RXD Receive data x x x
UART-D_TXD Transmit data x x x

Auxiliary Circuits

Downloads