超高精电容传感器PCAP01调试+LABVIEW数据可视化调试手记

news2024/11/22 16:11:41

PCAP01超高精电容传感芯片+STM32+LabView可视化

文章目录

  • PCAP01超高精电容传感芯片+STM32+LabView可视化
    • 一、PCAP01介绍
      • 1.1、PCAP01引脚定义
      • 1.2、电容测量
      • 1.3、温度测量
      • 1.4、PCAP典型测试电路
    • 二、PCAP01的STM32驱动
      • 2.1、SPI协议配置
      • 2.2、PCAP01浮空电容测量内部温度测量操作流程
    • 三、制定串口通讯协议
    • 四、LabView上位机

一、PCAP01介绍

PCAP01Ax_0301是ACAM公司推出的一款单芯片电容测量方案集成芯片。该芯片集成了电容测量部分以及片内哈弗架构DSP,可以实现至高500kHZ的超高速电容测量以及数据处理。在温湿度传感、动力学传感器、MEMS、液位传感器、触摸检测等领域具有广阔的应用前景。

本文章将抽丝剥茧的从70多页的英文文档中梳理出该芯片的配置过程。

1.1、PCAP01引脚定义

在这里插入图片描述

引脚描述
BUFFCAPConnect microfarad bypass capacitance and nanofarad bypass capacitance to GND. Bridge all BUFFCAP pins. Bypassing is mandatory! (简言之:该引脚需要与所有BUFFCUP引脚相连,并且必须对地连接uF级别和nF级别的电容进行去耦,一般选择4.7uF和100nF)
GNDGround
IIC_ENPut this to LOW or GND for use of SPI bus. Put it to HIGH or VDD otherwise.(简言之:拉低该引脚启用SPI)
INTNOptional. Interrupt line, low active
MISO_PG1Serial interface data line, Master In - Slave Out (SPI only, otherwise available as general-purpose port)(简言之:SPI通讯线)
MOSI_SDASerial interface data line, Master Out - Slave In(简言之:SPI通讯线)
OXIN&OXOUTMay be left open. Very exceptionally used for connecting a 4 to 20 MHz ceramics resonator or quartz.(简言之:外部晶振接口,一般不接)
PC0-PC7“CDC” or capacitive measurement ports. Connect reference and sensors here, beginning with PCØ for the reference.(简言之:电容检测引脚)
PCAUXMay be used for external discharge resistor.(外接泄压电阻)
PG2-PG5General purpose I/O ports. PG4 and PG5 are output only, others are configurable input or output.
PT0-PT1“RDC” or temperature measurement ports. Connect one side of the external resistive sensors here.
PT2REFWhen there is an external resistive (temperature measurement) reference, connect it here, otherwise this is the place for a third resistive sensor.(外接参考电阻)
PTOUTFor temperature measurement, connect the other side of the resistive sensors and a 33 nF ceramics capacitor here.(简言之:温度测量时,需要将该引脚通过33nF的电容进行接地!这是必须,电容值必须33nF)
SCK_SCLSerial interface clock line(SPI的时钟线)
SSN_PG0SPI interface chip select line, low active. Alternatively general purpose I/O port.(简言之:SPI的片选信号线,拉低表示选中该芯片)
VDDVDD here, plus bypass capacitance to GND. Bypassing is mandatory!
VPP_OTPSet to 6.5 V during OTP programming. Set back to GND rapidly after the end of the programming process. Keep pin grounded for normal device operation. Apply a 470 kOhm pull-down resistor to this pin.(简言之:在OTP编程的时候接上6.5V,变成结束迅速拉低,正常使用时应当拉低)

需要注意:当芯片底部中心具有焊盘时,需要将该焊盘接地

1.2、电容测量

在这里插入图片描述

该传感器通过给电容进行充电后计算其放电时间换算出电容的容值。输出的结果为: t N t r e f = C N C r e f \frac{t_N}{t_{ref}}=\frac{C_N}{C_{ref}} treftN=CrefCN.

PCAP01具有三种测量电容的方式;分别为浮动测量方式、接地测量方式以及差分测量方式。这些测量方式中,都规定C0为参考电容,因此该芯片最多支持3路浮动测量或者7路接地测量。其连接方式如下图所示:
在这里插入图片描述

