VD6283TX环境光传感器驱动开发(1)----获取ID

2023-10-03 15:36

本文主要是介绍VD6283TX环境光传感器驱动开发(1)----获取ID,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

VD6283TX环境光传感器驱动开发----1.获取ID

  • 概述
  • 视频教学
  • 样品申请
  • 源码下载
  • 模块参数
  • IIC接线方式
  • 设备ID
  • 生成STM32CUBEMX
    • 串口配置
  • IIC配置
  • 串口重定向
  • 模块地址
  • 获取ID
  • 主函数
  • 结果演示

概述

环境光传感器是一种光电探测器,能够将光转换为电压或者电流,使用多光谱环境光传感器为了测量光谱上特定波长或特定带锯波长的强度,该传感器的目标是改善视觉体验并最终使用户感到舒适的照明视觉体验。
在这里插入图片描述
在这里插入图片描述

最近在弄ST的课程,需要样片的可以加群申请:615061293 。

视频教学

https://www.bilibili.com/video/BV1du411u7Uz/

VD6283TX环境光传感器驱动开发(1)----获取ID

样品申请

https://www.wjx.top/vm/OhcKxJk.aspx#

源码下载

模块参数

VD6283 是 ST 的一款微型光学模块,尺寸为 1.83 x 1.0 x 0.55 mm,具有6个独立的环境光传感通道,包括红、绿、蓝、红外、透明和可见通道。它使用高级混合滤波器并能在7 mLux 到 30 kLux 的范围内运行。此传感器具有独特的读出架构,可以提取从100 Hz 到 2 kHz 频率的交流灯光闪烁信号。VD6283 还配备了 I2C 接口,工作电压为1.8 V,并具有低功耗特性。它可以在 -30 到 85 °C 的温度范围内运行。主要应用包括屏幕亮度调整的真实色调色感测定、光亮度和相关色温测量以及闪烁校正辅助的光频提取。通过专利架构和高性能的光电二极管设计,VD6283 可以提取灯光闪烁频率,避免视频上的“条纹效果”,或检查它们对人眼是否安全。此外,VD6283 是唯一能够同时进行闪烁操作和环境光传感操作的传感器。
在这里插入图片描述

IIC接线方式

IIC接线方式如下所示,需要注意的是供电和上拉都是1.8V。

在这里插入图片描述

开发板接线方式如下所示。

在这里插入图片描述

设备ID

我们可以通过查询0x00和0x01获取模块ID和模块版本号。

在这里插入图片描述

手册给出的取模块ID和模块版本号分别是0x70和0xBD。

在这里插入图片描述

生成STM32CUBEMX

串口配置

查看原理图,PA1和PA0设置为开发板的串口。

在这里插入图片描述
配置串口。
在这里插入图片描述

IIC配置

在这个应用中,VD6283TX模块通过I2C(IIC)接口与主控器通信。具体来说,VD6283TX模块的I2C引脚连接到主控器的PB6(引脚B6)和PB7(引脚B7)两个IO口。

在这里插入图片描述
配置IIC为普通模式,速度为100k。

在这里插入图片描述

串口重定向

打开魔术棒,勾选MicroLIB

在这里插入图片描述

在main.c中,添加头文件,若不添加会出现 identifier “FILE” is undefined报错。

/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */

函数声明和串口重定向:

/* USER CODE BEGIN PFP */
int fputc(int ch, FILE *f){HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);return ch;
}
/* USER CODE END PFP */

模块地址

VD6283TX模块的默认设备地址为0100000(0x20)。设备地址是用来识别和通信特定设备的标识符。通过将VL6180模块的设备地址设置为0100000(0x20),您可以确保与该模块进行正常的通信和控制。
若添加读写位,0x40为写地址,0x41为读地址。

在这里插入图片描述

获取ID

读写函数如下所示。

/*** @brief  读取数据** @param  add   模块地址* @param  reg   寄存器地址* @param  data  buffer 缓冲区* @param  len   读取长度* @retval ret   正常返回HAL_OK**/
uint8_t VD6283TX_read_reg(uint8_t add,uint8_t reg,  uint8_t * data, uint8_t len)
{uint8_t ret;ret=HAL_I2C_Mem_Read(&hi2c1 ,(add<<1)|1,reg,I2C_MEMADD_SIZE_8BIT,data,len,0xffff);return ret;
}/*** @brief  写入数据** @param  add   模块地址* @param  reg   寄存器地址* @param  data  buffer 缓冲区* @param  len   写入长度* @retval ret   正常返回HAL_OK**/
uint8_t VD6283TX_write_reg(uint8_t add,uint8_t reg, uint8_t * data, uint8_t len)
{uint8_t ret;ret=HAL_I2C_Mem_Write(&hi2c1 ,(add<<1)|0,reg,I2C_MEMADD_SIZE_8BIT,data,len,0xffff);return ret;}

获取ID以及版本号代码如下所示。

/*** @brief  获取设备ID** @param  add      设备地址* @param  val      设备ID.* @retval ret   		正常返回HAL_OK**/uint8_t VD6283TX_getChipID(uint8_t add)
{uint8_t temp[1]={0};VD6283TX_read_reg(add,VD6283TX_DEVICE_ID,temp,1);return temp[0];
}/*** @brief  获取VD6283硅芯片的修订版本** @param  add      设备地址* @retval          硅芯片修订版本**/
uint8_t VD6283TX_getSiliconRevision(uint8_t add)
{uint8_t revision[1] = {0};VD6283TX_read_reg(add, VD6283TX_REVISION_ID, revision, 1);return revision[0];
}

主函数

  /* USER CODE BEGIN 2 */HAL_Delay(200);	printf("123\n");//获取设备IDHAL_I2C_Mem_Write(&hi2c1 ,(add<<1)|0,reg,I2C_MEMADD_SIZE_8BIT,data,len,0xffff);uint8_t VD6283_ID =VD6283TX_getChipID(VD6283TX_ID);printf("VD6283TX_ID=0x%x\n",VD6283_ID);		//获取VD6283硅芯片的修订版本uint8_t VD6283_Revision =VD6283TX_getSiliconRevision(VD6283TX_ID);printf("getSiliconRevision=0x%x\n",VD6283_Revision);		/* USER CODE END 2 */

结果演示

在这里插入图片描述

这篇关于VD6283TX环境光传感器驱动开发(1)----获取ID的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/534

相关文章

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出