wiki:venice/mipi

Version 37 (modified by Ryan Erbstoesser, 11 months ago) ( diff )

add overlay info

Venice MIPI DSI / CSI Hardware

The Venice family of rugged and industrial Single Board Computers feature MIPI Display Serial Interface (DSI) and Camera Serial Interface (CSI) signals on many of the boards. This allows for displays and cameras or video input to the SBC.

There are 1000s of LCD displays from 5inches to 20 inches on the market and each may require a custom integration with the Gateworks MIPI DSI connector. Gateworks has pre-tested and pre-approved the following displays here

50-pin MIPI Media Connector

A 50-pin MIPI Media Connector is available on the Venice GW720x/GW730x/GW740x SBCs with the following signalling:

  • 4-lane (4D+C) CSI (supports a maximum bitrate of 1.5Gbps on IMX8MM)
    • Allows for camera / video input to the SBC
  • 4-lane (4D+C) DSI (supports a maximum bitrate of 1.5Gbps on IMX8MM; up to 1080p60 display)
    • Allows for a LCD Display to be connected to the SBC
  • Bi-directional I2S audio
  • I2C
  • 4x GPIO
  • Note: If using a GW7200, revision C or newer is required

MIPI Sample Schematic and Pinouts

Please also view the hardware manual of the respective SBC.

GW72xx/GW73xx:

  • with IMX8MM GW700x SOM (gw72xx-0x, gw73xx-0x):
    • GPIO1 - IMX8MM_SAI1_RXD2 (GPIO4_04)
    • GPIO2 - IMX8MM_SAI1_RXD1 (GPIO4_03)
    • GPIO3 - IMX8MM_SAI1_RXC (GPIO4_01)
    • GPIO4 - IMX8MM_GPIO1_01 (GPIO1_01 or PWM1_OUT)
  • with IMX8MP GW702x SOM (gw72xx-2x, gw73xx-2x):
    • GPIO1 - IMX8MP_SAI2_TXFS (GPIO4_IO24)
    • GPIO2 - IMX8MP_SAI2_TXD0 (GPIO4_26)
    • GPIO3 - IMX8MP_SAI2_TXC (GPIO4_25)
    • GPIO4 - IMX8MP_SAI1_TXD5 (GPIO4_17)
    • I2S audio unsupported

GW74xx (IMX8MP SoC):
GW74xx MIPI pinout

  • MIPI_PWM - IMX8MP_GPIO1_IO00 (GPIO1_IO00 or CCM_EXT_CLK1)
  • MIPI_GPIO2 - IMX8MP_GPIO1_IO01 (GPIO1_IO01, PWM1_OUT, or CCM_EXT_CLK2)
  • MIPI_GPIO3 - GPIO1_IO03 (GPIO1_IO03)
  • MIPI_GPIO4 - GPIO1_IO04 (GPIO1_IO04)

MIPI Mounting Hole

Raspberry Pi Display & Camera

Not every Raspberry Pi Display will work out of the box. Any RPi display or camera requires the Gateworks GW16136 Raspberry Pi Adapter board

Below are screens Gateworks has evaluated using the required GW16136 MIPI Adapter board.

Gateworks has tested with a Raspberry Pi Camera Module 2 as a demo, please see more information here: Venice Capture Devices - RPi Camera

GW16136 RaspberryPi Camera and Display Adapter

The GW16136 RaspberryPi Camera and Display Adapter connects to the GW720x and GW730x boards 50-pin MIPI Media connector and provides the following (see RaspberryPi v4 schematics for details):

  • 15pin Camera Interface with 2-lane MIPI CSI, 1x GPIO, 1x I2C (MX8MM I2C3)
    • MIPI_GPIO4 is IMX8MM GPIO1_01
    • Note the pin numbers on the connector silkscreen are flipped
  • 15pin Display Interface with 3-lane MIPI CSI, 1x I2C (MX8MM I2C3)
    • MIPI_GPIO3 is connected to IMX8MM GPIO4_01 via 1Kohm
    • MIPI_GPIO1 is connected to IMX8MM GPIO4_04 via 1Kohm
    • Note the pin numbers on the connector silkscreen are flipped

This adapter plugs into the 50-pin MIPI Media header on the Gateworks SBC. The adapter brings all the DSI signals to one connector and CSI to another. The adapter was built in mind to be used with Raspberry Pi displays and cameras. Below is a diagram showing the connections for the 15-pin flat cable connectors.

Diagram for 15-pin flat cable connectors

Additional Linux kernel driver support is required for various MIPI, I2C and I2S devices.

Purchase the GW16136 on the Gateworks shop: https://shop.gateworks.com/index.php?route=product/product&path=70_86&product_id=236

Adding a New Venice MIPI DSI Display

Densitron MIPI Displays makes several MIPI based displays with touchscreen options. Densistron can also customize the display's adapter board for volume projects to connect directly with the Venice MIPI DSI/CSI connector. Please note these screens will require software driver integration.

Read more about the software effort to add a display here: venice/multimedia

GW16145 MIPI Media Breakout board

This adapter plugs into the 50-pin MIPI Media header on the Gateworks SBC. The adapter brings all the signals to a 50 pin header that allows for a cable to be connected. Connector used on the GW16145: Hirose DF20F-50DP-1V(56).

The GW16145 50-pin connector mapping is as follows:

50 pin pinout diagram

To make a cable that plugs into the GW16145, use Hirose DF20A-50DS-1C (Note also requires crimps)

