FDC2214+FPGA转换芯片使用和配置(非接触液位检测设计)

芯片介绍

FDC2214是一款分辨率28位,四通道(可以采集四个电容模拟量),IIC接口的芯片,其他的优点接不介绍了总之很多什么低功耗,抗噪声,高速…等等。电容式传感系统中的传感器可 以采用任意金属或导体我用的是黄铜丝 哈哈 金属片也试了 效果也不错),因此可实现高度灵活的低成本系统设计。其他信息可以看FDC2214数据手册(不得不说德州仪器TI的产品是厉害哈哈)。

设计介绍

本设计采用FPGA与FDC2214进行通讯通过单通道检测容器内液位,传感器为黄铜线缠绕在容器外壁(本设计采用单通道配置,只使用一个通道中的一个电容传输接口,另一个电容传输接口悬空)。具体装置如下图所示。

下图为无水时读取的的数据,无水时读取出0X00寄存器中的数据为00D5,0X01中的数据位6FFA(SignalTap ii抓取的数据)。

下图为有水时装置图片和读取的数据。


下图为有水时读取的的数据,有水时读取出0X00寄存器中的数据为00D4,0X01中的数据位9EA6(SignalTap ii抓取的数据)。

IIC驱动配置

下图为官方数据手册中的IIC读写时序,需要注意的是寄存器地址为8位但是读写数据为16位的,也就是在读写完高八位数据后需要读写低八位数据。(这个需要特别注意)

下图为iic读写工作状态机

因为代码太多了,只放状态机状态转移部分的代码吧哈哈(要是想要完整工程可以私信我啊哈哈)

always @( * ) begincase(cur_state)idle: begin                            // 空闲状态if(i2c_exec) beginnext_state = sladdr;endelsenext_state = idle;endsladdr: beginif(st_done) beginif(bit_ctrl)                      // 判断是16位还是8位字地址next_state = addr16;elsenext_state = addr8 ;endelsenext_state = sladdr;endaddr16: begin                          // 写16位字地址if(st_done) beginnext_state = addr8;endelse beginnext_state = addr16;endendaddr8: begin                           // 8位字地址if(st_done) beginif(wr_flag==1'b0)begin               // 读写判断if(bit_ctrl_w)                  //如果bit_ctrl_w为一则写16位数据               next_state = data_wr_16;else next_state = data_wr_8;   //如果bit_ctrl_w为零则写8位数据end    else beginnext_state = addr_rd;                                                                   end          endelse beginnext_state = addr8;endend data_wr_16:begin                        // 写高8位数据(8 bit)if(st_done)   next_state =  data_wr_8 ;else next_state =  data_wr_16;enddata_wr_8: begin                        // 写低8位数据(8 bit)if(st_done)next_state = stop;elsenext_state = data_wr_8;endaddr_rd: begin                         // 写地址以进行读数据if(st_done) beginif(bit_ctrl_r)                //如果bit_ctrl_r为一则读16位数据              next_state = data_rd_16;else next_state = data_rd_8;    //如果bit_ctrl_r为零则读8位数据endelse beginnext_state = addr_rd;endenddata_rd_16: begin                        // 读取高8位数据(8 bit)if(st_done)next_state = data_rd_8;elsenext_state = data_rd_16;enddata_rd_8: begin                        // 读取低8位数据(8 bit)if(st_done)next_state = stop;elsenext_state = st_data_rd_8;endstop: begin                           // 结束I2C操作if(st_done)next_state = idle;elsenext_state = stop ;enddefault: next_state= idle;endcase
end

FDC2214单通道寄存器配置

下面我就直接说我是怎么配置得了哈哈不详细介绍了可以查看数据手册啊,下图为官方手册中的寄存器介绍。

0X00到0X07
总共8个寄存器,每两个寄存器为一个电容通道的数据寄存器。下图为数据手册中的0X00介绍。

下图为为数据手册中的0X01介绍。

以通道0为例介绍0X00和0X01两个寄存器,0X00的低12位数据是该通道电容的高12位数据,0X01的全部16位数据是该通道电容的低16位数据,总共为28位的电容数据。
0X08到0X0B
这四个寄存器是四个通道的计数转换时间设置在这里我就不介绍详细计算过程了。单通道使用时把对应通道的寄存器设置为FFFF。
下图是官方手册中的以0X08为例,对应0通道的计数转换时间计算。

