版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安邮电学院开放性实验报告-基于f330的差分电容检测系统班级:微电子0803姓名: 温长珍一 前言 电容传感器广泛的应用于多种检测系统中,用以测量诸如液位、压力、位移、加速度等物理量,但目前大部分电容测量方法集成化水平低、精度低,因而对电容特别是对微小电容的精确测量始终是一个很重要的课题。在某些场合,传感电容的变化量往往仅有几个皮法大小,这就对电容测量电路提出了更高的要求。 目前用于解决测量微小电容的方法主要有电荷转移法和交流法,这两种电路的基本测量原理是通过激励信号连续对电容充放电,形成与被测电容成比例的电流或电压信号,从而测量出被测电容值。它们的共同缺点是脉动噪声大,需使用滤波器及考虑相
2、位补偿,电路结构相对复杂,成本也较高。本次试验将利用ad7745 c-digital芯片设计微小电容检测电路,将电容信号转换成数字信号上传到f330单片机,然后输出示波器上。从而实现对微小电容或微小电容差的检测。二 设计目标 利用电容电压转换芯片和单片机实现数字式电容电压转换电路的功能,实现对微小电容或微小电容差的检测。三 设计内容 利用ad7745 c-digital芯片设计微小电容检测电路,其中ad7745与单片机c8051f330进行连接,f330做主机,ad7745做从机,ad7745与f330之间通过i2c总线协议进行连接,将ad7745的输出信号送至f330,并利用单片机内部自带的
3、数模转换功能将数字信号转换为模拟电压信号进行最后的输出,从而实现对微小电容或微小电容差的检测。 系统主要包括电源模块、电容转换模块、信号放大模块。其中电源模块主要是将15v的直流电压转换为3.3v来给f330和ad7745供电,电容转换模块是将电容信号转换成相应的数字信号,f330从ad7745中读出此数字信号之后经过相应的处理再输出。而信号放大模块是将f330的输出信号加以放大,从而能够更好的在示波器上显示出来。主要芯片介绍(只介绍本次试验使用到的部分) 1、f330 1.1存储系统c8051f330/1 器件是完全集成的混合信号片上系统型 mcu。cip-51 有标准 8051 的程序和数
4、据地址配置。它包括 256 字节的数据 ram,其中高 128字节为双映射。用间接寻址访问通用 ram 的高128 字节,用直接寻址访问 128 字节的 sfr地址空间。数据 ram 的低 128 字节可用直接或间接寻址方式访问。前 32 个字节为 4 个通用寄存器区,接下来的 16 字节既可以按字节寻址也可以按位寻址。程序存储器包含 8kb 的flash。该存储器以 512 字节为一个扇区,可以在系统编程,且不需特别的编程电压。 1.2指令系统cip-51 采用流水线结构,与标准的 8051 结构相比指令执行速度有很大的提高。在一个标准的 8051 中,除 mul和 div以外所有指令都需要
5、 12 或 24 个系统时钟周期,最大系统时钟频率为 12-24mhz。而对于 cip-51 内核,70%的指令的执行时间为 1 或2个系统时钟周期,只有 4 条指令的执行时间大于 4 个系统时钟周期。cip-51 工作在最大系统时钟频率 25mhz 时,它的峰值速度达到 25mips。 1.3片内调试电路c8051f330/1器件具有片内silicon labs 2线(c2)接口调试电路,支持使用安装在最终应用系统中的产品器件进行非侵入式、全速的在系统调试。 silicon labs的调试系统支持观察和修改存储器和寄存器,支持断点和单步执行。不需要额外的目标ram、程序存储器、定时器或通信通
6、道。在调试时所有的模拟和数字外设都正常工作。当mcu单步执行或遇到断点而停止运行时,所有的外设(adc和smbus除外)都停止运行,以保持与指令执行同步。 1.4 i/o接口c8051f330有17个i/o引脚(两个8位口和一个1位口) 。c8051f330/1端口的工作情况与标准8051相似,但有一些改进。每个端口引脚都可以被配置为模拟输入或数字i/o。被选择作为数字i/o的引脚还可以被配置为推挽或漏极开路输出。在标准8051中固定的“弱上拉”可以被总体禁止,这为低功耗应用提供了进一步节电的能力。 数字交叉开关允许将内部数字系统资源映射到端口i/o引脚。可通过设置交叉开关控制寄存器将片内的计
7、数器/定时器、串行总线、硬件中断、比较器输出以及微控制器内部的其它数字信号配置为出现在端口i/o引脚。这一特性允许用户根据自己的特定应用选择通用端口i/o和所需数字资源的组合。 1.5 串行端口c8051f330/1系列mcu内部有一个smbus/i2c接口、一个具有增强型波特率配置的全双工uart和一个增强型spi接口。每种串行总线都完全用硬件实现,都能向cip-51产生中断,因此需要很少的cpu干预。 1.6 10位电流输出dacc8051f330内部有一个10位电流方式数/模转换器(ida0) 。ida0的最大输出电流可以有三种不同的设置:0.5ma、1ma和2ma。ida0具有灵活的输
8、出更新机制,允许无缝满度变化,支持无抖动波形更新。ida0有三种更新方式:写ida0h、定时器溢出或外部引脚边沿。 1 芯片信息2 相关寄存器配置 2、ad7745 2.1 工作原理 ad7745的核心是一个高精度的转换器,由 1个二阶调制器和1 个三阶数字滤波器构成。ad7745可以配置成一个电容数字转换器(cdc),也可以配置成一个经典的模数转换器(adc)。除了转换器外,ad7745集成了一个多路复用器、一个激励源和电容数模转换器(cap-dac)作为电容的输入、一个温度传感器、一个时钟发生器、一个控制校正逻辑、i2c接口。ad7745的功能框图如图 1 所示。下面对图中的主要部分进行功
9、能说明。(1)-调制器 -调制器是 ad7745的核心,它是将模拟信号转换成数字信号的器件,其工作原理是:被测的电容cx被连接在cdc激励输出(exca或者excb)与-调制器输入(vin(+)之间,在 1 个转换周期,一个方波激励信号(从 exca 或者excb 输出)被加到 cx,-调制器连续采样经过 cx 的电荷。数字滤波器处理-调制器的输出,数据经过数字滤波器输出,经过校正,由 i2c 串行接口将数据读出。 (2)电容数模转换器(capdac) 电容数模转换器(capdac)可以被理解成一个负电容直接内部连接到 cin 引脚。在ad77415中有 2个 capdac,一个连接到 cin
10、1(+),另一个连接到 cin1(一),如图 2所示。输入电容 cx,cy(差分模式下)与输出数据(data)之间的关系如下:电容数模转换器可以用来编程被测电容的输入范围,通过设置 capdac(+)和capdac(一)的值,可以改变被测电容的范围,比如在单端模式下,将 cap-dac设置成温度传感器4 pf,被测电容的变化范围成了 08 pf。 (3)i2c 串行接口 ac7745支持 i2c 兼容2线串行接口,i2c 总线上的 2 根线是 scl(时钟)和 sda(数据),所有的地址、控制和数据信息都通过这 2根线进行传输。2.2 引脚功能 ad7745的引脚分布如图 3 所示可知。各引脚
11、功能描述如下: scl:i2c 串行时钟输入; rdy:逻辑输出。当该引脚信号的下降沿到来时,表示在已经使能的通道转换已经完成,同时新的数据已经到达该通道; exca,excb:cdc 激励输出。被测电容接在 exc 引脚和cin 引脚之间; refin(+),refin(-):差分参考电压输入; cin1(-):在差分模式下,cdc 的负电容输入;在单端模式下,该引脚内部断开; cin1(+):在差分模式下,cdc 的正电容输入;在单端模式下,cdc 的电容输入; nc:空管脚; vin(+),vin(-):adc 的差分电压输入。此引脚同时连接外部温度探测二极管;gnd:接地端; vdd:
12、电源端;2.75.25 v 单电源供电; sda:双向i2c 串行数据线。2.3 ad7745的工作模式 (1) 差分模式 当被测电容传感器是差分式电容传感器,其连接方法如图 2所示,差分电容探测器的正电容输入连接到cin1(+),负电容输入连接到cin1(-)。通过i2c接口将ad7745中的电容设置寄存器(cap setup register)中的capdif位设置成 1。 (2) 单端模式 当被测电容传感器是是单端电容传感器,其连接方法如图 4所示。可以通过设定capdac(+)的值调整被测的电容传感器的输出范围。四 软件设计4.1、i2c协议规则4.1.1、i2c工作原理:i2c总线是
13、由数据线sda和时钟线scl构成的串行总线,可发送和接收数据。在主机和从机之间、从机与从机之间进行双向数据传输,串行的8位双向数据传输位速率在标准模式下可达100kb/s,快速模式下可达400kb/s,高速模式下可达3.4mb/s。每个连接到总线上的器件都是并联在总线上的,即可以作为发送器也可以作为接收器,并且它们都有唯一的地址。i2c总线在传送数据过程中共有三种类型信号: 开始信号:scl为高电平时,sdl由高电平向低电平跳变,开始传送数据; 结束信号:scl为高电平时,sdl由低电平向高电平跳变,结束传送数据; 应答信号:接收数据的从机在接收到8bit数据后,向发送数据的主机发出特定的低电
14、平脉冲,表示已收到数据;主机向从机发出一个信号后,等待从控制器发出一个确认信号,主机接到确认信号后根据实际情况判断是否继续传递信号。4.1.2、ad7745应用i2c总线的读写过程:ad7745/6有一个固定地址,二进制数为1001000x,最低位为方向位,因此主机读操作时发送地址0x91,写操作时发送地址0x90。读操作过程:主机发送起始标志主机发送地址0x90从机回复确认标志主机发送寄存器地址值从机回复确认标志主机发起始标志主机发送地址0x91从机回复确认标志从机回复数据首字节主机发送确认标志从机回复最末字节主机不确认主机发送停止位写操作过程:主机发送起始标志主机发送地址0x90从机回复确
15、认标志主机发送寄存器地址值从机回复确认标志主机发送数据首字节从机回复确认标志主机发送最末数据字节从机发送确认标志主机发送停止位。主机连续读或写从机寄存器时,从机寄存器地址自动加1。4.2、流程图主程序流程图: f330初始化振荡器初始化:oscicn=0xc3关闭看门狗:pca0md &= 0xbf开总中断:ea = 1端口初始化:xb0=0x04,xb1=0x40,p0skip = 0x0f定时器1初始化:产生总线时钟定时器3初始化:总线时钟超时检测smbus初始化:smb0cf = 0xdd,eie1 |= 0x01内部da初始化:ida0cn |= 0xf2ad7745初始化cap se
16、t-up 0x07:0xa0exc set-up 0x09:0x0bconfiguration 0x0a:0x01读ad7745的状态寄存器电容转换是否完成,即读rdy位是否为0rdy = 1rdy = 0读cap data register中24位数据把10位的数据写入ida0rdy = 1中断处理程序流程图:启动中断处理程序判断状态向量smb0cn & 0xf0发送从机地址主发送器模式0xc0主接收器模式0x80起始条件已发送0xe0停止传输再发送起始条件否ack是否为1清除中断标志位si=0是否否从机地址是否发送了寄存器地址是否发送是是停止传输释放总线发送数据写判断是读ad7745状态还
17、是写状态发送寄存器地址读发送起始条件更改lsb=1主接收器模式0x80保存rdy位读转换数据保存读出的数据读rdy位判断是读rdy位,还是读转换数据ack=0发终止条件释放总线清除中断标志位si=04.3、ad7745关键寄存器的配置1、 cap data regisister:这是一个24位的只读寄存器,它由三个8位的寄存器组成,这三个寄存器用来存储和不断的更新测得的电容信息寄存器地址指针位7位0cap data h0x010x00(高8位)cap data m0x020x00(中8位)cap data l0x030x00(低8位)2、cap set-up register(电容频道设置):
18、 地址指针 0x07位位7位6位5位4位3位2位1位0助记符capencin2capdiff-capchop默认值00000000本次实验值10100000说明:位7:capen = 1使电容渠道单一的转换,连续的转换,和(或)校准位6:cin2 = 1开关的内部信号到第二个电容式输入的ad7746位5:diff = 1设置差分模式为选定的电容输入位4 1:无效位,全部置0位0:capchop = 0表示特定的电容频道性能 capchop = 1加倍电容频道转化时间并且提高电容信道噪音性能为最长的转换时间3、exc set-up register(电容频道激励设置): 地址指针 0x09位位7
19、位6位5位4位3位2位1位0助记符clkctrrlexconexcbexcaexclvl1exclvl0默认值00000011本次实验值00000011说明:位7:clkctrrl = 0 选择ad7745clkctrrl = 1 选择ad7746位6:excon = 0 只有在电容频道转换时激励信号呈现在输出端 excon = 1 在电容和电压/温度转换时激励信号都呈现在输出端位5:excb = 1使excb针为激励输出位4:excb = 1使excb针为反激励输出位3:exca = 1使exca针为激励输出位2:exca = 1使exca针为反激励输出位1位0:激励电压水平(都置1是灵敏度
20、最高)4、configuration register(转换器更新速率和经营方式设置):地址指针 0x0a位位7位6位5位4位3位2位1位0助记符vtf1vtf0capf2capf1capf0md2md1md0默认值10100011本次实验值00000001说明:位7位6:和本次实验无关位5位3:这三个位是用来设置电容频道数字滤波器和转换时间/更新速率的,三个位全置1时转换时间最长、更新速率最长,但数字滤波器的带宽最小,使得噪声最低位2位0:这三个位用来设置转换器的运作模式的md2md1md0模式000空闲001连续010单一011挂起101校准5、cap dac a register(电容的
21、dac设置):地址指针0x0b位位7位6位5位4位3位2位1位0标识符dacaena daca默认值0 0x00本次实验值 1 0x80说明:位7:dacaena = 1连接电容的daca到正的电容输入端位6位1:daca的值,0x0、0 = 0 pf,0x7f = 满量程6、cap dac b register(电容的dac设置):地址指针 0x0c位位7位6位5位4位3位2位1位0标识符dacaenb daca默认值0 0x00本次实验值 1 0x80说明:位7:dacaenb = 1连接电容的dacb到负的电容输入端位6位1:dacb的值,0x00代表0 pf,0x7f代表满量程4.4、
22、f330相关寄存器的配置1、 时钟设置 tr0=0; /关闭定时器0 tmod=0x20; /设置定时器1的工作方式 ckcon=0x01; /定时器使用系统4分频 tl1=0xef; /给定时器1 th1=0xef; / 装初值 tr1=1; /允许定时器12、ida0设置ida0cn=0xf2; /ida0使能,写ida0h触发dac输出更 新,2.0ma满度输出电流。3、交叉开关设置 p0mdin=0xff; /p0.n引脚不被配置为模拟输入 p0mdout=0xcd; p0skip=0x0f; /交叉开关跳过p0.00.3 xbr0=0x04; /smbus连到端口引脚 smb0cf=
23、0xcd; / 配置sum配置寄存器,使能 xbr1=0xc0; / 交叉开关使能 4、 中断 eie1=0x81; /允许smbus中断 eip1=0x01; /设smbus中断优先级为高 ie=0x80; /开总中断 si = 0; / sm_busy中断标志位清0 4.5、程序data unsigned char a0,a1,a2;data float c;unsigned char data i,j,k,l;#include #include bit smb_busy;bit flag;bit send_start;bit add_shujv;bit w_r; /主接收模式,主发送模式
24、标志bit flag1; /等待标志位bit flag2; /*系统初始化*/ / 忙碌标志位 void system_initial (void) k=0; pca0md &= 0x40; /关闭看们狗/*设置定时器1,功能:用来提供总线的时钟源 将总线的频率设置为208khz* tr0=0; /关闭定时器0 tmod=0x20; /设置定时器1的工作方式/ ckcon=0x01; /定时器使用系统4分频 tl1=0xef; /给定时器1 th1=0xef; / 装初值 tr1=1; /允许定时器1/*ida0设置* ida0cn=0xf2; /ida0使能,写ida0h触发dac输出更新,
25、2.0ma满度输出电流。 /*交叉开关和sumbus设置* p0mdin=0xff; p0mdout=0xcd; p0skip=0x0f; /交叉开关跳过p0.00.3 xbr0=0x04; /smbus连到端口引脚 smb0cf=0xcd; / 配置sum配置寄存器,使能 xbr1=0xc0; / 交叉开关使能 /*中断使能* eie1=0x81; /允许定时器3和smbus中断 eip1=0x01; /设定定时器3中断为低优先级,smbus中断为高 ie=0x80; /开总中断 si = 0; / sm_busy中断标志位清0 /*初始化ad7745*void ad_chushi(void
26、) w_r=0; send_start=0; i=0; /全局变量置初值0, add_shujv=0; flag=0; sta=1; /产生起始条件 while(!flag); /等待配置ad7745寄存器/*读数据*void read(void) flag1=0; flag2=0; j=0; sta=1; / 产生起始条件 while(!flag1); /*数据转换* datachange (a0,a1,a2) ida0h=a0; ida0l=a1;/*主程序*void main() system_initial(); ad_chushi(); while(1) read(); datach
27、ange(a0,a1,a2); /*中断程序*void smbus_isr (void) interrupt 7 k=smb0cn; l=k&0xe0; if(!flag2)switch (l) case 0xe0: send_start=1; si = 0; sta = 0; sto=0; smb_busy=1; /发送了起始条件 if(!w_r) smb0dat = 0x90; if(i5) w_r=1; / 发送从机地址和写 else smb0dat=0x91;sto=0;w_r=0;flag2=1; break; case 0xc0: if (ack) / 地址或者数字字节已经发出 i
28、f (send_start) / 已经发送过起始条件和从机地址? if(!w_r) while(i5) /将从机寄存器地址装入 if(!add_shujv) switch(i) case 0: add_shujv=1;smb0dat=0x07;break; case 1: add_shujv=1;smb0dat=0x09;break; case 2: add_shujv=1;smb0dat=0x0a;break; case 3: add_shujv=1;smb0dat=0x0b;break; case 4: add_shujv=1;smb0dat=0x0c;break; else switch
29、(i) case 0: smb0dat=0xa0;add_shujv=0;i+;break; case 1: smb0dat=0x0b;add_shujv=0;i+;break; case 2: smb0dat=0x01;add_shujv=0;i+;break; case 3: smb0dat=0x80;add_shujv=0;i+;break; case 4: smb0dat=0x80;add_shujv=0;i+;break; si=0;break; if(i=5) sto=1;si=0;flag=1;i+; /产生结束条件 else smb0dat=0x01; si=0; w_r=1;
30、 send_start=0; else sta=1;sto=0;si=0; else sta=1;sto=0;si=0; break; case 0x80: if(j=0) a0=smb0dat;ack=1;si=0;j+; else if(j=1) a1=smb0dat;ack=1;si=0; j+; else if(j=2) a2=smb0dat;ack=0;si=0;sta=0;sto=1;flag1=1; break; else si=0;flag2=0; 五 实验测试结果5.1 单电容的测试(08p)单端模式:capdiff=0 capdaca(+) = 8p capdacb(-) = 0p1、测试结果电容2.02.23.04.75.06.27.08.29.010电压0.6930.6980.3700.7880.8101.101.321.531.762.052、 数据分析为了画出输出电压v关于电容差c的曲线将以上数据用matlab软件进行分析,结果如图51: 图51 图51中的曲线近似于图52
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版个人信用卡债务代偿协议书3篇
- 2024年版农田堰塘建设协议模板版B版
- 二零二五年度钢筋加工厂劳务分包合同范本6篇
- 武汉纺织大学外经贸学院《分子模拟的原理和应用》2023-2024学年第一学期期末试卷
- 二零二五版公墓环境维护与生态保护合作协议3篇
- 2024版影视制作与版权转让合同
- 2024英伦游学夏令营青少年领袖培养与团队建设服务合同3篇
- 二零二五年度城市更新项目旧房收购合同细则3篇
- 太原幼儿师范高等专科学校《公共艺术项目实践》2023-2024学年第一学期期末试卷
- 苏州工艺美术职业技术学院《物联网与云计算》2023-2024学年第一学期期末试卷
- 《项目施工组织设计开题报告(含提纲)3000字》
- ICU常见药物课件
- CNAS实验室评审不符合项整改报告
- 农民工考勤表(模板)
- 承台混凝土施工技术交底
- 卧床患者更换床单-轴线翻身
- 计量基础知识培训教材201309
- 中考英语 短文填词、选词填空练习
- 阿特拉斯基本拧紧技术ppt课件
- 初一至初三数学全部知识点
- 新课程理念下的班主任工作艺术
评论
0/150
提交评论