根据PCAP01的测量原理可知,要获得精确的测量结果,就要求参考电容的精度足够高。并且当使用长线进行电容测量时,需要使用屏蔽线,并将屏蔽线缆接地。同时、PCAP01具有内部和外部补偿测量模式、启用后可以消除内部和外部电路电阻的影响。

1.3、温度测量

在这里插入图片描述
PCAP01支持内部和外部温度测量两种模式,在一般的应用场景下,内部的温度传感器已经符合要求。如图3-14所示为外部测量模式、该模式下需要外接一个热敏电阻PT1000以及一个超低温漂的参考电阻。如果使用内部模式、PCAP内部具有一个2800ppm/K的热敏电阻以及一个温漂接近0ppm/K的参考电阻,直接悬空PT0以及PT2REF即可。

1.4、PCAP典型测试电路

在这里插入图片描述
本电路为浮动模式电容测量以及内部温度测量、使用SPI进行通讯。

二、PCAP01的STM32驱动

PCAP01首先需要写入固件,芯片才能正常运行。官方提供了两个版本的固件给用户选择,有能力的也可以自己编写。固件地址:https://www.sciosense.com/pcap01-capacitance-to-digital-conversion-digital-signal-processor/

固件写入完成后,就可以开始寄存器的相关配置,PCAP01的寄存器配置表如下所示:
在这里插入图片描述
读寄存器表:
在这里插入图片描述
在这里插入图片描述
各个寄存器的每一位代表的配置详见官方手册。

2.1、SPI协议配置

如图所示为PCAP01的SPI模式要求,在进行STM32的SPI初始化的时候应当遵照表中要求对单片机的SPI外设进行相应的配置。
在这里插入图片描述
PCAP01的SPI为标准的四线全双工SPI通讯,SSN引脚输出一个短暂的高电平使能SPI传输,随后数据随着时钟线的嘀嗒移入移出。
在这里插入图片描述
在写时序中,只需要将待写入的数据依次移出即可,但这里需要遵循PCAP01的写入规则:
在这里插入图片描述
上述的意思是,在进行寄存器写入操作的时候,单帧数据的最高两位为11,紧接着跟上寄存器的地址,例如寄存器0(Register0)的地址为0,则输出数据前八位为11000000,即0xC0。其后再接上24位寄存器的配置值。
在读时序中,需要先发送需要读取的寄存器地址,然后等待一小段间隔再发送移位信号将PCAP01相关寄存器中的数据移出。需要注意的是,发送的起始两位为01,综上所述可知,如果要读取Status寄存器的数据,应当发送的数据为:0100 1000 0000 0000 0000 0000 0000 0000,转换为16进制为:0x48000000。

2.2、PCAP01浮空电容测量内部温度测量操作流程

  1. 首先测试SPI通讯是否正常:
  2. 写入PCAP01的固件
  3. 配置各个寄存器,下面给出本例中的寄存器配置值
寄存器0:0xc04200FF (关闭OTP模式、开启程序读保护)
寄存器1:0xC1201022   (设置内部晶振频率50KHz)
寄存器2:0xc2FF460B   (开启所有电容测量通道、浮动模式、泄压电阻30kOhm,开启内外补偿)
寄存器3:0xc3030010   (CDC的循环基准20us,触发周期20*16,16次平均)
寄存器4:0xc4080111   (时钟触发电容测量,CDC cycle time 40us,温度测量280us,电容触发温度测量)
寄存器5:0xc500000A   (温度测量不平均,十次电容测量触发一次温度测量)
寄存器6:0xc6004340
寄存器7:0xc71F0000   (固定)
寄存器8:0xc8800030   (设置程序空间,以及DSP的功耗)
寄存器9:0xc9FF000F   (设置脉冲输出精度)
寄存器10:0xca180047  (设置DSP电压)
寄存器13:0xcd000007  (设置脉冲的输出数据)
寄存器14:0xce002ff0  (设置输出数据的斜率)
寄存器15:0xcf000000  (设置输出数据的偏置)
寄存器19:0xD3200000  (设置内部线性补偿,默认为1.0000,十六进制为200000)
寄存器20:0xD4000001  (芯片开始工作)
  1. 重置所有测量:SPI发送0x8A;
  2. 开始测量:SPI发送0x8C;
  3. 获取对应通道的测量值:例如:(c1/c0)SPI发送:0x41,随后开始读取
  4. 将获取的值除以0x1FFFFF,得到比例值的小数。
  5. 将小数值乘以参考电容值,得到被测电容值。
  6. 获取温度值(0x4E)(Rt/Rref);
  7. 根据公式:T=20+((Rt/Rref/0x1FFFFF)-0.824) /0.0023072;计算出温度

