树莓派cm3+的i2c使用总结

本文主要介绍了树莓派cm3+的i2c的使用配置方法,包括芯片平台自带的两个i2c外设soc的使用,i2c0总线上面挂接多个i2c设备的设备地址探测以及配置软件模拟i2c的方法。

根据树莓派cm3+的datasheet得知有2个i2c外设。

树莓派cm3+的i2c使用总结_第1张图片

系统启动后使用i2c-tools查看

默认情况下,使用i2cdetect -l只能看到i2c-1:

这个时候如果还需要查看i2c-0的话,需要在/boot/config.txt中加入dtparam=i2c_vc=on,然后重启:

树莓派cm3+的i2c使用总结_第2张图片

由于i2c0一般是接到camera的,所以在reboot后使用sudo i2cdetect -l查看不到camera的i2c地址,这个时候可以使用一下camera:raspistill -v后再执行sudo i2cdetect -l就可以看到如下的设备地址0x64了。这个就是camera的i2c地址。

树莓派cm3+的i2c使用总结_第3张图片

如果在这个时候需要在这个i2c外设上面增加一个如下所示的i2c设备:

树莓派cm3+的i2c使用总结_第4张图片

连接好了之后,i2c0总线上的设备有0x30和0x64,其中0x30就是新增加的i2c设备,加上最低位读写位,刚好就是上面所说的8-bit 读写地址:0x61和0x60

参考:https://blog.csdn.net/xukai871105/article/details/15029843

使用i2c-tools提供的工具i2cdetect  i2cdump i2cset i2cget操作i2c器件。

1.读出i2c设备中所有寄存器的内容:

i2cdump -y 0 0x30

其中:

-y        代表取消用户交互过程,直接执行指令;

0         代表I2C总线编号;

0x30    代表I2C设备从机地址

树莓派cm3+的i2c使用总结_第5张图片

2.读出制定寄存器

i2cget -y 0 0x30 0x13

其中:

-y:用户曲线交互过程,直接执行命令

0:i2c适配器的编号

0x30:i2c设备的设备地址

0x13:i2c设备的寄存器地址

3.指定寄存器的写入操作

i2cset -y 0 0x30 0x13 0xaa

其中:

-y:用户曲线交互过程,直接执行命令

0:i2c总线适配器的编号

0x30:i2c设备的设备地址

0x13:需要写入的设备中的寄存器地址

0xaa:写入寄存器的值

软件i2c的设置

增加软件i2c的功能,cm3+中只有两个i2c外设:

树莓派cm3+的i2c使用总结_第6张图片

如果想在其他的引脚使用i2c的功能,可以参照如下的方式,设置软件i2c的功能。

参考:https://www.cnblogs.com/denglinzhe/p/12673826.html

根据/boot/overlay/README中的内容:

树莓派cm3+的i2c使用总结_第7张图片

在/boot/config.txt中增加软件i2c的功能

dtoverlay=i2c-gpio

bus=3

 i2c_gpio_delay_us=1

i2c_gpio_sda=42

 i2c_gpio_scl=43

将42和43引脚设置为i2c3

树莓派cm3+的i2c使用总结_第8张图片

你可能感兴趣的:(i2c,bug调试,树莓派,debug,linux,raspberry,pi)