PSoC 的混合信号 PCB 布局

电器工程 ADC 模拟 pcb设计 布局 psoc
2022-01-28 07:02:41

我正在为模拟传感应用开发 PCB。它使用 PSoC3 上的内部 ADC。像往常一样,该应用程序非常受空间限制(11mm x 21mm),因此我不得不在 PCB 布局上做出一些妥协,而我不会在更大的 PCB 上这样做。

PSoC PCB

该板由稳压 6v 供电,并包含两个 5v 线性稳压器。一个MCP1702用于数字电源,一个MIC5205用于模拟电源。该板正在感应五个A1324霍尔效应传感器。每个霍尔效应输出信号都经过 100nF + 1k RC 滤波器的滤波。一个传感器位于 PCB 本身(右下)。其他 4 个插入右侧的 6 针连接器。

该芯片充当 SPI 从机,但 ADC 样本始终SPI 事务之间进行,因此 SPI 不应干扰模拟信号。

可悲的是,我仍然在模拟信号上看到一些噪音(12 位时大约 1.5 LSB),我想知道在布局中是否有什么不同的方法可以改善它。

PSoC 布局

请在新选项卡中打开图像以更高分辨率查看。


添加:

我使用MCP3208完成的其他 PCB 设计,相同的双 5v 电源、相同的传感器和相同的 RC 滤波器在 12 位时没有实现明显的噪声。

PSoC3 上的 ADC 是 delta sigma 类型。此版本的 PSoC 仅限于 12 位,但另一个部件号有一个 16 位 ADC(尽管采样率较低)。

我确实关心噪音,并且真的很想将它推向 12 ENOB。原因不是精度,而是速度测量。目前,这种噪音水平使机器人无法进行准确的位置和速度控制。


添加:

示意图。抱歉,它有点局促,但您可以读取这些值。

PSoC 原理图

2个回答

ADC 上总会有一些噪音,尤其是微控制器芯片上的 SA(逐次逼近)类型。Sigma-delta 对高斯噪声表现更好,因为它们集成了它。不要期望 12 位 ADC 有 12 个 ENOB。

控制器的噪声是大多数微控制器不提供高于 10 位分辨率的原因,AVR 提供了在 ADC 采集期间停止微控制器的可能性,这应该确认至少有一些噪声来自控制器.

但问题是:你在乎吗?12 位 ADC 上的 1.5 位噪声仍然会留下超过 10 位,或优于 0.1 %。您的霍尔传感器有多准确?电路中的其他元件?

编辑
您似乎使用了 PSoC 的内部振荡器,因为我在原理图上看不到任何晶体。看起来没问题:你有适当的解耦。除了内部时钟之外,电路中唯一的高速部分似乎是 SPI,但你说这在测量期间会保持沉默。电路板的其余部分是直流的,或者可能像霍尔效应传感器一样频率相对较低。而且它是 Damn Small™,它也有帮助:更短的走线会拾取更少的噪音。当然,我可以挑剔 MCP1702,我会将它逆时针旋转 90°,以便输出电容器可以放置在更靠近引脚的位置,但这并不能解决问题。

我只看到布局中的一项更改可能会提高您的信噪比:

在此处输入图像描述

在数据表中,建议将模拟和数字地平面分开用于“最佳模拟性能”(第 10 页)。

其余的:就像我说的那样,它是一块小板,这意味着走线短,去耦在几毫米之内。所以我想再看看噪音的来源。主要嫌疑人是 PSoC 的时钟。PSoC 可以运行非常低的电源电压,这会降低其噪声。当然,如果 VDDA 也必须降低也会有很大帮助,但我没有在数据表中读到 VDDA 不应高于 VDDD 的任何地方。

接下来,ADC。在数据表的第 55 页上,它说 66 dB SINAD,即 11 位,接近您现在得到的。A1324 数据表在 2.5 V 的静态电压下为我们提供了 7 mVpp 的噪声。这也低于 12 位可以提供的 72 dB S/N 比。您可以通过额外的过滤来改善这一点。

您提到了 MCP3208 的更好性能,但那是一个远离微控制器的 ADC,这可以解释 SA ADC 如何比具有相同分辨率的 sigma-delta 做得更好。

所以,我看到的选项是:降低数字电源电压并分离模拟和数字地。

我同意以上所述。1.5LSB 的噪音是相当合理的。 http://www.cypress.com/?docID=39346显示 12 位模式下的最小 SINAD 为 66 dB,建议 ENOB = 10.7。

我知道这不是您问题的直接答案,但我将把问题解释为“如何解决速度控制问题?” 而不是“我如何获得超过 10.5 ENOB?”。

你是如何区分的?你有足够的备用时钟滴答声来做一些比两点中心差更光滑的事情吗?也许可以在 Matlab 中优化 5 个样本?

此外,这听起来可能有点好笑,但是随着采样速度的加快,速度噪声会变得更糟

$$\frac{1LSB}{\Delta t}$$ 随着 delta t 变小而变大)。尝试尽可能快地采样,而不是尽可能快地采样。

不要侮辱,但也要快速浏览一下以确保您的速度控制中没有发生任何愚蠢的事情,例如有符号和无符号整数之间的转换问题,并确保您的整数足够宽以避免在区分时出现溢出错误. 我自己的控制方程经常变得足够复杂,以至于我有时会明确地转换每个操作。

最后,尽管可能是最有可能的,您是否会因为没有放大到接近满量程而失去有效位?如果是这样,您可以放大或提供更小的 Vref。