返回PmodIA资源中心

PmodIA用户指南

这个用户指南(显然)还没有完成,但我发现我正在编写的参考手册太长了,解释了如何测量一个谨慎的组件/电路的阻抗,并提供了相关的数据流,这是需要的。

因此,我将文本重新定位到这个用户指南中,以便那些对如果他们不想/不能使用相关的MPIDE库可能需要做什么感兴趣的人。

确定阻抗

这里我概述了一个计算未知阻抗值的过程。

计算增益因子

在进行任何有用的计算之前,用户必须首先计算与PmodIA相关的增益因子。为此,用户需要首先将AD5933设置为待机模式,PGA增益为1,选择输出激励电压和校准频率,并选择一个已知的校准阻抗值,如200 kΩ放置在两个SMA连接器之间。PmodIA内部使用的默认主时钟速率(MCLK)是16.776 MHz。

表示所需校准频率的24位值可由下式确定:

PmodIA频率计算

PmodIA频率计算

为了实现这一点,需要写入的寄存器和它们的相关位的集合如下所示:

开始条件? 从属地址和命令
是的 0 0 0 1 1 0 1 0 (ACK)
开始条件? 控制寄存器的地址
没有 1 0 0 0 0 0 0 0 (ACK)
开始条件? 控制寄存器位
没有 待机模式 没有操作 输出励磁电压² PGA获得 响应
1 0 1 1 D10 D9 1 (ACK)
开始条件? 从属地址和命令
重新启动 0 0 0 1 1 0 1 0 (ACK)
开始条件? 起始频率寄存器地址
没有 1 0 0 0 0 0 1 0 (ACK)
开始条件? 起始频率前8位,24位
没有 c15 D22摊位 D21 D20开头 D19 D18 D17 D16 (ACK)
开始条件? 启动频率秒8 24位
没有 D15 D14 D13 D12 这里 D10 D9 D8 (ACK)
开始条件? 起始频率24位的最后8位
没有 D7 D6 D5 D4 D3 D2 D1 D0 (ACK)

¹- Don't Care bit
²- 0和0导致2V的峰对峰范围,0和1导致200 mV的峰对峰范围,1和0导致400 mV的峰对峰范围,1和1导致1V的峰对峰范围

一旦将所需频率编程到PmodIA中,用户可以将模块编程为Initialize with Start frequency,使频率发生器达到稳定状态;等待频率发生器达到稳态的时间完全由用户决定,参照AD5933参考手册。一旦这个时间段过去了,用户可以发出启动频率扫描命令。内部ADC将在经过一定数量的固定时间周期后对测量的阻抗进行采样,并将处理后的结果存储在实数据寄存器和虚数据寄存器中。

为了成功地获得阻抗信息,需要写入或读取的寄存器集,包括编程的固定时间周期数如下:

开始条件? 从地址和写命令
是的 0 0 0 1 1 0 1 0 (ACK)
开始条件? 指针命令
没有 1 0 1 1 0 0 1 0 (ACK)
开始条件? 设置时间周期寄存器地址
没有 1 0 0 0 1 0 1 0 (ACK)
开始条件? 块写命令
没有 1 0 1 0 0 0 0 0 (ACK)
开始条件? 所需的字节数是2
没有 0 0 0 0 0 0 1 0 (ACK)
开始条件? 写块2的第1字节
没有 不关心 2比特解码 沉降循环的MSB 回应
X X X X X D10 D9 D8 (ACK)
开始条件? 写入块的2的2字节
没有 结算时间周期数 响应
D7 D6 D5 D4 D3 D2 D1 D0 (ACK)
开始条件? 从地址和写命令
是的 0 0 0 1 1 0 1 0 (ACK)
开始条件? 控制寄存器的地址
没有 1 0 0 0 0 0 0 0 (ACK)
开始条件? 控制寄存器位
没有 启动频率扫描 没有操作 输出励磁电压² PGA获得 响应
1 0 1 1 D10 D9 1 (ACK)

¹- Don't Care bit
²- 0和0导致2V的峰对峰范围,0和1导致200 mV的峰对峰范围,1和0导致400 mV的峰对峰范围,1和1导致1V的峰对峰范围

当然,对接收到的数据执行DFT需要一些时间。用户可以连续轮询状态寄存器,以确定DFT何时完成,或者在确认DFT完成之前,可以根据设置时间周期的数量等待计算出的时间。计算沉降时间的公式如下:

沉淀时间计算

沉淀时间计算