Additional Linux kernel driver support is required for various MIPI, I2C and I2S devices.

Audio

The MIPI connector contains SAI (synchronous audio interface) audio signals that support I2S. It is recommended to choose a desired codec chip and build an adapter that connects onto the MIPI header to implement audio.

It should be noted that audio can also be implemented over USB.

Audio code examples could include:

  • Texas Instrument TLV320AIC3105IRHBR
  • Maxim 98089 low-power stereo codec
  • Cirrus Logic WM8904CGEFL
  • Cirrus Logic WM8524

For development, a GW16145 adapter could be cabled to an audio codec breakout board such as from Sparkfun

Gateworks can also be hired to create custom audio designs.

GW16157 Audio Adapter

The GW16157 Audio card was designed for a specific use case and connects to the MIPI connector of a GW73xx/GW72xx providing:

  • NXP SGTL5000 audio codec
  • MIC to connector
  • LINEOUT_L to TPA3110D2 15W Class D amplifier with auto-fault recovery and GPIO control to shutdown via MIPI_GPIO1 (GPIO4_IO4 on IMX8MM)

Power Amplifier

  • Texas Instruments TPA3110D2
  • Class D Amplifier w/PBTL Mono Output
  • 15W @ 4 ohm with 10% THD
  • 8-26V Supply Voltage (24VDC recommended)

Codec

  • NXP SGTL5000XNBA3
  • Programmable MIC Gain and MIC Bias Support
  • MIC ADC 85dB SNR
  • Digital Audio Processing:
  • NXP Surround, Bass and Tone Control
  • Parametric/Graphic Equalizer
  • Digital Mixer

GW16157 Software

  • Kernel drivers/modules: (recommended to set static if possible)
    • snd-soc-fsl-sai CONFIG_SND_SOC_FSL_SAI SND_IMX_SOC
    • snd-soc-sgtl5000 CONFIG_SND_SOC_SGTL5000
    • snd-soc-simple-card CONFIG_SND_SIMPLE_CARD
    • CONFIG_SND_IMX_SOC
  • Device tree overlays are required and would be something like the following:
    • GW72xx: imx8mm-venice-gw72xx-0x-gw16157.dtbo
    • GW73xx: imx8mm-venice-gw73xx-0x-gw16157.dtbo
    • GW74xx: imx8mp-venice-gw74xx-gw16157.dtbo
    • More about device tree overlays here: linux/devicetree
    • Example bootloader command for GW72xx:
      • {{{

setenv fdt_overlays imx8mm-venice-gw72xx-0x-gw16157.dtbo saveenv }}}

A sample script used for testing:

cat /proc/asound/cards # show card
# enable lineout for 30% volume
amixer set Lineout on
amixer set Lineout 30%
aplay /usr/share/sounds/alsa/Front_Center.wav
# set capture gain to 8. Valid values: 1-15
amixer set Capture 8
# turn on capture
amixer set Capture cap
#set mic volume to 50%
amixer set Mic 50
# make sure digital input mux is set to I2S. Setting it to ADC routes the microphone to the speaker
# and causes intense feedback
amixer set "Digital Input Mux" I2S
echo "Recording..."
arecord -d 5 -f dat -r 48000 -vvv -c1 /tmp/test.wav
echo "Playback..."
aplay -f dat /tmp/test.wav

GW16157 Hardware

J1 = Microphone Input.

  • Example Microphone: PUI Audio POW-3535L-3-LW100-B-R Link
  • Pin 1 = Ground
  • Pin 2 = MIC Output +
  • Pin 3 = Ground

J2 = Mono Speaker Output

  • Example Speaker: Peerless TC5FC07-04 (4 ohm @ 5W) Link
  • Pin 1 = Speaker -
  • Pin 2 = Ground (no connect)
  • Pin 3 = Speaker +

J3 = Vin Pass Through

  • This connector can be used to simplify cabling and provide Vin to the SBC baseboard.
  • Pin 1 = Vin
  • Pin 2 = GND
  • Pin 3 = Vin
  • Pin 4 = GND

J4 = Voltage Input for Audio Amplifier (8-26V, 24V recommended) This should be connected to an external supply and is used by the on board audio amplifier.

  • Pin 1 = Vin
  • Pin 2 = GND
  • Pin 3 = Vin
  • Pin 4 = GND

On Board Headers:

  • J1 & J2 = TE Connectivity 2MM-HSP-S03-VT-02-H-TB
  • J3 & J4 = TE Connectivity 2MM-HSP-S04-VT-02-H-TB

Mating Housing:

  • J1 & J2 = TE Connectivity 2MM-RCP-S03-BX = 2316104-3
  • J3 & J4 = TE Connectivity 2MM-RCP-S04-BX = 2316104-4

Crimps for Housing:

  • 2MM-RT-M-T-ST (Tin) = 2-2316113-2
  • 2MM-RT-M-F-ST (Gold Flash) = 3-2316113-3
  • 2MM-RT-M-M-ST (Gold 0.38um) = 4-2316113-4
  • 2MM-RT-M-H-ST (Gold 0.76um) = 5-2316113-5

Venice MIPI DSI / CSI Software

This wiki page covers all hardware related information to the Venice MIPI interfaces. Software is also a very important aspect, and all software information is covered on the venice/multimedia page.

MIPI-CSI Camera Support

Gateworks has tested with a Raspberry Pi camera as a demo, please see more information here: Venice Capture Devices - RPi Camera

Attachments (14)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.