贵阳企业自助建站系统,怎样做影视网站,洛阳网站开发培训,Wordpress5主题破解版最近我们在开发一个项目时#xff0c;用到了MCU自带的ADC#xff0c;在调试过程中发现通道之间村在相互干扰的问题。以前其实也用过好几次#xff0c;但要求都不高所以没有太关注#xff0c;此次因为物理量的量程较大#xff0c;所以看到了变化。
首先来说明一下此次的软…最近我们在开发一个项目时用到了MCU自带的ADC在调试过程中发现通道之间村在相互干扰的问题。以前其实也用过好几次但要求都不高所以没有太关注此次因为物理量的量程较大所以看到了变化。
首先来说明一下此次的软硬件环境MCU采用的是STM32F103VET6ADC采用自带的ADC1使用通道6和7。在软件方面我们使用版本为1.4的HAL库使用DMA方式采集。
接下来我们描述一下现象。在下边有两幅截图左边是只给第二路输入为100%时输入显示99.962%。而右边的图是在第一路输入也添加100%输入时显示的结果第一路输入为99.9643%而第二路输入变成了100.0418%。 这个影响在只需要显示数值时没有特别的要求可以忽略但在控制中有时可能会引起不必要的波动。正好我们此次要求较高但因周期很急硬件采用了原来项目中类式的电路就出现了这一问题。修改硬件肯定是来不及的只能是想其他办法尽量修正。
1、问题的分析
我们首先收集数据分析在一路输入为0的情况下另一路输入0-100%的输入观察第一路的信号变化。分别在55.5个时钟周期和239.5个时钟周期的采样频率下获得一个通道对另一个通道的影响数据如下图所示 由以上两幅图我们可以发现采样周期越长通道间的相互干扰就越小反之则越大。一个同到的输入信号越强烈则在另一个通道上在成的干扰信号越强烈反之则越小。如上图所示我们对数据作曲线拟合我们发现最多3次多项式姐可以很好的近似表示他们的关系。
2、相应的措施
有了上述对通道间相互干扰的数据关系的认识一般来说本通道的输入与输出间应该是一个线性关系但实际上总会有写偏差我们测得数据的实际情况同样作曲线拟合。我们发现数据剧本是符合线性关系的但为了更精确我们也可采用高次多项式一般三次多项式完全就可满足如下图所示 经过上面的分析我们以2个通道为例来获得最终结果。两个同道的输入设为[X1,X2]两个通道我们想得到的输出为[Y1,Y2]而两输入对Y1的影响为[A1,B1],两个输入对Y2的影响为[A2,B2]。则其函数关系可表示为Y1A1*X1B1*X2和Y2A2*X2B2*X1其中各变量及系数均为向量根据所想要采取的解析函数确定。
在本次项目中我们采用三次多项式函数来拟合所以根据三次多项式来确定上述量及解析目标量。
3、最终的结果
解析完成后我们再做测试量通道件的相互干扰可以减少到1%以下想要完全消除有困难毕竟只是软件处理。
最终的解决办法是在硬件电路上消除这干扰如在要求较高时尽量不要采用MCU自带的ADC和DAC来做模拟量的输入输出。
欢迎关注