Genio 350-EVK

I2C

There are 4 I2C adapters on Genio 350-EVK:

  • I2C-0 shared with Battery Charger

  • I2C-1 shared with HDMI Bridge IC it66121, Capacitive Touch Controller

  • I2C-2 shared with MIPI-CSI camera 0

  • I2C-3 shared with MIPI-CSI camera 1

I2C-0 and I2C-2 are exported to Raspberry Pi HAT. You can use them to connect to other I2C devices.

SPI

There is 1 master SPI device on Genio 350-EVK:

USB

There are 4 USB ports on Genio 350-EVK:

  • USB 2.0 Micro B OTG

  • USB 2.0 Type-A Host

  • USB to UART Bridge IC * 2 (Debug port)

USB 2.0 Micro B OTG is used to flash the image. For flashing the image, please refer to flash.

USB 2.0 Type-A Host can be used for USB flash drives, UVC, UAC, and so on. To mount a USB flash drive, you can use:

mkdir /media/usb
lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda            8:0    1 29.5G  0 disk
|-sda1         8:1    1  200M  0 part
`-sda2         8:2    1 29.3G  0 part
mount /dev/sda2 /media/usb/

USB to UART Bridge IC is used for the debug console.

PWM

There are 4 PWM devices on Genio 350-EVK:

Note

By default, PWM_B and DISP_PWM are inactive. You have to set pinmux to enable them.

You can use sysfs to operate PWM devices.

First, you need to export the PWM node.

echo 0 > /sys/class/pwm/pwmchip0/export

Second, you need to set the period and the duty cycle.

echo 2000000 > /sys/class/pwm/pwmchip0/pwm0/period
echo 1000000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle

Finally, you can enable the PWM device.

echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable

You can also use the kernel debugger to check the value of PMW devices.

cat /sys/kernel/debug/pwm
platform/1100e000.disp-pwm, 1 PWM device
 pwm-0   (sysfs               ): requested period: 0 ns duty: 0 ns polarity: normal

platform/11006000.pwm, 3 PWM devices
 pwm-0   (sysfs               ): requested enabled period: 2000000 ns duty: 1000000 ns polarity: normal
 pwm-1   (sysfs               ): requested period: 0 ns duty: 0 ns polarity: normal
 pwm-2   (sysfs               ): requested period: 0 ns duty: 0 ns polarity: normal

UART

There are 3 UART devices on Genio 350-EVK. The supported baud is from 4,800 bps to 921,600 bps:

GPIO

The SOC has 145 GPIO pins in total. Due to the limitation of the number of physical pins, only few GPIO pins are exported. The actual positions of available GPIO pins are shown in Raspberry Pi HAT.

Raspberry Pi HAT

There is a 40-pin Raspberry Pi HAT on Genio 350-EVK. It contains several peripheral interfaces. By default, it follows the official Raspberry Pi setting. For more details about RPi HAT, please refer to GPIO and the 40-pin Header. You can use the header to connect your external devices.

pin definition of Raspberry Pi HAT

Pin #

Main

Alternative

Pin #

Main

Alternative

1

VDD_3V3

2

VDD_5V

3

I2C2_SDA

Camera 0 I2C

4

VDD_5V

5

I2C2_SCL

Camera 0 I2C

6

GND

7

GPIO124

8

UART2_TXD

GPIO40

9

GND

10

UART2_RXD

GPIO39

11

GPIO127

12

GPIO22

13

GPIO33

14

GND

15

GPIO109

16

GPIO136

17

VDD_3V3

18

GPIO137

19

SPI_MOSI

GPIO29

20

GND

21

SPI_MISO

GPIO28

22

GPIO140

23

SPI_SCLK

GPIO27

24

SPI_CS

GPIO26

25

GND

26

GPIO141

27

I2C0_SDA

GPIO57

28

I2C0_SCL

GPIO58

29

GPIO25

30

GND

31

GPIO142

32

PWMA

GPIO19

33

PWMC

IRRX

34

GND

35

GPIO144

36

GPIO139

37

GPIO138

38

GPIO34

39

GND

40

GPIO32

Note

  1. VDD_5V power can provide 5V/2A maximum but share with USB Host VBUS 5V output.

  2. VGPIOEXT_3V3 power can deliver 3.3V/300mA

  3. Black words are ground pins.

  4. Red words are power pins.

  5. Green words are special function pins.

  6. Blue words are GPIOs.

  7. Pink words are pins, which multiplex with other functions. Please refer to Hardware Pin Mux.

Warning

The default input/output voltage of the GPIO pins on the header is 3.3V. Before using them, please make sure the voltage is suitable for your external device. Otherwise, the unmatched voltage may destroy both Genio 350-EVK and external devices.

Some pins have alternative usage:

  • I2C2_SDA / I2C2_SCL are also used for camera 0.

  • UART2_TXD / UART2_RXD can be switched to GPIO by setting pinmux.

  • SPI_MOSI / SPI_MISO / SPI_SCLK / SPI_CS can be switched to GPIO by setting pinmux.

  • I2C0_SDA / I2C0_SCL can be switched to GPIO by setting pinmux.

  • PWMA can be switched to GPIO19 and DISP_PWM by setting pinmux.

  • PWMC can be switched to IRRX by setting jumper J1303.

Hardware Pin Mux

There are some GPIOs shared with on-board WiFi chip (MT6631), JTAG, IrDA Receiver, and Raspberry Pi-like I/O. You should pay attention to them when you use these functions.

Pin Mux Controlled by Jumper J2318

J2318

Short

Open

GPIO

MT6631 / JTAG

Raspberry Pi I/O

GPIO32

JTDI

RasPi_GPIO32

GPIO33

JTDO

RasPi_GPIO33

GPIO34

JTRST

RasPi_GPIO34

GPIO136

CONN_TOP_CLK

RasPi_GPIO136

GPIO137

CONN_TOP_DATA

RasPi_GPIO137

GPIO138

CONN_HRST_B

RasPi_GPIO138

GPIO140

CONN_BT_CLK

RasPi_GPIO140

GPIO141

CONN_BT_DATA

RasPi_GPIO141

GPIO142

CONN_WF_CTRL0

RasPi_GPIO142

GPIO143

CONN_WF_CTRL1

RasPi_GPIO143

GPIO144

CONN_WF_CTRL2

RasPi_GPIO144

GPIO139

CONN_WB_PTA

RasPi_GPIO139

Pin Mux Controlled by Jumpers J1303

Location

Use Pin 2 and Pin 3

Short Pin 1 and Pin 2

J1303

IRRX_3V3

RasPi_PWM_3V3