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.

[参考译文] EK-TM4C1294XL:AIN16泄漏电压

Guru**** 2482225 points
Other Parts Discussed in Thread: EK-TM4C1294XL, TM4C1294KCPDT, LM94022, INA240

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/727059/ek-tm4c1294xl-ain16-leakage-volts

器件型号:EK-TM4C1294XL
主题中讨论的其他器件: INA240TM4C1294KCPDTLM94022

当   ADC0 SS1或 SS2 与 PWM0一起激活时、两个不同外部模拟输入使用的 CH16上的某些内容会变得清晰、此时 PK0引脚18上的电压将输出。 我们避免在勘误表#13 PE3 (AIN0)引脚12中使用 CH0、但 PK0存在问题 、即使在通过10k 或更短的时间下拉时也能正确测量模拟传感器电压。    PK0除了 作为 模拟输入之外没有其他配置。  奇怪   的是、当 ADC SS1或 SS2空闲时、PK0会在602mv 和0.5mV 之间缓慢地上下循环。 我认为 PK0有问题 ,即使它是通过10K 或3K9下拉 的,它 仍然是循环的。

在 EK-TM4C1294XL 上 、如果  电压来自 PK0、则无法重新检查 INx 配置的 INx 电流监控器软件公式、即使被下拉也会影响模拟测量。

在 自定义 PCB TM4C1294KCPDT GPIO PK0 (AIN16) ADC1 输入 来自 LM94022温度传感器的数据时 、无需3k9下拉 任何 PWM0活动即可完成。 ADC1 AIN9 GPIO  PK1 PE4 第二 个 LM94022作为带有 PWM0活动的教会鼠标安静。  此外、还必须使硬件平均为32x、以便即使 在3k9下拉时也能从 PK0获得任何类型的稳定读数。  此外、PK4/5正在用于 PWM0、 PK0就在 PE4旁边 、与噪声无关。 PK6/7用于 M0Vault 输入。 当然、看起来像是 GPIOPinConfigure() ADCSSEMUX 设置通道代码分配、ADC1 CH16与 ADC0 CH1的另一 ADCSSMUX 分配有某种解码重叠。  

找不到 任何与 GPIO PK0重叠的配置、因为 它输出 电压 两个 MCU 的 PK0 AIN16。 模拟  多路复用 器与 PWM0数字多路复用器在   PK0附近有某种内部重叠、这似乎是一个很好的线索。

