ARM技术论坛
直播中

wamcncn

11年用户 440经验值
擅长:电源/新能源 MEMS/传感技术 测量仪表 嵌入式技术 模拟技术 光电显示 控制/MCU RF/无线
私信 关注
[经验]

【VEML6075紫外线检测试用体验】+4.读取紫外线传感器VEML6075的器件ID

` 本帖最后由 wamcncn 于 2017-4-17 14:02 编辑

      紫外线传感器VEML6075的通讯接口是I2C。结构框图如下:
1.png
SDAT和SCLK是
I2C串行总线的两根信号线,在手册里可查找到其七位的设备地址为0x10。
2.png
应用原理图如下:
3.png
开发板上的原理图:
4.png 5.png
紫外线传感器VEML6075的内部有13个16bit寄存器,每个寄存器分为高字节和低字节,
除了保留的寄存器外,只有UV_CONF

寄存器可读写,其他的都是只读,如图所示:
6.png
其中寄存器0x0C就是器件ID寄存器,描述如下:
7.png
I2C读时序图:
8.png
根据时序图,用mbed读取器件ID的代码,关于mbed相关I2C总线知识,请自行查阅资料。
  1. #include "mbed.h"
  2. I2C i2c_master(P0_11,P0_10);
  3. Serial pc(P0_4,P0_0);
  4. char ID_data[2];
  5. const char IDcom=0x0c;
  6. int main() {  
  7. printf(" write data:%x
  8. ",IDcom);
  9. i2c_master.start();
  10. i2c_master.write(0x20);
  11. i2c_master.write(0x0C);
  12. i2c_master.start();
  13. i2c_master.read(0x20, ID_data, 2, true);
  14. i2c_master.stop();
  15.      printf(" ID_L:%x
  16. ",ID_data[0]);
  17.      printf(" ID_H:%x
  18. ",ID_data[1]);
  19. while(1)
  20.     {
  21.     }
  22. }
下载代码到开发板,打开串口,复位开发板。
9.png
串口输出的信息和手册一致,读取器件ID成功!




` 1.png 4.png

更多回帖

发帖
×
20
完善资料,
赚取积分