三、制定串口通讯协议

下位机发送协议,定长

Byte0Byte1Byte2-5Byte6-9Byte10-13Byte14-17Byte19
帧头数据长度电容1数据电容2数据电容3数据温度数据CRC校验
0x550x13

下位机接收,不定长

Byte0Byte1Byte2Byte XXXByte Final
帧头数据长度指令类型指令内容CRC校验
0xAA

四、LabView上位机

在这里插入图片描述

LabView使用的是G语言,其编程方式和C有很大的区别,编程效率个人感觉远低于C语言,但是其直观化的编程方式受到了许多科研人员的喜爱。上述为LabView的串口配置过程,通过VISA配置串口模块进行参数配置,随后进入顺序片段等待配置完成。随后就可以通过串口的VISA写入和VISA读取进行上位机与下位机的数据交互了。
在这里插入图片描述

获取到数据之后对数据协议进行解析,将解析出的数据进行校验后通过波形图进行显示。
在这里插入图片描述
点击采集和保存,通过上述的程序将传感器一段时间内的数据保存为CSV文件。
由于LabView是框图编程,程序的整体结构如下,
在这里插入图片描述
最终实现效果如图:
请添加图片描述
需要整个工程完整代码请私聊。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1904888.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

秋招提前批面试经验分享(上)

⭐️感谢点开文章👋,欢迎来到我的微信公众号!我是恒心😊 一位热爱技术分享的博主。如果觉得本文能帮到您,劳烦点个赞、在看支持一下哈👍! ⭐️我叫恒心,一名喜欢书写博客的研究生在读…

【LVGL-SquareLine Studio】

LVGL-SquareLine Studio ■ SquareLine Studio-官网下载地址■ SquareLine Studio-参考博客■ SquareLine Studio-安装■ SquareLine Studio-汉化■ SquareLine Studio-■ SquareLine Studio-■ SquareLine Studio-■ SquareLine Studio-■ SquareLine Studio- ■ SquareLine S…

云动态摘要 2024-07-07

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 数据库上云优选 阿里云 2024-07-04 RDS、PolarDB、Redis、MongoDB 全系产品新用户低至首年6折起! [免费体验]智能助手ChatBI上线 腾讯云 2024-07-02 基于混元大模型打造,可通过对话方式生成可视化…

【vue组件库搭建06】组件库构建及npm发包

一、格式化目录结构 根据以下图片搭建组件库目录 index.js作为入口文件,将所有组件引入,并注册组件名称 import { EButton } from "./Button"; export * from "./Button"; import { ECard } from "./Card"; export * fr…

并查集(还有反集也在)

一.定义 定义: 并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题(即所谓的并、查)。比如说,我们可以用并查集来判断一个森林中有几棵树、某个节点是否属于某棵树等。 主要构成: 并查集…

如何将Grammarly内嵌到word中(超简单!)

1、下载 安装包下载链接见文章结尾 官网的grammarly好像只能作为单独软件使用,无法内嵌到word中🧐🧐🧐 2、双击安装包(安装之前把Office文件都关掉) 3、安装完成,在桌面新建个word文件并打开 注…

【Spring AOP 源码解析前篇】什么是 AOP | 通知类型 | 切点表达式| AOP 如何使用

前言(关于源码航行) 在准备面试和学习的过程中,我阅读了还算多的源码,比如 JUC、Spring、MyBatis,收获了很多代码的设计思想,也对平时调用的 API 有了更深入的理解;但过多散乱的笔记给我的整理…

PXIe-7976【K410T】

