花的海洋 发表于 2019-8-5 14:36:05

STM32F103 SPI1 更换到SPI2 操作MCP3208 AD采集误差大,求解?

STM32F103RCT6SPI1接MCP3208采集8路AD 4-20MA输入千1或千2精度,由于项目需要加DAC输出,SPI1与DAC复用,所以采用SOPI2操作MCP3208,解决了时钟问题能读到MCP3208,但实际输入20MA时,读到只有19.11MA左右,同一块PCB板,烧录对应SPI1的程序,通过飞线连接到SPI1要是正常的,请问那么大神遇到过这样的问题?

花的海洋 发表于 2019-8-13 13:51:52

项目 赶的急,原有的AD采集芯片这块没有变动, 直接把SPI2更换到SPI1,目前采集正常,1/千 精度

slong127 发表于 2019-8-6 09:13:32

如果确定SPI2的配置都正确并且和其他端口没冲突的话,可以查一查ADC的电路

00-405686 发表于 2019-8-6 10:35:28

SPI通信只是读MCP3208的结果值,不会存在影响AD采样的问题,你对比看下两种情况下AD的标准电压和AD采样电压是否一样

toofree 发表于 2019-8-6 11:50:22

AD芯片MCP3208放在什么位置?布局布线是什么样的?
可能数据信号与模拟信号之前有干扰。

maxtch 发表于 2019-8-6 11:53:49

照道理说模拟域到 MCP3208 就结束了。这个问题要仔细检查模拟域的设计,排除可能的干扰。

花的海洋 发表于 2019-8-6 17:06:10

maxtch 发表于 2019-8-6 11:53
照道理说模拟域到 MCP3208 就结束了。这个问题要仔细检查模拟域的设计,排除可能的干扰。 ...

嗯!我在尝试着,更换到SPI1,过两天有结果。

花的海洋 发表于 2019-8-6 17:10:52

00-405686 发表于 2019-8-6 10:35
SPI通信只是读MCP3208的结果值,不会存在影响AD采样的问题,你对比看下两种情况下AD的标准电压和AD采样电压 ...

嗯!理论上是这样,我飞线测试时,是把MCP3208的引脚翘起来的,如果有问题,就出来MCP到MCU之前的走线上。

发表于 2019-8-7 09:22:04

飞线的时候可能有干扰了。看一下引脚采集到的电压是多少。

五哥1 发表于 2019-8-7 11:06:34

手工飞线造成的吧,这个确定接地是良好的吗?

butterflyspring 发表于 2019-8-7 16:08:25

如果可以的话,降低速度试试,看看是不是布线引起的:)
页: [1] 2
查看完整版本: STM32F103 SPI1 更换到SPI2 操作MCP3208 AD采集误差大,求解?