关闭

物联网项目——光传感器ISL20093

585人阅读 评论(0) 收藏 举报
ISL20093是一款综合性光传感器,内部有16位ADC转换,通过I2C用户配置参数,可编程lux范围选择。
大致了解一下芯片知识,然后详细追踪代码,看I2C实现。


REXT External resistor pin for ADC reference; connect this pin to ground through a (nominal) 100kΩresistor
两个二极管,一个队可见光(540 nm)敏感,一个对红外线敏感,模式一对应第一个二极管工作,模式二对应第二个二极管工作,模式三对应二个二极管同时工作(Diode1 - Diode2)。
8*8位内部控制寄存器:
2*8控制寄存器
2*8设置高低中断阈值
4*8data寄存器,只读模式 ,2个reading 2个timer counts

ISL20093的原理图如下所示:


由原理图可以看出,ISL20093数据传输是由I2C总线传输的,I2C协议简单介绍一下。
具体的定义这里不说了,主要是怎么用,以其中一种模式进行说明。

I2C SDA Out 从机数据时序,I2 CSDA in 主机发送的时序。
解释一下上面的时序:时钟高电平时一个下降沿,表示开始信号Start。接着在8个时钟周期内发送1000100   0(w)前七位是从机地址,最后一位是代表(R/W)。下一个时钟(第九个时钟),从机拉低应答。接下来8个时钟周期是寄存器的地址,00000xxx三位可变的。从机应答。主机接收后SCL高电平期间,由主机产生一个上升沿的信号作为停止。主机产生一个下降沿作为start。
接下来发送8位的读指令,10001001.拉低SDA放弃总线。接下来从机发送8位数据。主机将SDA不操作,作为应答非信号。迫使从机释放总线。主机发送停止信号。A1-6代表从机地址,R7-0 寄存器地址,D7-0数据。

I2C写时序原理和上面相同,对应读写位改变就行。
这里只是
I2C SDA Out 只从机,I2 CSDA in 主机发送的。
解释一下上面的时序:时钟高点评时一个下降沿,Start。接着在8个时钟周期内发送10001000(w)下一个时钟,从机压低应答。接下来8个时钟周期是
寄存器的地址,00000xxx三位可变的。从机应答。主机接收后SCL高电平期间,由主机产生一个上升沿的信号作为停止。主机产生一个下降沿作为start。
接下来发送8位的读指令,10001001.拉低SDA放弃总线。接下来从机发送8位数据。主机将SDA不操作,作为应答非信号。迫使从机释放总线。主机发送停止信号。A1-6代表从机地址,R7-0 寄存器地址,D7-0数据

I2C的写时序和上面类似。

这里只是ISL20093的简单介绍,I2C具体传输还要看LPC11C14配置寄存器。配置LPC11C14可以不用考虑每个时序的数据。是不是觉得上面分析的时序没有用了,其实还是有用的,当你用io口模拟时序时就必须要考虑每个时序的数据了。这种情况还是存在的,有的IC传输协议不是标准I2C的协议,而是变种协议,大致相同,细节处要自己考虑。
下一篇准备写一下LPC11C14s上的I2C寄存器配置,以及,寄存器控制时序方法。




0
0
猜你在找
【直播】计算机视觉原理及实战——屈教授
【套餐】深度学习入门视频课程——唐宇迪
【套餐】Hadoop生态系统零基础入门
【套餐】嵌入式Linux C编程基础
【套餐】2017软考系统集成项目——任铄
【套餐】Android 5.x顶级视频课程——李宁
【直播】广义线性模型及其应用——李科
【直播】从0到1 区块链的概念到实践
【直播】机器学习之凸优化——马博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8628次
    • 积分:174
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:9篇
    • 译文:0篇
    • 评论:1条
    文章存档
    最新评论