This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
器件型号:LAUNCHXL-F28377S
您好!
***此问题与 F28377S Delfino (使用 Launchpad)和 AMC1306E25有关。 如果这是错误的发布地点,请随意将其移至其所属的地方***
我尝试使用 AMC1306E25隔离式 Σ-Δ 调制器和 F28377S Delfino 中的集成 Σ-Δ 滤波器测量模拟电压。
为了测试测量、我有一个非常简单的电路:
因此、AMC 应测量0V、Delfino 应得到一个有符号整数(大约) 0。
当关闭5V 电源时、由于 AMC1306的故障保存功能、Delfino 的值应为0xFFFF (在16位模式下使用时)。
但是、即使在使用 来自 TI 器件支持的示例 sdfm_filters _sync_cpu.c 文件时、这也无法正常工作。 它读取滤波器数据并将其存储在大型(1024) uint16数组中。
从示例文件中、我只将滤波器2的模式更改为2、并禁用滤波器1、3和4上的时钟故障中断、因为没有任何连接。 因此、我很确定该软件应该可以正常工作。
我得到以下结果(不考虑前几个值、因为它们在设计上是错误的):
-关闭 AMC 上的5V 电源(->故障保存)时,我将获得100%的正确值
-当打开5V 电源时,结果如下所示:
结果编号 | 值 |
1 | 0 |
2. | 1 |
3. | 1 |
4. | 1 |
5. | 2. |
6. | 2. |
7. | 2. |
8. | 2. |
9. | 3. |
10. | 2. |
11. | 964 |
12. | 12380 |
13. | 29832 |
14. | 32768 |
15. | 32568 |
16. | 25486. |
17. | 4156 |
18 | 2. |
19. | 1 |
由于这些巨大的跳跃、数据完全无法使用、我不知道原因。
我非常确定 AMC 和 Delfino 之间的连接正确、因为在 failsave 时的结果是正确的。
但是、即使输入应该只有0V 的差值、实际测量结果怎么会如此错误? 您能给我指一下我能找到帮助的地方吗?
Manoj、
感谢你的答复。 在这里、您可以看到 D2引脚的图像:
在进一步调查中、我注意到以下情况:使用外部振荡器和内部 PWM 作为速度不同的时钟源:
CLK src |
CLK 速度(MHz) |
电源 src |
结果 |
注释 |
PWM |
12.9. |
3、3V 电路板 |
工作 |
示例代码 |
PWM |
20. |
3、3V 电路板 |
工作 |
示例代码 |
振荡器 |
13. |
5V 外部 |
工作 |
示例代码 |
振荡器 |
15. |
3、3V 电路板 |
工作 |
示例代码 |
振荡器 |
15. |
3、3V 电路板 |
工作 |
自定义代码 |
OSC OLD |
20. |
3、3V 电路板 |
不管用 |
故障保存工作正常 CLK 不是与 PWM 同步运行 (抖动可见) |
振荡器 |
10. |
5V 电路板 |
工作 |
CLK 不是与 PWM 同步运行 (抖动可见) |
PWM |
10. |
3、3V 电路板 |
工作 |
示例代码 新 AMC |
PWM |
20. |
3、3V 电路板 |
工作 |
示例代码 新 AMC |
在高频时、它是否可能无法可靠地工作?
有时、由于我有时会获得正电压的负值、因此信号似乎也被 Delfino SDFM 反相。 这是否相关? 我没有考虑这一点、因为它很容易修复(乘以-1)。
此致、
Sandesh
Manoj、
感谢您的回答。
[引用用户="Manoj Santha Mohan"]Sandesh、
您的第二个观察结果不应发生。 施加的电压范围是多少。 我相信 对于 AMC1306E25、它介于+/- 250mV 之间。 是这样吗?
如果您的差分电压>= 320mv、则可以获得正电压的负值。 请查看勘误表中的通报
[/报价]
我有以下结果:
在施加0V 时、I 得到大约为0的正负值(我认为由于噪声、这是正确的)
施加+-5V (削波电压)时、我获得反相读数(+5V ->负、-5V 正)
在不施加任何电压(故障保存)的情况下、我获得负读数。 这可能是由于
Manoj Santha Mohan 说:SDFM:数据滤波器输出在 Sinc3和 OSR = 256时不会饱和
但 当我使用 OSR = 64时也会发生。
现在、当施加+96.8mV (在指定的+-250mV 范围内、通过电位计进行调节)时、我得到大约-79 333的读数、该读数转换为-96.84mV。
该值是正确的、但为负。 这在10MHz 下已经得到确认、但请记住、对于我的大多数测试、这是相同的(这就是我认为这不是问题的原因)。
这怎么会发生?
此致、
Sandesh
[引用用户="Manoj Santha Mohan"]
我不认为 AMC1306x 在20MHz 时不可靠、因为其规范工作频率为21MHz。
[/报价]
今天、我对时钟缓冲器 CDCLVC1103PWR 进行了一些进一步的测试。
我对以下结果进行了一些测试:
时钟 | 值 | 负? |
外部振荡器 @ 20MHz | 压降 | 正电压的负值(0V 除外) |
PWM @ 12MHz | 好的 | 正电压的负值(0V 除外) |
PWM @ 16MHz | 好的 | 正电压的负值(0V 除外) |
我很快会尝试添加20MHz PWM 测试。
此致、
Sandesh
Manoj、
感谢您的耐心等待。
[引用用户="Manoj Santha Mohan"]
当(AINP - AINN)=-96.8mv 时、无论 OSR/滤波器类型配置如何、您都应获得负数字值。
当(AINP - AINN)=+96.8mv 时、无论 OSR/滤波器类型配置如何、您都应该获得正数字值。
[/报价]
我不知道原因、但我很确定我的电路中不是这种情况。
在一个 AMC 上、我已将 AINP、AINN 和 GND 连接到 GND。 结果是一个类似于0V 的低正数。
在另一个 AMC 上、我使用一个电位计和一个分压器进行测试、因此我可以在指定范围内调整 AINP 引脚的电压。
AINN 连接到 GND。 据我所知、在该电路中无法生成负电压。
我还 通过使用万用表测量电压来确认极性。
您是否使用16位(或) 32位模式? 我建议您使用32位模式进行调试。 我担心您是否错误地将位右移。
此外、您现在是否可以尝试 mode0而不是 mode2?
-Manoj
Manoj、您好!
编辑: 我在此帖子中混淆了一些值。 下一个帖子中显示了正确的结果。 但是、示波器数据是正确的、可以将其视为参考。
我刚刚完成了实验。 以下是使用20MHz 振荡器(Epson SG-310系列)的结果:
[引用用户="Manoj Santha Mohan"]。
实验1.
1) 1)设置 DOSR = 255 (非 DOSR = 256)
2) 2)施加大于+320mv 的差分电压、以及观察到的输出是什么。 如果可能、向我发送 SD_CX/SD-Dx 的快照。
[/报价]
这是 SD1_D2输出。 我使用示例代码 OSR=255和16位以及移位9位获得的结果是的值
32386,是常数
(我在 Vinp 和 Vinn 上施加+3.3V 电压)
[引用 user="Manoj Santha Mohan")是否可以尝试以下实验? 两个实验都应使用振荡器为 SD 调制器计时。
实验1.
1) 1)设置 DOSR = 255 (非 DOSR = 256)
2) 2)施加大于+320mv 的差分电压、以及观察到的输出是什么。 如果可能、向我发送 SD_CX/SD-Dx 的快照。
[/报价]
这是 SD1_D1输出:
我得到的结果是 - 32386。
这会导致值始终为负值。
这种情况如何?
作为参考、我还包括一个原始时钟的图像、该图像被馈送到 AMC 中。
另一个问题:您认为使用非制造商编码版本(AMC1306Mxx)是否更安全?
噪声等方面是否更可靠?
我有以下结果:
输入电压>(大于) 320mV:
负值约为-31880
每30次测量时、数值会下降到更低的值。
输入电压<(小于)-320mV:
正值 约为31879
这些值也 会每30次测量下降一次(有时甚至变为负值)。
为什么极性反转? 我很确定我的一切都连接正确。
这种下降怎么会发生? 这实际上会使这些值无法使用。 极性可在软件中轻松切换。
您是否建议使用非曼彻斯特编码版本来避免这种问题?
非常感谢您的帮助!
Sandeep、
当(AINP - AINN)>+320mv 时
当 Sinc3、DOSR = 255时、您应该在(32位模式)中获得16581375
当(AINP - AINN)<-320mv 时
当 Sinc3、DOSR = 255时、您应该在(32位模式)中获得-16581375
它看起来不像您具有正确的输出。 我不明白为什么您对 AINP 和 AINN 都应用3.3V 电压。 正确的方法是在(AINP - AINN)>+320mv 时向 AINP 施加3.3V 电压并将 GND 施加到 AINN。
此外、您附加的快照也不是很有用、因为我需要在一个快照中同时使用 SD-CX 和 SD-Dx 波形。
这就是我期望看到的
当(AINP - AINN)>+320mv 时、SD-Dx 应该是 SD-CX 的倒数
当(AINP - AINN)<-320mv 时、SD-Dx 应与 SD-CX 相同
此致、
曼诺伊
[引用用户="Manoj Santha Mohan"]
Sandeep、
当(AINP - AINN)>+320mv 时
当 Sinc3、DOSR = 255时、您应该在(32位模式)中获得16581375
当(AINP - AINN)<-320mv 时
当 Sinc3、DOSR = 255时、您应该在(32位模式)中获得-16581375
它看起来不像您具有正确的输出。 我不明白为什么您对 AINP 和 AINN 都应用3.3V 电压。 正确的方法是在(AINP - AINN)>+320mv 时向 AINP 施加3.3V 电压并将 GND 施加到 AINN。
[/报价]
我使用了16位模式、我可以尝试在星期一的32位模式下验证它。
我不对 AINP 和 AINN 施加3.3V 电压。 我的解释有点令人困惑。 这应表明:
对于(AINP - AINN)> 320mV 的测量、我将 Vdd (即5V)连接到 AINP、GND 连接到 AINN。 这会导致 AINP-AINN = 5V > 320mV
对于其他测量(AINP - AINN)<-320mV I 已将 Vdd (5V)连接到 AINN、GND 连接到 AINP。 这会导致 AINP-AINN = 0V - 5V =-5V <-320mV
[引用用户="Manoj Santha Mohan"]
此外、您附加的快照也不是很有用、因为我需要在一个快照中同时使用 SD-CX 和 SD-Dx 波形。
这就是我期望看到的
当(AINP - AINN)>+320mv 时、SD-Dx 应该是 SD-CX 的倒数
当(AINP - AINN)<-320mv 时、SD-Dx 应与 SD-CX 相同
[/报价]
好的。 今天、我一次只能测量信号、我将在星期一尝试做得更好。
[引用用户="Manoj Santha Mohan"]
我担心您将 VDD (5V)连接到 AINP/AINN。 它非常接近可以应用于 AINP/AINN 的最大限制。
您可以将 AINP/AINN 上的最大电压限制为1V 吗?
[/报价]
但是、根据数据表、它应该仍然是可能的。
但是、今天我在 AINP 和 AINN 之间以1V 的电压进行了一些测量。
以下是结果(CLK 为红色、数据为黄色)
AINP > AINN:
对于 AINN > AINP:
是这样吗?
Sandesh、
您的示波器快照看起来不错。 但是、SDFM 滤波器输出不正确。
对于 DOSR = 255 (对于 DOSR = 255、应写入 DOSR = 254)、您应该会看到这一点。 请检查 SDDFPARMx 寄存器字段说明)。 此外、请配置为32位模式。 我更喜欢在32位模式下读取 SDDATAx、而不是您连接的阵列。
当(AINP - AINN)>+320mv 时
当 Sinc3、DOSR = 255时、您应该在(32位模式)中获得16581375
当(AINP - AINN)<-320mv 时
当 Sinc3、DOSR = 255时、您应该在(32位模式)中获得-16581375
此致、
曼诺伊
Manoj、
我刚才尝试验证了这一点。
[引用用户="Manoj Santha Mohan"]
对于 DOSR = 255 (对于 DOSR = 255、应写入 DOSR = 254)、您应该会看到这一点。 请检查 SDDFPARMx 寄存器字段说明)。 此外、请配置为32位模式。 我更喜欢在32位模式下读取 SDDATAx、而不是您连接的阵列。
当(AINP - AINN)>+320mv 时
当 Sinc3、DOSR = 255时、您应该在(32位模式)中获得16581375
当(AINP - AINN)<-320mv 时
当 Sinc3、DOSR = 255时、您应该在(32位模式)中获得-16581375
[/报价]
当(AINP - AINN)>+320mv 时
当 Sinc3、DOSR = 255时、我得到-16322291 (32位)
当(AINP - AINN)<-320mv 时
当 Sinc3、DOSR = 255时、我在(32位模式)中得到16322291
很抱歉、我在 Sandesh 的回复中提到了这个主题、我们可以解决所有 Σ-Δ 调制器的问题、找出测量数据的错误迹象。 为了确保我们的设计中不存在硬件问题、我们购买了 AMC1306EVM 评估模块。
首先、我们测试了评估板随附的 AMC1306M25的完整输入电压范围、并获得了具有正确符号的合理值。 然后、我们将 AMC1306M25替换为曼彻斯特编码的 AMC1306E25版本、并执行了相同的测试、结果出现翻转的符号。
AMC1306M25的配置:SDFM1、Filter1、MODE_0、Sinc3、OSR256、 DATA_16位、Shift_9位
AMC1306E25的配置:SDFM1、Filter1、MODE_2、Sinc3、OSR256、 DATA_16位、Shift_9位
配置中是否遗漏了任何内容、或者您能否确认曼彻斯特编码调制器/滤波器模式会导致负号?
谢谢
Jens
Jens、
谢谢。 此主题帖的帖子大于25帖子。 请确保验证有助于我们达到此目的的帖子。
此致、
曼诺伊