微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > opt3001读取不到正确的数据,可否提供最简单的51程序?

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top