开始条件? Slave地址和读取命令
是的 0 0 0 1 1 0 1 1 (ACK)
开始条件? 状态地址0 x8f
没有 1 0 0 0 1 1 1 1 (ACK)
开始条件? 阅读部分
没有 D7 D6 D5 D4 D3 D2 D1 D0 (ACK)

如果D2位处于逻辑电平高电压状态,这表明DFT已经完成,Real和Imaginary数据寄存器中的数据是有效的,允许用户对两个16位寄存器执行块读取。

开始条件? 从地址和写命令
是的 0 0 0 1 1 0 1 0 (ACK)
开始条件? 指针命令
没有 1 0 1 1 0 0 1 0 (ACK)
开始条件? 真实数据地址0x94
没有 1 0 0 1 0 1 0 0 (ACK)
开始条件? 块读取命令
没有 1 0 1 0 0 0 0 1 (ACK)
开始条件? 所需的字节数是4
没有 0 0 0 0 0 1 0 0 (ACK)
开始条件? Slave地址和读取命令
是的 0 0 0 1 1 0 1 1 (ACK)
开始条件? 真实数据的第1字节
没有 D15 D14 D13 D12 这里 D10 D9 D8 (ACK)
开始条件? 真实数据的第2字节
没有 D7 D6 D5 D4 D3 D2 D1 D0 (ACK)
开始条件? 虚数据的第1字节
没有 D15 D14 D13 D12 这里 D10 D9 D8 (ACK)
开始条件? 虚数据的第2字节
没有 D7 D6 D5 D4 D3 D2 D1 D0 (ACK)

数据寄存器按两补格式排列。确定数据的十进制值的参考计算如下:

两个补充方程

获得数据后,增益因子可计算为:

级计算

级计算

增益系数计算

增益系数计算

一旦确定了增益因子,任何其他未知阻抗都可以通过下面的方程计算:

阻抗计算

阻抗计算

只要以下参数不变,计算得到的增益系数仍然有效:

  • 电流-电压增益设置电阻(不太可能改变,除非电阻从Pmod中物理移除)
  • 励磁电压输出
  • PGA获得

计算步进频率

还可以设置频率扫描。下面提供了这样做的公式:

阻抗计算

计算阶段

计算未来添加的阶段......,因为我决定继续编写其他参考手册。在此之前,请参阅《通过阻抗测量相位》章节AD5933参考手册从第19页开始。

常用的寄存器和命令

的常用寄存器和命令以及它们的一些常用值的列表AD5933数据表从第23页开始的内容如下:

函数 寄存器地址/值 相应的位流
用启动频率初始化 0 x80 0001 X1YY2Z3.
启动频率 0 x80 0010 X1YY2Z3.
增加频率 0 x80 0011 X1YY2Z3.
重复频率 0 x80 0100 X1YY2Z3.
待机模式 0 x80 1011 X1YY2Z3.
设置启动频率 0 x82 24位表示开始频率代码
设置增量频率 0 x85 24位表示频率增加
设置增量的数量 0 x88 D15-D9表示不关心,D8-D0是9位的单词,表示增量的数量
设置解决时间周期的数量 0 x8a D15-D11是不在乎,D10-D94, D8-D0是9位字,代表的数字沉淀时间周期
检查Pmod的状态 0 x8f 当D1位被设置时,它们各自寄存器中的实/虚数据是有效的;当D2位被设置时,频率扫描已经完成
真实的数据 0 x94 16位表示测量的真实数据
虚构的数据 0 x96 16位表示测量的虚数据
地址指针的命令 1011 0000 用于在执行块读/写之前指向一个地址
块读 1010 0001 指示将执行一个块写的命令;要读取的字节数必须在下一个字节中发送
块写 1010 0000 指示将执行一个块写的命令;要写入的字节数必须在下一个字节中发送

请注意1- X是一个不在乎的比特
请注意2-两个Y位对应的输出电压范围,' 0 ',' 0 '导致2 v峰间范围,“0”和“1”导致200 mV峰间,“1”和“0”导致400 mV峰间距离,' 1 ',' 1 '导致1 v峰间距离
请注意3.- Z是PGA增益位,其中'0'对应增益为5,'1'对应增益为1
请注意4- '0'和'0'保持结算时间周期数不变,'0'和'1'是设置的结算时间周期数的两倍,'1'和'0'保留,'1'和'1'是结算时间周期数的四倍

外部振荡器所需零件的尺寸

用户可以从推荐的包上加载自己的晶体振荡器PmodIA示意图.为此,用户可能需要更换电容器C7和C11和电阻R8。两个电容的封装尺寸是0603,电阻的封装尺寸是0402。