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

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值