樹莓派cm3+的i2c使用總結

本文主要介紹了樹莓派cm3+的i2c的使用配置方法,包括芯片平臺自帶的兩個i2c外設soc的使用,i2c0總線上面掛接多個i2c設備的設備地址探測以及配置軟件模擬i2c的方法。

根據樹莓派cm3+的datasheet得知有2個i2c外設。

系統啓動後使用i2c-tools查看

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

這個時候如果還需要查看i2c-0的話,需要在/boot/config.txt中加入dtparam=i2c_vc=on,然後重啓:

由於i2c0一般是接到camera的,所以在reboot後使用sudo i2cdetect -l查看不到camera的i2c地址,這個時候可以使用一下camera:raspistill -v後再執行sudo i2cdetect -l就可以看到如下的設備地址0x64了。這個就是camera的i2c地址。

如果在這個時候需要在這個i2c外設上面增加一個如下所示的i2c設備:

連接好了之後,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設備從機地址

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外設:

如果想在其他的引腳使用i2c的功能,可以參照如下的方式,設置軟件i2c的功能。

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

根據/boot/overlay/README中的內容:

在/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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章