起售价 RMB 152,880.00 块RAM(BRAM): 28620 kbit 动态RAM(DRAM): 2 GB FPGA: Kintex-7 410T PXI背板链路: PCI-Express Gen2 x 8 FPGA片: 63550 DSP片: 1540

240707-Sphinx配置Pydata-Sphinx-Theme

Step A. 最终效果 Step B. 为什么选择Pydata-Sphinx-Theme主题 Gallery of sites using this theme — PyData Theme 0.15.4 documentation Step 1. 创建并激活Conda环境 conda create -n rtd_pydata python3.10 conda activate rtd_pydataStep 2. 安装默认的工具包 pip in…

基于Java的水果商品销售网站

1 水果商品销售网站概述 1.1 课题简介 随着电子商务在当今社会的迅猛发展,水果在线销售已逐渐演变为一种极为便捷的购物方式,日益受到人们的青睐。本系统的设计初衷便是构建一个功能完备、用户体验友好的水果销售平台,致力于为用户提供优质、…

入门PHP就来我这(高级)12 ~ 获取数据

有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享 路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。 1 从结果集中获取一行作为对象 表中数据行如下: 利用mysqli_fetch_array()函数获…

SLF4J的介绍与使用(有logback和log4j2的具体实现案例)

目录 1.日志门面的介绍 常见的日志门面 : 常见的日志实现: 日志门面和日志实现的关系: 2.SLF4J 的介绍 业务场景(问题): SLF4J的作用 SLF4J 的基本介绍 日志框架的绑定(重点&#xff09…

【CSS in Depth 2精译】2.5 无单位的数值与行高

当前内容所在位置 第一章 层叠、优先级与继承第二章 相对单位 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高 ✔️2.6 自定义属性2.7 本章小结 2.5 无单位的数值与行高 有些属性允许使用无单位的数值(unitless value…

Linux:DHCP服务配置

目录 一、DHCP概述以及DHCP的好处 1.1、概述 1.2、DHCP的好处 二、DHCP的模式与分配方式 2.1、模式 2.2、DHCP的分配方式 三、DHCP工作原理 四、安装DHCP服务 五、DHCP局部配置并且测试 5.1、subnet 网段声明 5.2、客户机预留指定的固定ip地址 一、DHCP概述以及DHCP…

【Java13】包

“包”这个机制,类似于分组。主要作用是区分不同组内的同名类。例如,高三三班有一个“王五”,高二八班也有一个“王五”。高三三班和高三八班就是两个不同的包。 Java中的包(package)机制主要提供了类的多层命名空间&…

驾校管理系统设计

驾校管理系统设计旨在提高驾校运营效率、学员管理、教练安排、考试预约、财务结算等方面的能力。以下是一个基本的设计框架,包括关键模块和数据表设计: 1. 系统架构设计 前端界面:提供给学员、教练和管理员使用的Web界面或移动应用&#xf…

51单片机STC89C52RC——16.1 五项四线步进电机

目的/效果 让步进电机 正向转90度,逆向转90度 一,STC单片机模块 二,步进电机 2.2 什么是步进电机? 步进电机可以理解为:是一个按照固定步幅运动的“小型机器”。它与普通电机不同点在于,普通电机可以持…

插入排序——C语言

假设我们现在有一个数组,对它进行排序,插入排序的算法如同它的名字一样,就是将元素一个一个插入到合适的位置,那么,该如何做呢? 如果我们要从小到大进行排序的话,步骤如下: 1.对于…

WAWA鱼曲折的大学四年回忆录

声明:本文内容纯属个人主观臆断,如与事实不符,请参考事实 前言: 早想写一下大学四年的总结了,但总是感觉无从下手,不知道从哪里开始写,通过这篇文章主要想做一个记录,并从现在的认…

大数据之路 读书笔记 Day4 数据同步

回顾: Day 3 总结了无限客户端的日志采集 大数据之路 读书笔记 Day 3Day 2总结了浏览器端的日志采集 大数据之路 读书笔记 Day 2 数据同步 阿里数据体系中的数据同步,主要指的是在不同的数据存储系统之间进行数据的传输与更新,以保证数据的一…