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.
各位下午好!
我使用的是 TMS320F28388D 微控制器和 ADS8686S ADC 转换器。 我正在使用 ADS8686SEVM-PDK
我在编程如何与 ADC 通信时遇到问题、但最终还是能够做到。 我正在异步模式中使用具有微控制器 EMIF 的"并行字节"接口。
成功设置寄存器并读取结果后、我已使用信号发生器将转换器设置为输出转换结果。
在我将要展示的图片中、ADC 的配置如下:
当直流信号连接到 ADC 时、它似乎工作正常。 这里有一些图片、您可以看到0-10V 信号是如何从中程((2^16)/2)移动至2^16 (我所执行的代码调整 ADC 读数、从而0-32768范围内的代码从-10V 变为0V、从32768-65536范围为0-+10V)。 DAC 的范围为0-3、3V、因此在直流电下、0至+10V 的信号从1、65V 变为3、3V。
直流信号
我遇到的问题是、当我输入一个正弦信号时、因为随着频率的变化、信号的振幅会增加或减少。 我曾尝试使用信号发生器来更改频率和振幅、它们是独立的、因此必须属于 ADC 转换问题。
正如您从以下照片中看到的。 I'am connecting a 15 peak to peak V (每个半周期7、5 peak)。 如您所见、当我以10Hz 的频率输入此值时、振幅为来自 DAC 的2.2V。 不过、如果我将频率增加到20Hz、幅度会降低、而当我将信号频率降低到3Hz 时、幅度会增加。
此外、我测试保持频率恒定并改变振幅、频率不变。 仅考虑与频率对应的振幅。
我真的不知道这件事发生了什么,但这是一个大问题。
我希望你能帮我。
我让你的代码:
GPIO_writePin(CONVST, 1); GPIO_writePin(CONVST, 0); tramaA = *punteroCS; tramaB = *punteroCS; tramaA=ajustetramaADC(tramaA); tramaB=ajustetramaADC(tramaB); signotramaA=tramaA>>15; signotramaB=tramaB>>15; if(signotramaA==0){ conversionA=tramaA+32768; //conversionA = tramaA & 0xFFFF; } else{ conversionA=tramaA-32768; //conversionA = tramaA & 0xFFFF) + 1; } if(signotramaB==0){ conversionB=tramaB+32768; // conversionB = tramaB & 0xFFFF; } else{ conversionB=tramaB-32768; // conversionB = ~(tramaB & 0xFFFF) + 1; } *AdcBufPtr1A++ =conversionA; *AdcBufPtr1B++ = conversionB; convA_DACA=(conversionA>>4) & 0xFFF; convB_DACB=(conversionB>>4) & 0xFFF; DAC_setShadowValue(DACA_BASE, convA_DACA); DAC_setShadowValue(DACB_BASE, convB_DACB);
我让您看一下 AdsBuf 数组的图形、可以看到这种现象不是来自 DAC、而是来自自转换。
提前感谢您、
Br.
佩德罗
尊敬的 Pedro:
您是否可以使用 EVM GUI 软件和 EVM PDK 中包含的 PHI 控制器卡而不是 TMS320F28388D 微控制器来测试输入信号? 您可以尝试 GUI 中的并行接口和并行字节接口、并在 GUI 的"Time Domain"页面中检查捕获的数据和波形。 请告诉我您的测试结果。
我相信我们的 EVM 和 ADS8686S ADC 应该适用于正弦波模拟信号、因为我们已经验证了此类输入信号、因此这可能是一个设置问题。 我对您的测试有几个问题:
我假设您将正弦波信号连接到 EVM 上的 J1或 J9、如果没有、请告诉我。
此致、
戴尔
尊敬的 Dale:
非常感谢您的回答。 我今天的工作已经完成、但明天我将尝试 PHI 控制器、并在 GUI 中看到这个问题。 然后、我将看到信号发生器上的 OUT 阻抗设置。
关于对 ADS8686SEVM 的修改、我们移除了 R28、以便使用 T1中的外部稳压器为电路板馈电。 此外、我使用 T4 (ADCB)和 T2 (ADSA)端子来放置信号、而不使用 J 的 SMA 连接器。
明天我会使用 PHI 结果和发生器的阻抗来更新此问题。 非常感谢 Dale。
此致、
佩德罗
尊敬的 Pedro:
感谢您的信息。 当您使用 PHI 卡和 EVM GUI 时、您可以使 R28保持空 状态、并仍在 T1上为 DVDD 提供+3.3V 外部电源、也可以将 R28焊接回、以便使用 PHI 卡提供的 EVM_DVDD 电源。 但是、您必须在 T1的引脚3上提供外部+5.5V、以便 EVM 板上的 U3 LDO 可以为 ADC 的 AVDD 生成+5V 电源 (我希望您 在使用 TMS320F28388D 微控制器进行测试时已提供外部+5.5V 电源)、应在 EVM 板上 JP7的引脚2-3上安装跳线。
由于未测试交流性能、因此可以对正弦波信号输入使用 T4和 T2。
期待明天看到您的成绩。
此致、
戴尔
尊敬的 Dale:
是的、我使用 T1端子馈送评估卡、为 AVDD 提供5.5V 电压、为 DVDD 提供3.3电压。 为确保正如您所说、我从 JP7安装了跳线、 我已确保在从外部为电路板供电之前查看了电源原理图。 我在测试点测量、并测量了 LDO 的5.5V、AVDD 的5V 和 DVDD 的3.3V。
我将 PHI 与 GUI 配合使用、得到的结果与使用微控制器时相同。 我通过点击 ADC 输入在示波器上进行了测试、函数发生器信号会正常显示、仅改变频率并保持信号振幅恒定。
- Vpeak-peak=15V(每个半周期7,5V 峰值),f=10Hz。 如您所见、GUI 没有获得整个振幅(峰值为6、5-7V)
-其中 Vpeak-peak=15V(每个半周期7,5V 峰值)和 f=20Hz。 当我增加频率时、振幅会大幅降低至4V 峰值、Vpeak-peak 为8V。
- Vpeak-peak=15V(每个半周期7,5V 峰值),f=2Hz。 当我将频率减小到2Hz 时、振幅相对于10Hz 信号会增加、似乎确实提供了15V 的峰峰值。
上述照片使用的是 Ch2 ADCA 以及昨天的 Ch1 ADCB 示波器、因此 ADCA 和 ADCB 都存在此问题。 我还没有从 ADCA 和 ADCB 的3-7位渠道进行过验证、但我觉得没关系。
我曾尝试使用 GUI 来使用其他滤波器(39kHz 和376kHz)、我观察到相同的现象。 正如我昨天说过的、连续信号运行良好。 我将 直流值设置为正值和负值、它测量正常。 它可以在引脚未使用时准确测量来自电容器的19V-2V 电压
我不知道会发生什么,但这是非常奇怪的现象。
我希望您可以了解有关发生了什么的任何线索。
提前感谢 Dale、我将等待您的回答。
佩德罗
尊敬的 Pedro:
我认为 从信号发生器的输出到 EVM 上的端子块(ADC)的信号链上有一个大电容。 我建议
您确定信号发生器的输出阻抗 较低、恒定、具有电阻性吗?
此致、
戴尔
尊敬的 Dale:
很抱歉我迟到了回复。 我现在正在出差、下周前我不会再去实验室了。
我将检查实验室中是否有 SMA 终端、我不确定。 您认为有电容吗? 当我增加频率时、信号的振幅会减小(模块)。 基于电容的1/WC 阻抗、如果我增大频率、阻抗会降低、所以振幅应该增大。 但是、正如我对您说过的、我在端子入口从 T4和 T2处进行了检查、输入信号还行。 当我回来时、我给您展示一张比较它们的照片。
一般情况下、我需要进行检查。
我在这里记得检查一下、当我返回以查看原理图中的信号相对于输入信号的幅度变化情况。
我认为如果发生了短路(我没有 Anu 的证据)、这将是如何与此相关的问题。
谢谢你非常戴尔,我们保持联系这个问题,看看如何可以解决。
Br、
佩德罗
尊敬的 Pedro:
如果阻抗为纯阻性阻抗、则振幅不应随信号频率而变化。 该 ADC 具有1m Ω 的电阻输入阻抗、因此 ADC 测得的电压实际上是输入阻抗和源电阻分压器的电压、因此信号发生器的输出阻抗或可能具有大电容的信号路径的阻抗发生了变化。
如果您有任何更新、请告诉我。
此致、
戴尔
尊敬的 Dale:
很抱歉我迟到了回复,我正在出差。 抱歉这个线程、因为我犯了一个大错误。 从信号发生器 Yu 可以看到、我使用的是 CH2、我想输入频率是10Hz、20Hz 等等... 但是10kHz、20kHz 等。 因此、可编程输入滤波器衰减了输入信号。 无论如何、我已经看到、使用376kHz 滤波器时、输入信号在20kHz 时开始衰减一个位、根据滤波器理论、它应该在截止频率前十倍频处开始衰减37.6kHz。
非常感谢你的时间 Dale 和抱歉所有与这个线程的混乱,因为一个愚蠢的错误,我做了。
祝你度过美好的一周!
此致、
佩德罗
尊敬的 Pedro:
没问题。 感谢您的澄清、这对我理解您所描述的"问题"非常有帮助、对于 ADS8686S ADC、10Hz 与10Hz 是完全不同的。 此 ADC 中的滤波器不是标准巴特沃斯滤波器、您可能观察到、 在特定频率下我没有详细数据、数据表中显示了下图:
此致、
戴尔
您好、Dale
我对您介绍了此 ADS8686S 的 ADC 保护的文档有疑问 https://www.ti.com/lit/pdf/sbaa462
我有一件事不明白、就是您用于选择 PTC 的"最大连续过载电压(VEOS_Max)"。 这个参数是什么?出现在数据表的哪一部分? 如果您能向我解释这个参数、我将非常高兴。
谢谢!
佩德罗
尊敬的 Pedro:
这不是 ADC 或其他组件的参数、它实际上是您的系统中可能出现的最大 EOS 电压。 例如、如果您正在设计模拟输入模块、并且您的最终客户可能会将24V 电源连接到模拟输入端子、则必须考虑这种情况 、并在 ADC 前面设计一个保护电路、以保护您的 ADC 免受任何潜在损害、 具有一定余量的28~30V 故障电压可被视为 VEOS_Max。
此致、
戴尔
非常感谢你的评分
祝你度过美好的一周!
佩德罗