opt3001读取不到正确的数据,可否提供最简单的51程序?
时间:10-02
整理:3721RD
点击:
您好,
这两天我在调试opt3001光线传感器,用的51单片机模拟i2c,用逻辑分析仪抓出来的数据有误,从机(即opt3001没有返回ACK),无论读取哪个寄存器,值都为0xFF,现在可以确定MCU与opt3001根本没有通信,根据datasheet我的操作流程是,先读取Manufacturer ID Register和Device ID Register的值(都是0xFF),然后配置Configuration Register(0xcc,0x10),判断CRF是否为1,若为1则读取Result Register的值,结果还是(0xff,0xff)。addr接GND,写入地址0x88,读取地址0x89,请问这到底是什么情况呢?下图是逻辑分析仪抓出来的时序图
还有,现在是否有opt3001的驱动 程序?可否发送给我参考一下,邮箱 gqlvpku@163.com
谢谢!
你好,
你可以这样来做:
1. 先确认下硬件连接是否正常;
2. 先写器件I2C 地址(这个由ADDR引脚的连接方式确定,规格书给出了4种地址),确认你地址是对的,否则OPT3001会返回ACK;
3. 配置Configuration 寄存器,也就是0x01,写入配置值;
也就是 I2C写:0x??(器件地址),0x01(寄存器配置),0xC4,0x10(寄存器配置值)
那么你应该可以读书数据。
Sulyn