yin_wu_qing

  • 2021-09-05
  • 发表了主题帖: 【Silicon Labs 开发套件评测】+Si7021温湿度传感检测

    本帖最后由 yin_wu_qing 于 2021-9-6 09:50 编辑        前面帖子已经提到开发板集成了Si7021温湿度传感器,该传感器采用IIC的接口与MCU通信,通过官方的数据手册,我们可以了解这款传感器的封装、特性,以及详细的通信协议。几处重要的信息点分享如下:            Si7021传感器在EFM32PG22开发板上的电路连线可参考电路原理图       同理可知,Si7021与前面分享的环境光传感器(VEML6035)与霍尔效应传感器(Si7210)都是连接在IIC总线上,SDA连接PD02管脚,SCL连接PD03管脚,使能管脚为PC06。在“Simplicity Studio IDE”中,创建一个RTOS基本工程,这里采用上期模板,只需安装对应的配置接口即可。                  完成上述组件的搭建后,然后在任务处理源文件中包含Si7021传感器的头文件         此时打开“sl_si70xx.h”文件,则会发现,官方已经给出了参考示例,用户只需将参考示例函数放在任务处理函数中被调用即可。          将采集的Data值使用浮点的数据类型打印输出,然后编译、下载,打开串口调试助手,然后将手指轻放在Si7021传感器上面,可以清晰得看到温度、湿度值都会相应地增大;移开手指,则温度、湿度值都会缓慢恢复室内温湿度值。由此可见,开发板上的Si7021传感器很灵敏,采集的数据很精确。 #include <stdio.h> #include "FreeRTOS.h" #include "task.h" #include "sl_i2cspm.h" #include "em_cmu.h" #include "sl_i2cspm_sensor_config.h" #include "sl_veml6035.h" #include "sl_si7210.h" #include "sl_si70xx.h" #ifndef TOOGLE_DELAY_MS #define TOOGLE_DELAY_MS 25 #endif #ifndef Envir_Hall_STACK_SIZE #define Envir_Hall_STACK_SIZE configMINIMAL_STACK_SIZE #endif #ifndef EXAMPLE_USE_STATIC_ALLOCATION #define EXAMPLE_USE_STATIC_ALLOCATION 0 #endif static void Envir_Hall_test_task(void *arg); sl_i2cspm_t *sl_i2cspm_sensor = SL_I2CSPM_SENSOR_PERIPHERAL; void Envir_Hall_test_init(void) { TaskHandle_t xHandle = NULL; BaseType_t xReturned = pdFAIL; #if (EXAMPLE_USE_STATIC_ALLOCATION == 1) static StaticTask_t xTaskBuffer; static StackType_t xStack[Envir_Hall_STACK_SIZE]; #else xReturned = xTaskCreate(Envir_Hall_test_task, "Envir_Hall_test task", Envir_Hall_STACK_SIZE, ( void * ) NULL, tskIDLE_PRIORITY + 4, &xHandle); EFM_ASSERT(xReturned == pdPASS); #endif } static void Envir_Hall_test_task(void *arg) { int32_t temp_data; //温度值 uint32_t rh_data; //湿度值 uint8_t fw_data; (void)&arg; sl_si70xx_init(sl_i2cspm_sensor,SI7021_ADDR); sl_si70xx_get_firmware_revision(sl_i2cspm_sensor,SI7021_ADDR,&fw_data); printf("si7021's FW Version:%d\r\n",fw_data); while(1) { sl_si70xx_measure_rh_and_temp(sl_i2cspm_sensor,SI7021_ADDR,&rh_data,&temp_data); printf("\n"); printf("hum=%f tem=%f\r\n",rh_data/1000.0,temp_data/1000.0); } }

  • 2021-08-27
  • 回复了主题帖: 【有奖下载】英飞凌《时尚小家电功率器选型指南》

    已下载

  • 2021-08-23
  • 加入了学习《ADI应用之旅—电池管理及智慧储能篇》,观看 6.新型IC技术可提升大型锂离子电池组的性能

  • 加入了学习《ADI应用之旅—电池管理及智慧储能篇》,观看 5.ADI公司:用于电池管理的合作伙伴生态系统解决方案

  • 加入了学习《ADI应用之旅—电池管理及智慧储能篇》,观看 4.以较大效率实现电池世界电气化

  • 加入了学习《ADI应用之旅—电池管理及智慧储能篇》,观看 3.紧凑安静:小型电气化解决方案

  • 加入了学习《ADI应用之旅—电池管理及智慧储能篇》,观看 1.电池管理系统:完整信号链

  • 2021-08-22
  • 发表了主题帖: 【Silicon Labs 开发套件评测】+光传感与霍尔传感的检测

    本帖最后由 yin_wu_qing 于 2021-8-22 19:24 编辑       收到板子也有段时间了,由于最近手头的事比较多,所以只能周末补发贴子咯。前期回顾:【Silicon Labs 开发套件评测】+关于板上传感器的资料,这块开发板集成了多个传感器,此次与大伙分享一下关于环境光传感器(VEML6035)与霍尔效应传感器(Si7210)的功能检测。      威世半导体生产的环境光传感器VEML6035倡导低功耗、高灵敏度,采用IIC总线通讯,官方描述如下图所示:         根据数据手册我们可以获悉传感器的设备地址是0x29,数据手册中关于IIC接口介绍如下:         Si7210是由芯科科技(Silicon Labs)提供的霍尔传感器,其SOT-23封装的管脚定义如下:          根据数据手册我们可以获悉Si7210的设备地址有0x30, 0x31, 0x32, or 0x33,数据手册中关于IIC接口介绍如下:         VEML6035器件与霍尔传感器(Si7210)在EFM32PG22开发板上的电路连线可参考电路原理图                    在“Simplicity Studio IDE”中,创建一个RTOS基本工程,接着需要安装、使能一些关于IIC接口的组件。              这里使用串口工具来打印输出传感器所采集的实时数据,因此需要加载第三方重定向的函数库         使能VEML6035与Si7210传感器       然后在工程源码中添加传感器数据处理的任务,部分代码如下: #include <stdio.h> #include "FreeRTOS.h" #include "task.h" #include "sl_i2cspm.h" #include "em_cmu.h" #include "sl_i2cspm_sensor_config.h" #include "sl_veml6035.h" #include "sl_si7210.h" #ifndef TOOGLE_DELAY_MS #define TOOGLE_DELAY_MS 1000 #endif #ifndef EXAMPLE_USE_STATIC_ALLOCATION #define EXAMPLE_USE_STATIC_ALLOCATION 0 #endif static void Envir_Hall_test_task(void *arg); sl_i2cspm_t *sl_i2cspm_sensor = SL_I2CSPM_SENSOR_PERIPHERAL; void Sensor_Control_init(void) { TaskHandle_t xHandle = NULL; BaseType_t xReturned = pdFAIL; static StaticTask_t xTaskBuffer; static StackType_t xStack[BLINK_TASK_STACK_SIZE]; xReturned = xTaskCreate(Envir_Hall_test_task, "Envir_Hall_test task", BLINK_TASK_STACK_SIZE*3, ( void * ) NULL, tskIDLE_PRIORITY + 3, &xHandle); EFM_ASSERT(xReturned == pdPASS); } static void Envir_Hall_test_task(void *arg) { const TickType_t xDelay = pdMS_TO_TICKS(TOOGLE_DELAY_MS); float veml_templux; float veml_daylux; float si7210_hudata; (void)&arg; sl_veml6035_init(sl_i2cspm_sensor,true); sl_si7210_init(sl_i2cspm_sensor); while(1) { sl_veml6035_get_als_lux(sl_i2cspm_sensor,&veml_templux); sl_veml6035_get_white_lux(sl_i2cspm_sensor,&veml_daylux); printf("veml_templux:%ld\r\n",(int32_t)(veml_templux*100)); printf("veml_daylux:%ld\r\n",(int32_t)(veml_daylux*100)); sl_si7210_measure(sl_i2cspm_sensor,10000,&si7210_hudata); printf("si7210_hudata:%ld\r\n",((int32_t)si7210_hudata*1000)); vTaskDelay(xDelay); } }         编译完成,将hex文件下载到开发板中,然后打开串口调试助手,用手指放在VEML6035传感器上面,使周围环境光亮度发生变化,然后用螺丝刀在Si7210传感器附近晃动,产生霍尔值很明显。            此次分享就告一段落啦,检测的结果说明环境光传感器(VEML6035)与霍尔效应传感器(Si7210)很灵敏,EFM32PG22微控制器非常适合这类低功耗器件的应用场景。

  • 2021-08-06
  • 回复了主题帖: 【获奖名单】TI 六月嵌入式处理直播主题周

    已确认,感谢EEWorld,感谢TI举办的线上直播活动!

  • 2021-07-28
  • 发表了主题帖: 【Silicon Labs 开发套件评测】+关于板上传感器的资料

             开发板上的硬件分布在用户手册中介绍详细,板上集成了温湿度传感器Si7021,环境光度传感器VEML6035,霍尔传感器Si7210,2个PDM Microphones传感器SPK0641HT4H-1,以及六轴加速传感器ICM-20648,开发板的硬件主框图如下:           这些Sensor与主控MCU的通信接口如下图所示,后续驱动对应的Sensor需通过对应的接口协议去驱动。          板上的管脚分布如下图所示,管脚存在功能复用,在软件中需要设定。         前面几期基本上熟悉了Simplicity Studio IDE的常用操作,在此基础上,我们来搭建一个基础性的C工程。连接开发板,点击菜单栏下的"Welcome"图标,点击“Connected Devices”下的“Start”,然后选择“EXAMPLE PROJECTS & DEMOS”下的“Empty C Project”,即可完成基础性的C工程创建。         板上的外设接口工具中可查看对应驱动函数        在“Board Control”选项下可设置板上的传感器         收集了板上集成传感器的数据手册,以便后续对Sensor的驱动编程作参考。资料奉上,有需要的网友拿走,别客气。           关于该开发板的PCB及BOM文件,Simplicity Studio IDE中可直接导出,这里也附上吧。

  • 加入了学习《molex-product-spotlight-gen-4-usb-type-c-connectors》,观看 molex-product-spotlight-gen-4-usb-type-c-connectors

  • 2021-07-27
  • 回复了主题帖: 【Silicon Labs 开发套件评测】+呼吸灯示例

    freebsder 发表于 2021-7-26 22:46 MPLABX 这种垃圾就不要拿出来说了,是我用过最垃圾的环境,,,
    兄弟,这样说话小心被Microchip的工程人员踩死,不能这么说MPLABX,正所谓智者见智,仁者见仁。

  • 2021-07-26
  • 发表了主题帖: 【Silicon Labs 开发套件评测】+呼吸灯示例

    本帖最后由 yin_wu_qing 于 2021-7-26 15:04 编辑         前面我们搭建好了Simplicity Studio开发环境,将开发板与电脑端USB相连接,打开Simplicity Studio IDE,则会自动识别到开发板型号,这与Microchip的“MPLABX IDE”有异曲同工之妙,在IDE中点击主页“Welcome”按钮,点击“Start”按钮,进入开发板信息列表。        在开发板信息列表中,选择“EXAMPLE PROJECTS & DEMOS”,获取官方工程示例。       这里提供很多基础性的工程示例,此次我们参考Blink PWM工程,选择对应工程的“CREATE”,即可构建相对应的外设工程,工程名及保存路径,选择默认即可,点击“FINISH”,即可完成工程的导出。       此时官方配置的LED0采用PWM驱动方式,在工具中可查看、修改        然后回到“Simplicity Studio”的菜单栏中,点击“锤子”图标,进行工程的编译,系统默认采用GCC编译器。        工程编译完成,没有警告,没有报错。生成了bin文件与hex文件,并告知了各占用的size空间大小。           然后点击菜单栏下的“Flash Programmer”图标,进行程序选择,这里选择hex文件。完成选择后,点击“Program”图标,进入固件程序下载。        下载完成后,开发板上的LED0指示灯变为呼吸状态,由渐亮变成渐灭,周而复始。       再来看工程示例中的源码,Simplicity Studio工具比较人性化,当鼠标图标落在函数处,则会自动预览出函数的定义,这点功能在Keil工具中是没有的,值得推崇。         此次工程示例体验就介绍到这里,采用Simplicity Studio工具极大程度得方便了工程师们的配置、调试、烧写环节,是一款更人性化的集成开发工具。

  • 2021-07-25
  • 发表了主题帖: 【Silicon Labs 开发套件评测】+搭建Simplicity Studio开发环境

         上期介绍了开发套件的硬件资源,关于开发套件的进一步开发,需要使用Simplicity Studio IDE,因此点击下载并安装Simplicity Studio链接,进入Simplicity Studio下载界面,登录Silicon Labs账号,即可下载。      由于Simplicity Studio IDE支持的系统有windows、Linux、Mac版本,本人使用的是基于windows 10平台,因此选择windows版本。      下载完后的文件是以.iso为后缀的文件类型,使用解压软件解压出来,整个文件列表信息如下:          点击“setup”,启动安装程序        接着点击“Next”,更改软件安装路径        接着就进入安装的进度条      同意获取Licenses        软件启动之后需要登录Silicon Labs个人账号,没有的需要先注册一下,并通过安全证书      登录后软件自动启动stacks更新        提示软件工具更新,选择更新所有       点击“安装管理”,选择wireless、MCU、sensors项安装       选择对应需求的产品类型         安装完毕后,Simplicity Studio工具算是搭建完成了,然后将开发板接入电脑的USB,选择对应package包,完成自动安装       再次确认增加的package包        安装完Packages包后则自动识别到开发板        此次关于搭建Simplicity Studio开发环境就介绍到这里,其实Simplicity Studio IDE与之前使用过的eclipse开发工具有很多相似之处,使用eclipse开发项目还需要在工具中设置交叉编译器等插件,这款Simplicity Studio IDE自动默认GCC交叉编译器,界面分布也很规范,还支持JLink在线调试,是一款不错的集成开发工具。

  • 2021-07-24
  • 发表了主题帖: 【Silicon Labs 开发套件评测】+开发板驾到

    本帖最后由 yin_wu_qing 于 2021-7-24 12:04 编辑         昨天收到EFM32PG22 开发套件了,开发板的确很精细,板长4.5cm,宽3.0cm。该板是基于EFM32™微控制器的高性价比、功能丰富的小型原型设计和开发平台。PG22开发套件是用于开发节能型电子设备的理想平台。采用32位ARM-Cortex-M33内核,最大工作频率可达76.8MHz。内置SEGGER J-Link调试器可确保通过USB Micro-B连接器轻松进行调试。        开发板采用小纸盒包装,带有Silicon Labs公司的logo           然后将纸盒打开,里面就是我们的核心开发板了,盒子地下还放着一根带micro USB接口的数据线         开发板使用防静电袋包装,拆开封条,取出开发板,来一张正面照         板子可采用USB或者CR2032纽扣电池供电,足见其功耗之低,背面有纽扣电池的座子         结合入门参考手册,开发套件的硬件Layout图片如下:           开发板接上纽扣电池瞧瞧        给开发板上电,看出厂LED状态是怎样的呢?一连接电脑,则自动识别到串口号,LED0黄灯闪烁。        此次开箱贴就于大伙分享到这里,后续再搭建开发环境啦,青山不改,绿水长流,咱们后会有期!

  • 2021-07-16
  • 加入了学习《机器故障防患未然 CbM状态监测为您助力!》,观看 机器故障防患未然 CbM状态监测为您助力!

  • 2021-07-15
  • 回复了主题帖: Silicon Labs 开发套件评测活动入围名单出炉啦~

    确认可以完成申请时所评测内容,并确认论坛个人信息!

  • 2021-07-02
  • 回复了主题帖: EEWorld十五周年,感恩同行!盘点那些难忘的小确幸~

    15周年了,一个工程师的艰辛历程,一个“三五计划”的具体实施。祝福EEWorld越办越好!

  • 2021-06-25
  • 回复了主题帖: 邀请函:EEWorld 十五周年嘉年华系列活动开启,有你真好!

    EEworld 15周年生日快乐哈!

  • 2021-06-17
  • 加入了学习《ADI 应用之旅——烟雾检测篇》,观看 6.集成ADuCM355的智能气体检测

最近访客

< 1/5 >

统计信息

已有80人来访过

  • 芯积分:671
  • 好友:--
  • 主题:38
  • 回复:140
  • 课时:--
  • 资源:--

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言