Difference between revisions of "RaspberryPI I2C confilct problem/zh"
(Created page with "树莓派平台上MIPI CSI-2摄像头模组与MIPI DSI-2 LCD屏幕的I2C访问冲突的问题 <br />") |
|||
(9 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | + | [[RaspberryPI I2C confilct problem|English]] | |
+ | <big>'''树莓派平台上VEYE MIPI CSI-2摄像头模组与MIPI DSI-2 LCD屏幕的I2C访问冲突的问题'''</big> | ||
+ | === 问题描述 === | ||
+ | 在树莓派3B、3B+、4B以及树莓派CM4上面,MIPI CSI-2和DSI-2使用的是同一组I2C(VC-I2C),硬件原理图是短接在一起的。 | ||
− | <br /> | + | 树莓派原理图请参考:[https://www.raspberrypi.org/documentation/hardware/raspberrypi/schematics/README.md Schematics for the various Raspberry Pi board versions]。 |
+ | |||
+ | 一般情况下,在树莓派主芯片内,这个VC-I2C由GPU进行控制,CPU不能访问。树莓派的GPU是不开放的,而CPU端的程序都是开放的。 | ||
+ | |||
+ | 为了能够在CPU上使用使用这个i2c接口,我们使用''camera_i2c_config''脚本将VC-I2C开放给CPU。 这样就造成了一个问题: | ||
+ | |||
+ | '''当同时使用我们的CSI-2摄像头模组和DSI-2接口的屏幕时,CPU作为主控通过VC-I2C控制摄像头模组,GPU作为主控通过VC-I2C控制LCD屏幕。''' | ||
+ | |||
+ | '''有一定概率会产生I2C访问冲突,进而引发可能的I2C错码和错误配置。''' | ||
+ | |||
+ | === 解决方案 === | ||
+ | |||
+ | ==== 硬件解决方案(推荐) ==== | ||
+ | 为了避免引发冲突,当需要在产品中同时使用我们的MIPI摄像头模组与LCD屏时,建议使用40-pin GPIO header 上的i2c来控制摄像头。 | ||
+ | |||
+ | * 对于VEYE-MIPI-327、CS-MIPI-IMX307、CS-MIPI-SC132 | ||
+ | |||
+ | 建议制作一个转接板,将摄像头接口的i2cpin单独引出,同时从树莓派FFC排线上断开。 | ||
+ | |||
+ | * 对于VEYE-MIPI-IMX327S VEYE-MIPI-IMX462 VEYE-MIPI-IMX385 | ||
+ | |||
+ | 我们已经支持了独立I2C接口功能,不需要单独制作转接板。 | ||
+ | |||
+ | http://wiki.veye.cc/index.php/VEYE-MIPI-290/327_i2c/zh#i2cauxenable | ||
+ | |||
+ | ==== 软件解决方案(规避的方法) ==== | ||
+ | |||
+ | * 对于VEYE系列 | ||
+ | |||
+ | 可以通过寄存器关闭摄像头的i2c响应来达到规避冲突的目的。 | ||
+ | |||
+ | <code>./i2c_write $I2C_DEV $I2C_ADDR 0x07 0xFF</code> | ||
+ | |||
+ | * 对于CS系列 | ||
+ | |||
+ | 固件升级中... | ||
+ | |||
+ | === 更多 === | ||
+ | 如您有更好的解决方案或者需要咨询的,请联系xumm#csoneplus.com。<br /> |
Latest revision as of 20:23, 3 June 2021
树莓派平台上VEYE MIPI CSI-2摄像头模组与MIPI DSI-2 LCD屏幕的I2C访问冲突的问题
1 问题描述
在树莓派3B、3B+、4B以及树莓派CM4上面,MIPI CSI-2和DSI-2使用的是同一组I2C(VC-I2C),硬件原理图是短接在一起的。
树莓派原理图请参考:Schematics for the various Raspberry Pi board versions。
一般情况下,在树莓派主芯片内,这个VC-I2C由GPU进行控制,CPU不能访问。树莓派的GPU是不开放的,而CPU端的程序都是开放的。
为了能够在CPU上使用使用这个i2c接口,我们使用camera_i2c_config脚本将VC-I2C开放给CPU。 这样就造成了一个问题:
当同时使用我们的CSI-2摄像头模组和DSI-2接口的屏幕时,CPU作为主控通过VC-I2C控制摄像头模组,GPU作为主控通过VC-I2C控制LCD屏幕。
有一定概率会产生I2C访问冲突,进而引发可能的I2C错码和错误配置。
2 解决方案
2.1 硬件解决方案(推荐)
为了避免引发冲突,当需要在产品中同时使用我们的MIPI摄像头模组与LCD屏时,建议使用40-pin GPIO header 上的i2c来控制摄像头。
- 对于VEYE-MIPI-327、CS-MIPI-IMX307、CS-MIPI-SC132
建议制作一个转接板,将摄像头接口的i2cpin单独引出,同时从树莓派FFC排线上断开。
- 对于VEYE-MIPI-IMX327S VEYE-MIPI-IMX462 VEYE-MIPI-IMX385
我们已经支持了独立I2C接口功能,不需要单独制作转接板。
http://wiki.veye.cc/index.php/VEYE-MIPI-290/327_i2c/zh#i2cauxenable
2.2 软件解决方案(规避的方法)
- 对于VEYE系列
可以通过寄存器关闭摄像头的i2c响应来达到规避冲突的目的。
./i2c_write $I2C_DEV $I2C_ADDR 0x07 0xFF
- 对于CS系列
固件升级中...
3 更多
如您有更好的解决方案或者需要咨询的,请联系xumm#csoneplus.com。