0x0C到0x0F
这四个寄存器是对应四个通道的转换偏移,此项一般不做配置。
0X10到0X13
这四个寄存器是对应四个通道的转换开始前稳定时间设置在这里我就不介绍详细计算过程了。单通道使用时把对应通道的寄存器设置为0064。
下图是官方手册中的以0X10为例,对应0通道的转换开始前稳定时间计算。

0X14到0X17
这四个寄存器是对应四个通道的频率选择,单端时配置为2001差分时配置为1001。单通道使用时把对应通道配置为2001采用单端传输。
下图是官方手册中的以0X14为例详细介绍。

0x18
这个寄存器是设备的状态报告,读取该寄存器的值,获取错误信息。
下图是官方手册中的0X18寄存器详细介绍。

0X19
这个寄存器是设备状态报告配置。默认配置0x19为0000,默认情况下,不允许中断启用。
下图是官方手册中的0X19寄存器详细介绍。

0X1A
这个寄存器参数配置寄存器用来配置各种参数,单通道使用时配置为1C81
下图是官方手册中的0X1A寄存器详细介绍。

0X1B
这个寄存器通道复用寄存器,单通道使用时配置为020D
下图是官方手册中的0X1B寄存器详细介绍。


0X1B
复位配置用不到就不需要配置。
0X1E到0X21
这四个寄存器是四个通道驱动电流配置。单通道使用时把对应通道的寄存器设置为F800。
下图是官方手册中的以0X1E为例详细介绍。

注意

要是不愿意看数据手册的小伙伴可以直接根据我的单通道配置来设置寄存器。(我使用的是单通道以通道1为例)单通道配置如下图所示。(我用的是通道一啊 哈哈 通道一定不要搞错了 )

(0x0A,0xFFFF);//通道1转换时间配置  (0x12,0x0064);//通道1转换开始前稳定时间配置(0x16,0x2001); //通道1分频系数配置(0x19,0x0000); //设备状态报告配置(0x1A,0x1C81); //参数配置(0x1B,0x020D); //通道复用配置(0x20,0xF800); //通道1驱动电流配置

总结

实验结果,当采用通道一单通道设置时,在无水的情况下(十六进制显示)0X04寄存器和0X05寄存器中28位数据为00D5,6FFA。在有水的情况下(十六进制显示)0X04寄存器和0X05寄存器中28位数据为00D4 ,9EA6。因为28位分辨率的转换芯片精度已经是相当高了所以我在试验时低12位数据一直在变化。但是高12位数据还是很稳定的,在有水的情况下有明显的减小。
要是想要工程的小伙伴可以私信我啊哈哈。

最近没怎么写博客可能是因为懒惰了,也可能是因为被tutor搞得把哈哈,要是有什么疑问或者我哪里写错了可以告诉我啊一起探讨 ,代码我就不全粘贴了太多了哈哈 。感兴趣可以私信啊。

