CM3-Panel-7-basic technical documentation

How to manage the I2C buses

How to wire and configure the I2C ports available on EXP1 and EXP2 connectors

On the EXP1 and EXP2 connector of CM3-Panel-7-basic there are two I2C ports available for the user application

EXP1 pin Signal Line
11 I2C SDA1 GPIO 44
13 I2C SCL1 GPIO 45
16 GND
EXP2 pin Signal Line
15 I2C SDA0 GPIO 28
13 I2C SCL0 GPIO 29
16 GND

Enable the I2C ports

By default on the CM3-panel-7-basic the I2C bus 1, available on GPIO 44 and 45 lines, is enabled just at Kernel level to comunicate with the touch panel and camera crypto chip.

This is done by modify the standard file config.txt as explained here:

Prepare a microSD card image for CM3-panel-7-basic

The line used in the /boot/config.txt file is this:

dtoverlay=i2c1,pins_44_45

To use the bus at user space level enable the I2C port using

sudo raspi-config

and enable the port by following these options:

Interface Options
    I2C
        Yes

then reboot.

Install i2c tools to check the I2C bus by typing:

sudo apt update
sudo apt install i2c-tools

Then type:

sudo i2cdetect -l

to see the logical devices to use in out applications

i2c-1   unknown     bcm2835 (i2c@7e804000)              N/A
i2c-0   i2c         i2c-11-mux (chan_id 0)              I2C adapter

Type:

sudo i2cdetect -y 0

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --         

and:

sudo i2cdetect -y 0

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --         

to see that just one I2C device is wired on bus I2C-1 that is the Goodix chip used to manage the touch screen panel

Examples

Links

Sergio Tanzilli
System designer, webmaster and Acme Systems co-founder

Personal email: tanzilli@acmesystems.it
Webpage: https://www.acmesystems.it
Github repositories: https://github.com/tanzilli and https://github.com/acmesystems
Telegram group dedicated to the Acme Systems boards: https://t.me/acmesystemssrl

CM3-Panel-7-basic technical documentation