CJMCU-75x Interconnection Shield

Overview

This shield is less a plug-on module in the conventional sense than more a wiring for interconnection of certain signals from a board down to the SC16IS75x Breakout Boards.

Requirements

This shield requires a board which provides a configuration that allows:

  • two GPIO lines, 1st for reset output and 2nd for optional interrupt input

  • one SPI interface, COPI for output and CIPO for input

  • one I2C interfaces, SDA and SCL for peripheral

Supported variations

The table below suggests shield variation often found on many development boards:

Connector Standard

Shield Designation

Variation

Without standard

needs board adaption

1

Arduino UNO R3

boards/arduino_to_cjmcu_if.dtsi

2

MikroBus

(not yet, planned)

3

Arduino Uno (R3) headers

The connector standard Arduino UNO R3 can be used with a variety of development boards that provide it. Any of these boards must be added separately. For example, the file boards/nucleo_f746zg.overlay exists for the Nucleo F746ZG and simply integrates the generally valid interface boards/arduino_to_cjmcu_if.dtsi:

nucleo_f746zg.overlay (as an example)
1#include "arduino_to_cjmcu_if.dtsi"

Serial Bus and GPIO Mapping

I2C Host Interface

SPI Host Interface

arduino_to_cjmcu_if.dtsi: I2C serial bus mapping
1cjmcu_i2c: &arduino_i2c {};
arduino_to_cjmcu_if.dtsi: I2C host interface GPIO mapping
 1/ {
 2	cjmcu_hif_i2c: cjmcu-75x-hif-i2c-pins {
 3		compatible = "cjmcu,75x-hif-header";
 4		#gpio-cells = <2>;
 5		gpio-map-mask = <0xffffffff 0xffffffc0>;
 6		gpio-map-pass-thru = <0 0x3f>;
 7		gpio-map = <0 0 &arduino_header 20 0>,	/* SDA @ D18 (D14) */
 8			   <1 0 &arduino_header 21 0>,	/* SCL @ D19 (D14) */
 9			   /* 2: I2C/nSPI signal set to high (VCC) */
10			   <3 0 &arduino_header 15 0>,	/* nIRQ @ D9 */
11			   /* 4: NC/SO signal not connected */
12			   /* 5: A1/SI signal set to I2C addr. select */
13			   /* 6: A0/CS signal set to I2C addr. select */
14			   <7 0 &arduino_header 14 0>;	/* nRESET @ D8 */
15	};
16};
arduino_to_cjmcu_if.dtsi: SPI serial bus mapping
1cjmcu_spi: &arduino_spi {};
arduino_to_cjmcu_if.dtsi: SPI host interface GPIO mapping
 1/ {
 2	cjmcu_hif_spi: cjmcu-75x-hif-spi-pins {
 3		compatible = "cjmcu,75x-hif-header";
 4		#gpio-cells = <2>;
 5		gpio-map-mask = <0xffffffff 0xffffffc0>;
 6		gpio-map-pass-thru = <0 0x3f>;
 7		gpio-map = /* 0: SDA/NC signal not connected */
 8			   <1 0 &arduino_header 19 0>,	/* SCLK @ D13 (SCK) */
 9			   /* 2: I2C/nSPI signal set to low (GND) */
10			   <3 0 &arduino_header 15 0>,	/* nIRQ @ D9 */
11			   <4 0 &arduino_header 18 0>,	/* SO @ D12 (CIPO) */
12			   <5 0 &arduino_header 17 0>,	/* SI @ D11 (COPI) */
13			   <6 0 &arduino_header 16 0>,	/* CS @ D10 (SS) */
14			   <7 0 &arduino_header 14 0>;	/* nRESET @ D8 */
15	};
16};

Interconnection

Arduino Uno (R3)

arduino-header-r3

cjmcu,75x-hif-header

SC16IS75x Breakout Boards

3V3

VCC

3V3

2

for I2C

A0 / D14

0

A1 / D15

1

A2 / D16

2

A3 / D17

3

A4 / D18 / SDA

4 / 20

0

SDA

A5 / D19 / SCL

5 / 21

1

SCL

D0

6

D1

7

D2

8

D3

9

D4

10

D5

11

D6

12

D7

13

D8

14

7

nRESET

D9

15

3

nIRQ

D10 / SS

16

6

CS

D11 / COPI

17

5

SI

D12 / CIPO

18

4

SO

D13 / SCK

19

1

SCLK

GND

2

for SPI

GND

GND

Sample Prototypes

Schematic (not for production)

Prototype and Printed Circuit Board

TCS-750-i2c-ard Schematic TCS-750-i2c-ard Prototype TCS-750-i2c-ard PCB

Mikro BUS headers

Note

The connector standard MikroBus is not yet supported and has yet to be defined.