FDC2214+FPGA转换芯片使用和配置(非接触液位检测设计)相关推荐

  1. 基于场效应管2N3819制作非接触电压检测 - 购买到假货了

    简 介:   的确在淘宝 上有各种销售渠道,开始的寻找价格便宜的 2N3819,结果看来是购买到的假货了. 关键词: 2N3819,假货,淘宝 #mermaid-svg-NPVrCg66QuoJgH8 ...

  2. 基于51单片机的红外非接触测温仪阈值报警方案原理图设计

    系统的功能分析 (附文件) 系统功能分析 本设计由STC89C52单片机电路+1602液晶显示电路+MLX90614ESF红外非接触温度检测电路+按键电路+蜂鸣器报警电路. 1.液晶实时显示MLX90 ...

  3. GY-MCU90615 非接触式体温传感器

    传感器介绍:GY-MCU90615 是一款低成本红外温度模块. 工作电压 3-5v 功耗小,体积小.其工作原理,是通过单片机读取红外温度数据,串口(TTL 电平)通信方式输出.串口的波特率有 9600 ...

  4. 基于51单片机红外非接触测温仪阈值报警设计

    本设计由STC89C52单片机电路+1602液晶显示电路+MLX90614ESF红外非接触温度检测电路+按键电路+蜂鸣器报警电路. 1.液晶实时显示MLX90614ESF检测的环境温度值和被测物体温度 ...

  5. 利用反射计芯片进行非接触式液位测量

    利用反射计芯片进行非接触式液位测量 Contactless fluid-level measurement using a reflectometer chip 通过将空气介质传输线靠在非金属罐的侧面 ...

  6. 非接触借记贷记流程报文解析

     交易预处理 终端通过检查终端交易属性(9F66)来判断其交易的类型,如是否支持QPBOC.如果支持QPBOC,则在提示持卡人出示卡片和终端非接触式界面被激活前,必须进行这一步.否则,不需要进行这 ...

  7. PBOC卡片应用分析(四)非接触式IC卡规范

    感谢@JulyClyde同学友情提供的工商银行闪酷钥匙扣,支持银联的闪付功能.卡片内的电子现金余额已经被圈提干净,余额应该是0.现在使用PC/SC的读卡器配合麻工强大的Snooper进行测试. 首先选 ...

  8. 智能卡操作(非接触CPU卡又称智能卡) 总结

    1-数据传输格式和初始化 对于刚接触智能卡的工程师来说,在阅读7816-3规范的时候,常常被其中的一些术语迷惑,读起来会觉得有些别扭.尤其是在看到复位应答中的F和D设置以及对应的etu的时候,会觉得有 ...

  9. 非接触式红外额温计方案

    方案简介:非接触式红外额温计是一种利用现代传感器测量技术.微电子技术等技术手段对被测对象进行温度测量的新型仪器.当红外额温计对准并靠近被测对象至数字接近式传感器检测的有效距离时,按下电源/测量键,并 ...

最新文章

  1. 2022-2028年中国云服务市场深度调研及投资前景预测报告
  2. Luogu T24242 购物券Ⅰ(数据已加强)
  3. python登录验证码(基于django框架)
  4. 【Blog.Core开源】框架集成部门权限
  5. 华为Mate40系列屏幕细节曝光:至少要上90Hz刷新率
  6. C#创建无数据源水晶报表极简教程
  7. SEAndroid语法介绍
  8. Atitit 可读性的艺术 目录 1. 原则类 1 2. 方法类 2 2.1. 1.8. 选择选择表格化 3 2 2.2. 体现了“声明式编程”的风格,即只要说明意图,而不需要写出处理细节。 2 2
  9. 【真正离线安装】Adobe Flash Player 32.0 插件离线安装包下载(无需联网安装)
  10. NAND flash和NOR flash的区别详解
  11. 智能合约安全漏洞检测技术研究综述——常见漏洞简述
  12. Openwrt平台搭建
  13. 将苹果通讯录.contacts文件导入安卓通讯录提取.contacts文件联系人的教程
  14. 如何使用CAD软件来修改表格中CAD字体颜色?
  15. 解决vue项目中@mousemove 事件 子元素触发了父元素事件
  16. c# WPF中对输入值任意限制的方法及通用示例
  17. 百度网盘文件分享设置个性密码
  18. 一个小白轻松月入上万块的线上冷门项目
  19. 如果win10 硬盘依然经常100%使用率 务必请安装achi驱动。
  20. 重装系统后QQ聊天记录恢复方法

热门文章

  1. Leetcode:面试题 01.06. 字符串压缩
  2. Python学习:给类或者类的对象添加打印内容 def __repr__(self)
  3. [Unity]实现按住WASD角色移动
  4. cf大区服务器显示人数合区后,CF:各大区迎来合并,未来只有4大战区,看看自己属于哪个战区?...
  5. Flash/Flex学习笔记(43):动量守恒与能量守恒
  6. 校招答疑总结!准备实习、校招的学妹(弟)们,可不要努力错方向了!
  7. VMware虚拟机安装教程图解,虚拟机详细使用教程
  8. js时间与当前时间比较
  9. nodejs优雅的使用es6语法
  10. 我的思维工具(三)收益半衰期