这是一个卑微电子信息学员的开始
哦 现在是通信
4月5日工作记录
这是学习stm32的第n天
卑微通信学员开始了stm32的学习过程。
从‘0’开始完成一个阻抗分析仪
怎么说呢,这种东西会者不难
不会嘛,就像我绝望了好久,别说了
如何理解阻抗分析仪的原理
这里以AD9533为例,原理图如下
是不是感觉一头雾水,巧了我也是。
我们将它拆解成几个部分进行说明。
发射极
就是发出一个余弦波嘛,简单,一个DAC就搞定了。他后面用运算放大器做了一个跟随。可惜,对我来说没有用处。
接收极
这看起来就复杂很多,但实际上我们可以直接忽略第一个运算放大器,直接看第二个。再忽略那个LPF,这不是就是一个并联电压负反馈嘛,开始变得友好起来了。
然后稍稍思索就可以得到上面电压和电阻的关系。
总体来看
再把它们俩拼起来
这不是有手就行,DAC输出叠加在VCC/2上的余弦波,过待测电阻输入运算放大器。这样所有直流点的电压都是VCC/2。进行交流分析就可以用到上面的结论:
然后重点就来了,因为输出的是余弦交流电压ACOS(wx),用复数对它进行表示:
U
i
n
=
A
c
o
s
(
p
a
i
/
2
)
+
A
s
i
n
(
p
a
i
/
2
)
i
Uin=Acos(pai/2)+Asin(pai/2)i
Uin=Acos(pai/2)+Asin(pai/2)i
然后问题就来了,ADC检测到的值是离散的,可以通过单点DFT的方式计算出它的实部虚部和幅值:
那么幅值就等于
s
q
r
t
(
r
e
a
l
2
+
i
m
a
g
i
n
e
2
)
/
p
o
i
n
t
n
u
m
b
e
r
∗
2
sqrt(real ^2+ imagine ^2)/pointnumber*2
sqrt(real2+imagine2)/pointnumber∗2
相位等于
那么问题又来了,x(n)就是ADC测到的电压减去VCC/2(去除直流分量),但是做DFT时有一个重要的前提就是知道DAC此时正在输出哪一个值。打个比方,DAC输出1024点阵的正弦波形,ADC采集1024个点作为x(n),我需要知道当ADC采集到第一个数据的时候DAC输出的是哪一个数据。只有这样才可以正确计算出它和DAC波形之间的相位差。
重点!!!
这里运用到了一个很细节的地方,CUBEMAX中DAM的寄存器可以记下当前DMA的存储数组中还剩下几个数据没有被传输。也可以在DMA结束是发出中断。这就很完美,当ADC的DMA传输完成时进入中断读取DAC的DMA数组中还剩下几个数据。经过简单的计算你就可得到上面说的对应关系。然后就可以开始做了。
这不是简单易懂,只要到这里理论就大致完成了,感觉写了很多了,再另起一篇博客继续。
https://blog.csdn.net/mohaoyuan/article/details/115443695
本文仅供学习使用,禁止一切转载或调用,最终解释权由作者本人享有。