你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32CUBEMX驱动多个VL6180X

[复制链接]
STMCU小助手 发布时间:2023-2-6 17:41
概述
VL6180X是基于ST FlightSense™专利技术的最新产品。这是一个突破性的技术,实现了独立于目标反射率的绝对距离测量。现有技术通过测量反射光的光量来估算距离,这种方法的最大缺点是被测物体的颜色和表面对测量精度影响很大,而VL6180X则精确测量光线从传感器照射到最近物体然后反射到传感器所用时间(飞行时间),以此计算两者之间的距离。
VL6180X将一个红外发射器,一个红外传感器和一个环境光传感器整合于一个三合一即用型回流焊封装,易于集成,为终端产品制造商缩短了光学和机械设计优化过程并降低了相应的成本。
该模块为低功率操作设计。测距和ALS测量可在用户定义的时间间隔自动执行。支持多门限和中断方案以尽量减少主机操作。
主机控制和结果阅读通过使用I2C接口执行。可选的附加功能(如测量准备和门限中断)由两个可编程的GPIO引脚提供。

f7b9c2c4d7634cd59a13fc1e5edebcc2.png


所有功能
三合一智能光学模块
接近传感器
环境光传感器
VCSEL光源
快速,精确测距
绝对测量范围从0到超过10 cm(10cm以上的测距取决于具体情况)
不受目标反射率影响
环境光抑制
盖片的串扰补偿

盖片的串扰补偿
主机系统可以用距离和信号电平实现手势识别
可用演示系统:P-NUCLEO-6180X1 评估板

环境光传感器
高动态范围
精确/超低光敏感
校准输出值(以勒克斯为单位)

方便集成
单回流焊元件
无附加光学元件
单电源
用于器件控制和数据的I2C接口
提供一个文档化的C可移植 API(应用程序接口)

两个可编程GPIO
测距和ALS的窗口和门限功能

ef1f3195b456487c8d1aa766b2f9924e.png

技术规范
注意供电为2.8V,IIC接口,最大支持快速模式速率,为400k,默认地址为0x29。
光照强度检测范围为 1 Lux -100 kLux。

433b8c173e334d0893acde797d116672.png


接口

ee4cd93be9ab4f3a96fcea18defe504b.png


接口说明

aefad076d36c4a3c83045191841cc755.png


最小系统图

6088f1f934ba41a4a887b9d8cf06b4bd.png


初始化

33f21e40a2fd4dacb0694951a17f6a83.png

首先需要检查寄存器SYSTEM__FRESH_OUT_OF_RESET {0x16}是否为0x01.
之后进行6180初始化。
初始化如下所示。

779d0935bfa843fe8a3c6c11c9b80b4e.png

da654849e3f040eeab9b0e31d992f723.png

  1. uint8_t ptp_offset;
  2. uint8_t VL6180X_Init(uint8_t add)
  3. {
  4.         ptp_offset=VL6180X_ReadByte(add,VL6180X_REG_SYSTEM_FRESH_OUT_OF_RESET);
  5.         printf("ptp_offset=%d\n",ptp_offset);
  6. //        if(VL6180X_Read_ID(add) == VL6180X_DEFAULT_ID)
  7.         if(ptp_offset==0x01)
  8.         {       
  9.                 VL6180X_WriteByte(add,0x0207, 0x01);
  10.                 VL6180X_WriteByte(add,0x0208, 0x01);
  11.                 VL6180X_WriteByte(add,0x0096, 0x00);
  12.                 VL6180X_WriteByte(add,0x0097, 0xfd);
  13.                 VL6180X_WriteByte(add,0x00e3, 0x00);
  14.                 VL6180X_WriteByte(add,0x00e4, 0x04);
  15.                 VL6180X_WriteByte(add,0x00e5, 0x02);
  16.                 VL6180X_WriteByte(add,0x00e6, 0x01);
  17.                 VL6180X_WriteByte(add,0x00e7, 0x03);
  18.                 VL6180X_WriteByte(add,0x00f5, 0x02);
  19.                 VL6180X_WriteByte(add,0x00d9, 0x05);
  20.                 VL6180X_WriteByte(add,0x00db, 0xce);
  21.                 VL6180X_WriteByte(add,0x00dc, 0x03);
  22.                 VL6180X_WriteByte(add,0x00dd, 0xf8);
  23.                 VL6180X_WriteByte(add,0x009f, 0x00);
  24.                 VL6180X_WriteByte(add,0x00a3, 0x3c);
  25.                 VL6180X_WriteByte(add,0x00b7, 0x00);
  26.                 VL6180X_WriteByte(add,0x00bb, 0x3c);
  27.                 VL6180X_WriteByte(add,0x00b2, 0x09);
  28.                 VL6180X_WriteByte(add,0x00ca, 0x09);
  29.                 VL6180X_WriteByte(add,0x0198, 0x01);
  30.                 VL6180X_WriteByte(add,0x01b0, 0x17);
  31.                 VL6180X_WriteByte(add,0x01ad, 0x00);
  32.                 VL6180X_WriteByte(add,0x00ff, 0x05);
  33.                 VL6180X_WriteByte(add,0x0100, 0x05);
  34.                 VL6180X_WriteByte(add,0x0199, 0x05);
  35.                 VL6180X_WriteByte(add,0x01a6, 0x1b);
  36.                 VL6180X_WriteByte(add,0x01ac, 0x3e);
  37.                 VL6180X_WriteByte(add,0x01a7, 0x1f);
  38.                 VL6180X_WriteByte(add,0x0030, 0x00);
  39.                
  40.                 // Recommended : Public registers - See data sheet for more detail
  41.                 VL6180X_WriteByte(add,0x0011, 0x10);       // Enables polling for 'New Sample ready'
  42.                                                                         // when measurement completes
  43.                 VL6180X_WriteByte(add,0x010a, 0x30);       // Set the averaging sample period
  44.                                                                         // (compromise between lower noise and
  45.                                                                         // increased execution time)
  46.                 VL6180X_WriteByte(add,0x003f, 0x46);       // Sets the light and dark gain (upper
  47.                                                                         // nibble). Dark gain should not be
  48.                                                                         // changed. !上半字节要写入0x4        默认增益是1.0
  49.                 VL6180X_WriteByte(add,0x0031, 0xFF);       // sets the # of range measurements after
  50.                                                                         // which auto calibration of system is
  51.                                                                         // performed
  52.                 VL6180X_WriteByte(add,0x0041, 0x63);       // Set ALS integration time to 100ms
  53.                 VL6180X_WriteByte(add,0x002e, 0x01);       // perform a single temperature calibration
  54.                                                                         // of the ranging sensor

  55.                 // Optional: Public registers - See data sheet for more detail
  56.                 VL6180X_WriteByte(add,0x001b, 0x09);    //测量间隔        轮询模式
  57.                                                                         // period to 100ms        每步10ms->0-10ms
  58.                 VL6180X_WriteByte(add,0x003e, 0x31);      //测量周期        ALS模式
  59.                                                                         // to 500ms               
  60.                 VL6180X_WriteByte(add,0x0014, 0x24);       // Configures interrupt on 'New Sample
  61.                                                                         // Ready threshold event'


  62. //VL6180X_WriteByte(add,VL6180X_REG_SYSTEM_FRESH_OUT_OF_RESET, 0x00); //不发送00那么读出来的数值就是01

  63.                 return 0;
  64.         }
  65.         else return 1;
  66. }
复制代码

————————————————
版权声明:记帖


收藏 评论0 发布时间:2023-2-6 17:41

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版