请检查 ADC0  SS1或 SS2的 LaunchPad PK0配置的 ANI16 是否 产生任何输出电压 、或可能导致该情况发生的原因是什么?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101:
    您在定制板上提到的所有内容、您是否可以在 LP 上复制?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    是的、问题影响 EKXL/EVM 完全相同。 看起来较高的多路复用器通道19:16与较低的序列发生器步骤0重叠。 即使 DMM 探针位于 AIN17上、重叠也会影响模拟信号的振幅。 在 所有 SS2通道(以下)上、典型值为750uV (10k 至地)、仅在 CH17上被拖至50uV。 当 ADCSSEMUX 位 设置为19:16通道时、第0步的 Tivaware 多路复用器配置错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    BP101、
    我是否正确理解您有四个 ADC 通道、每个通道都通过10K 电阻器接地?

    我可以想到三个具有如此高源阻抗的失调电压源(在本例中、您的源为接地)。 第一个是泄漏电流。 它可以高达2.0uA、但可以低至零。 这意味着在10K 电阻器上产生的电压可以介于20mV 至零伏之间。 如果某些通道的泄漏电流产生750uV、而另一个通道的泄漏电流产生50uV、则它们都在规格范围内。 (使用3.3V 基准、12位 ADC 无法解析50uV 和750uV 之间的差异。)

    第二个源是与采样电容器共享电荷。 如果您具有高源阻抗(例如10K)和小源电容(可能只是引脚的2pF)、则采样电容器上先前转换的变化将影响下一次转换。 此处的解决方案是使用更低的源阻抗、更大的源电容和/或更长的采样时间。

    第三个来源是耦合噪声。 如果源阻抗较高且附近有开关电流、则模拟输入和开关电流的磁场会在环路中产生电压。 将 A 至 D 输入与开关电流隔离开来、并通过接地平面和双绞线减少环路面积将有所帮助。

    我不确定您的电路适用什么、因为您对您测试的电路不够具体。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为了选择多路复用器通道(19:16)、ADCSSEMUX 似乎被忽略。 因此、SMUX2和的0xF00 >> 8 MUX0-3的任何位可构成 AINx 通道解码。 因此、在右移8 = 0x001后的 PIN_IPHASEA (0x101)、任何序列发生器步进 CH19:16。 在这种情况下、直接在 CH1顶部会在模拟多路复用器中形成微小的短路。

    可能会解释为什么带有 LM94022温度传感器的 AIN16 (PK0)定制 PCB 会随着步骤0 AIN1=0x1的 AD0 SS2输入开始滚动。 当 CH16或 MUX0 = 0x1时、PIN_PHASEA 只要有信号、就会干扰 ADC1 SS1、当可能时、应将其配置为0x100。 解释了输入电流如何从模拟多路复用器的 CH1流至 CH16最终导致 LM94022的输出、2K9对地短路。 更换传感器后、来自 CH16的传感器数据似乎仍随 CH1的活动而回滚。

    这是 TM4C1294的 SAR 无法正确默认 INA240输出信号的唯一逻辑解释。 我们永远无法获得正确的模拟电压、并且必须使软件补偿错误的硬件配置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Bob:

    ADCSSEMUX 通道(19:16)的 EKXL/EVM 点在某种程度上重叠了模拟多路复用器中 ADC1 SS1步进0的 CH1和 ADC0 SS1步进0序列发生器配置。 无论 ADCSSEMUX 位设置为选择(19:16)、所有信道解码都将被右移。 这在 EK/EVM 中不是串扰、因为模拟多路复用器中的引脚配置重叠导致了它的电流流动。

    ADC0/1通道的 ADCMUXn 通道位的右移(19:16)是正确的还是错误的! 如果正确、则 ASCSSEMUXn 位将被忽略、并且在模拟多路复用器(19:16)和(3:0)的 AINx 引脚配置中会发生重叠。

    模拟输入电压下降到超过10K 下拉电阻值的行为是不正确的、更不用说 INA240输出受到类似测试的 EKXL/EVM 了、与仅测试的 AIN16或 AIN17完全相同。 只需将测量毫伏的30兆欧 DMM 探头放置在 SS1或 SS2的 AINx 伙伴引脚上、同时具有相同的10K 下拉电阻、这不会影响电压、而只会影响 AIN16 (PK0)或 AIN17 (PK1)、到目前为止、ADC1 SS1的相反步骤0的 AIN1在模拟多路复用器中重叠。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不同意你的结论。 我创建了一个用于转换 AIN1和 AIN17的简单项目。 在 EK-TM4C1294XL launchpad 上、我将 AIN1连接到3.3V、将 AIN17连接到 GND。 如果您建议的值为 true、则引脚将通过多路复用器短接并返回相同的值。 我的结果是我所期望的、这两个通道是分开的。 我重复实验、将 AIN1连接到 GND、将 AIN17连接到3.3V。 示例工程已附加。

    /cfs-file/__key/communityserver-discussions-components-files/908/ADCtwoChannel.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Bob Crosby"]。 我的结果是我所期望的、这两个通道是分开的。 我重复实验、将 AIN1连接到 GND、将 AIN17连接到3.3V。 随附了示例项目。

    也许您对存在的条件的误解与导通和关断电压无关。  3v2 102Hz 信号显示出 CH16在某些 其他 通道数据干扰下的导通状态比简单的导通关闭状态更多。

    在 多路复用器中、它们在某种意义上是过载、这并不意味 着它们直接短路、尽管 ADCSSMUX 中的这些通道之间似乎短路了。  具体而言、讨论周期性信号、 通过  ADCSSEMUX 通道信号(19:16)通过 FIFO 第0步数据进入 CH16。  奇怪的 是、CH16 (过度) MSB 增益 在禁用第0步后消失、 将 CH16移至第1步、如何解释?  此外、已将数组指针更改为与 CH16匹配、并将其移至 SS2步骤1。 所有已编程 的序列发生器上都会出现与 STEP 0相同的大 MSB 增益、STEP 0的 MSB 增益大于任何其他步进。    如何在通道匹配中特别注意、以最大限度地减少数据表中所述的通道间串扰。 当然、序列发生器配置中存在一些尚未实现的混乱!   

    下面的数据表声称 ADCSSEMUX  位被置位 ADCSSMUX0 19:16 AIN17将为0x1、这与 Tivaware ADC 信道针对 19:16的解码与  ADCSSMUXn 中的信道3:0完全匹配相矛盾。

    一个想法:    

    通过搭接 AIN0 可能会在某种程度 上影响   LM94022 传感器的 AIN16纯模拟 FIFO 数据、AIN16 的 输出电压高于典型值、10K 接地电压。  事实上、在 AIN16上添加的任何电容都会使 PK0 (AIN16)数据 ADC1 SS1变得更加难以稳定。  PE4 (AIN9) ADC1 SS1 第2个 LM94022 模拟 FIFO 数据作为教会鼠标静默、如果串扰是由谁负责的、如何解释? AIN0勘误 表#13可能 会以某种方式 产生 FIFO 第 0步数据。 另外请注意 、FIFO 头指针/尾指针在 CCS 调试寄存器视图中没有变化。 请注意 、未 配置 AIN0、 MCU 引脚 保持悬空! EKXL/EVM 和自定义 PCB 上存在完全相同的序列发生器条件、其中 AIN16和 FIFO 步骤1的 MSB 数字数据幅值过大。

    寄存器15:ADC 采样序列输入复用选择寄存器0 (ADCSSMUX0)、偏移量0x040

    MUX7字段在所执行序列的第8个采样中使用
    采样序列发生器进行采样。 它指定了哪个模拟输入
    采样进行模数转换。 此处设置的值表示
    例如、当 EMUX7清零时、相应管脚的值为0x1
    表示输入为 AIN1。 当 EMUX7位置位时、0x1表示
    输入为 AIN17

    注意:此微控制器上不存在通道 AIN[31:20]。 将 MUXn 配置为0xC-0xF
    当相应的 EMUXn 位被置位时、会导致未定义的行为。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    可能需要在每个通道上尝试10k 以接地、并将周期模拟信号注入 AIN16和 AN1或 AN2。 为了进行真正的比较、通过 UARTprintf()传送 FIFO 数据、其中显示了在步骤0上由同一序列发生器的多个步骤配置的 CH16、CH17、CH1、CH2。 所有通道 FIFO 步长打印的数据应在任何相邻通道的+/-30 LSB 范围内。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉让教堂鼠标频道 ADC1在  帖子上方实际上是 AIN9 (第2个 LM94002)。  它是 ADC0 PE2 CH1数据使 ADC1 配置中的 PK0 CH16承受、而不是这个问题中的 ADC0。

    必须将 MCU 内部温度传感器从 ADC1移至 ADC0、因为它会不断触发过热故障、 这与影响 CH16 (PK0) LM94002传感器的问题相同。 ADC1 SS1步骤1的同样问题 可能是为 CH16 (PK0)设置的 ADCSSEMUX 从 ADC0 SS1步骤1 CH1 (PE1)传递 FIFO 数据。

    ADC0和 ADC1必须针对    勘误表配置 SS1第0/1步、才能释放 人类的瘟疫、其中 ADC1的 ADCSSEMUX 位似乎被 ADC0忽略。 在这种情况下、谁会知道 ADC0 CH1数据仅在 PWM0活动时存在、即 ADC1 CH16第0步开始出现真正的问题。 然而 、AIN9 (PE4) ADC1第 1步 另一个 LM94002传感器 始终具有非常安静的读数。

    下 一下棋动作;  完全退出 ADC1、 这应该可以消除 ADC0 CH1 FIFO 数据流入 ADC1 CH16的问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    虽然"教会小鼠"(通常)会混淆—"错误结论"(由多个供应商代理和本记者确定)的"快速和松散"演示、以及"变量太多"( 甚至是"非主题")的介绍(通常是 )—"援助和赌注"(持续)是否会混淆?

    认真地-您是否"期望" 这个繁忙的供应商遵守您的指示、以便:  

    • 也许可以尝试在每个通道上进行10k 接地
    • 将周期模拟信号注入 AIN16和 AN1或 AN2。
    • 通过显示 CH16、CH17、CH1、CH2的 UARTprintf()来移植 FIFO 数据
    • 上述-在同一序列发生器的多个步骤中配置、在步骤0上配置 CH16
    • 并在"以(下半径)圆周运动摩擦其腹部"时执行"以上所有内容"-在2 Hz 左右

    在(非常)不太可能发生的情况下、(您的)"周期性信号"-(真的)导致您报告的信号"出血"-我(几乎)肯定会将其归因于:

    • "超车"
    • 并且可能"谐波丰富!"
    • 阻抗无效匹配-和/或"其他" ADC 规格违规
    • 无效的公共接地 (这已导致我们的客户端出现"错误"-当(commopn) GND 连接失败时!)
    • 斗杆销-未收到-其最新(必需)校准

    我被告知"过度/不足"(回复:另一个"海报自我奖励解决方案"(?)) 表示为"3"。   (请注意“下棋”要求(很好)纪律-核查员... 不是很好...)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="CB1_MOBIT"]在(高度)不太可能发生的事件中、(您的)"周期性信号"-(实际上)导致您报告的信号"出血"-我(几乎)肯定会将其归因于[/引述]

    每个 帐户都是错误的。  最近发现的 ADCCLK 速度 可在      模拟多路复用器阻抗变化中防止 ADC0和两个序列发生器1步进0的 ADC1处理交叉争用直接链接到 FIFO 数据路径。  当  发生通道采样时、ADC0/1不能保持 AINx 输入的交叉通道 Rs 阻抗隔离。 同样、Kiss Stick 引脚确认步骤0不应具有任何其他 AIN 输入通道的步骤1、2、3、4、5、6、7的100倍增益。 仅从激活 通道 和采样 步骤0开始、步骤0的阻抗不应发生显著变化。  

      如何为步骤0接受所有其他配置的序列发生器步长 AIN 通道为高阻抗、尤其是10k 至地?  同样、ADC1序列发生器1中的数据 在 ADC0序列发生器1中的步长也是通过将 ADCCLK 从2MSPS 更改为1MSPS 来实现的。 相对于     采样 FIFO 数据的开环增益、阻抗 ADC0 STEP 0变为高电平、ADC1 STEP 0变为低电平(反向)。 只需触摸跳线 AINx 以10k 接地、信号增益 步长0为100倍其他任何步长、 并将模拟多路复用器交叉至  备用 ADC 模块的另一个 SS1步长0。  

    kiss 测试证明 Rs 阻抗在通道之间不是恒定的。

    2. ADCCLK 速度 高度相对于 ADC0、ADC1不 能与  处理循环 FIFO 中断事件的 C++应用程序保持同步。  

    ADC1序列发生器1的数据第0步 AINx 数据将作为 分配 了19:16通道的 ADCSSEMUX 迁移到 ADC0 SS1第0步 AIN 3:0、所有这些都是未记录的勘误表!

    4. kiss 测试表明   、当 任何 AIN 3:0通道分配给 ADC0 SS1时、不应将 ADC1 SS1分配给19:16通道。

    5. ADCCLK 速度的 kiss 揭示了 TI 尚未测试 Tivaware 从 循环 FIFO 中提取序列发生器单步数据的能力 、这极大地影响了 Rs 阻抗!

    否则   、 在 ADC0/1 AINx 分配的输入的实验室测试中从未发现 SSX 第0步的100x 开环增益、我的数据属于特定的勘误表。