PmodIA用户指南
这个用户指南(显然)还没有完成,但我发现我正在编写的参考手册太长了,解释了如何测量一个谨慎的组件/电路的阻抗,并提供了相关的数据流,这是需要的。
因此,我将文本重新定位到这个用户指南中,以便那些对如果他们不想/不能使用相关的MPIDE库可能需要做什么感兴趣的人。
确定阻抗
这里我概述了一个计算未知阻抗值的过程。
计算增益因子
在进行任何有用的计算之前,用户必须首先计算与PmodIA相关的增益因子。为此,用户需要首先将AD5933设置为待机模式,PGA增益为1,选择输出激励电压和校准频率,并选择一个已知的校准阻抗值,如200 kΩ放置在两个SMA连接器之间。PmodIA内部使用的默认主时钟速率(MCLK)是16.776 MHz。
表示所需校准频率的24位值可由下式确定:
PmodIA频率计算
为了实现这一点,需要写入的寄存器和它们的相关位的集合如下所示:
开始条件? | 从属地址和命令 | ||||||||
---|---|---|---|---|---|---|---|---|---|
是的 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | (ACK) |
开始条件? | 控制寄存器的地址 | ||||||||
没有 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | (ACK) |
开始条件? | 控制寄存器位 | ||||||||
没有 | 待机模式 | 没有操作 | 输出励磁电压² | PGA获得 | 响应 | ||||
1 | 0 | 1 | 1 | X¹ | 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 | X¹ | 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) |
数据寄存器按两补格式排列。确定数据的十进制值的参考计算如下:
获得数据后,增益因子可计算为:
级计算
增益系数计算
阻抗计算
计算步进频率
计算阶段
计算未来添加的阶段......,因为我决定继续编写其他参考手册。在此之前,请参阅《通过阻抗测量相位》章节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。