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.

[参考译文] TM4C123BH6ZRB:TM4C123BH6ZRBI7

Guru**** 2386620 points
Other Parts Discussed in Thread: INA240, CDCV304
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1463540/tm4c123bh6zrb-tm4c123bh6zrbi7

器件型号:TM4C123BH6ZRB
主题中讨论的其他器件:INA240CDCV304

工具与软件:

在双通道系统 A 和 B 中、每通道有三个 TM4C123BH6 (BGA 157)用于测量模拟信号。

测量最大值的电流 3A 时、此精度为通道间0.1%的偏差以及与所需的外部测量值的对比。

ADC 输入有问题。 例如、MCU0 (PD5)上的 A0_I 测量值有3到5位错误。 该 MCU 上的所有其他 ADC 输入具有相同的行为。  

它是偶然的,温度没有影响,当故障解决时,它是恒定的,直到下一次重新启动。

测试软件尽可能小。 该引脚配置了 ADC 和两个带有 LED 的 GPIO。

  

电气设计并不完美、但放置几乎相同、只是布线不同。

  • 而不是最大值 4µF 在数字电源 VDD 处、安装了一个 X7R 4.7µF 电容器(C455)。
  • VREFA+由一个外部基准源供电、该基准源通过铁氧体磁珠和推荐的块电容器提供3.3V 和0.1%的容差。
  • 通过10k Ω(R472)的下拉电阻将 INA240产生的电流提供的电压施加到 ADC 输入端、该下拉电阻通过10k Ω(R504)和100nF (C472)的低通滤波器馈送。
    根据应用手册 SPNA061、Cext 应具有约40nF (C106)和410欧姆(R504)的 Rsource。

元件值中的机会不会表现出任何改进。

 

出于测量目的、断开 INA240并施加了一个具有低纹波的外部电压源。 这也显示了通道之间的差异。

如果 ADC 输入开路、可以测量出比其他 MCU 和 ADC 输入高一些10毫伏的电压。

 

这可能是串扰吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Unknown 说:
    我们的 ADC 输入有问题。 例如、MCU0 (PD5)上的 A0_I 测量值有3到5位错误。 该 MCU 上的所有其他 ADC 输入具有相同的行为。  [报价]

    3到5 LSB 的误差是很多。

    您可以在 LaunchPad 上运行自定义软件吗?结果是什么?

    您可以在定制电路板上运行现有 TivaWare 示例吗?结果是什么?

    您说了 A0_1。 您指的是这款 AIN0吗? 如果您指的是 AIN0、则它在 PE3上、而不是 PD6上。 PD5适用于 AIN6。 请澄清。  

    您的 ADC 时钟源是什么? 有几个已知的 ADC 勘误表、然后查看它们是否适用于您。   有关详细信息、另请参阅 www.ti.com/.../spmz849上的勘误表。  

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

     
    您说了 A0_1。 您指的是这款 AIN0吗? 如果您指的是 AIN0、则它在 PE3上、而不是 PD6上。 PD5适用于 AIN6。 请澄清。  

    抱歉。 我们的内部命名为 A0_MCU0_I、并连接到 PD5。 AIN0连接到 A3_MCU0_U

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

    您好!

     感谢您的澄清。 您能否回答我之前提出的其他问题?

     请注意、今天是 TI 的公共假日。 请预计我的答复会有延迟。  

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

    您好、Charles、

    该软件在 LaunchPad 上运行、没有任何问题。

    电路板上的示例代码也会导致此错误。

    我们使用的代码与示例代码没有太大差异。 具体如下所示:


    /* ISR ADC0 -序列0 */
    void Adc_Isr ChASeq0()

    uint32_t AdcQueue[8];

    ADCIntClear (ADC0_BASE、0);

    ADCSequenceDataGet (ADC0_BASE、0、AdcQueue);

    /*我们向 ADC 施加一个5mV 电压(PD5)。 如果电压低于或等于3 LSB =>红色 LED 亮起、否则熄灭*
    if (AdcQueue[0]<=3)

    // LED_ON
    GPIOPinWrite (GPIO_PORTG_AHB_BASE、PINS_MCU0_LED1、GPIO_PIN_6);// PG6
    }
    设计

    // LED_OFF
    GPIOPinWrite (GPIO_PORTG_AHB_BASE、PINS_MCU0_LED1、~GPIO_PIN_6);//PG6
    }
    }

     


    int main (void)

    SysCtlClockSet (SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_XTAL_8MHZ | SYSCTL_OSC_MAIN);
    SysCtlDelay (DEV_EN_DELAY);

    SysCtlGPIOAHBEnable (SYSCTL_PERIPH_GPIOB);
    SysCtlPeripheralEnable (SYSCTL_PERIPH_GPIOB);

    SysCtlGPIOAHBEnable (SYSCTL_PERIPH_GPIOD);
    SysCtlPeripheralEnable (SYSCTL_PERIPH_GPIOD);

    SysCtlGPIOAHBEnable (SYSCTL_PERIPH_GPIOG);
    SysCtlPeripheralEnable (SYSCTL_PERIPH_GPIOG);

    SysCtlPeripheralEnable (SysCtl_Periph_GPIOM);

    /*启用 ADC */
    SysCtlPeripheralEnable (SYSCTL_PERIPH_ADC0);
    while (!SysCtlPeripheralReady (SYSCTL_PERIPH_ADC0));

    /*启用 ADC-measurement*的计时器/
    SysCtlPeripheralEnable (SysCtl_Periph_Timer1);
    while (!SysCtlPeripheralReady (SYSCTL_Periph_Timer1));

    /*配置 LED (PG6)进行调试*/
    GPIOPinTypeGPIOOutput (GPIO_PORTG_AHB_BASE、GPIO_PIN_6);
    GPIOPadConfigSet (GPIO_PORTG_AHB_BASE、GPIO_PIN_6、0、GPIO_PIN_TYPE_STD);

    //配置 PD5 - A0
    GPIOPinTypeADC (GPIO_PORTD_AHB_BASE、PINS_A0_MCU0_I);
    GPIOPadConfigSet (GPIO_PORTD_AHB_BASE、PINS_A0_MCU0_I、0、GPIO_PIN_TYPE_ANALOG);

     


    /*初始化 ADC */
    ADCReferenceSet (ADC0_BASE、ADC_REF_EXT_3V);

    ADCSequenceDisable (ADC0_BASE、0);

    /*通过计时器触发 ADC */
    ADCSequenceConfigure (ADC0_BASE、0、ADC_TRIGGER_TIMER、0);

    /* PD5 */
    ADCSequenceStepConfigure (ADC0_BASE、0、0、ADC_CTL_CH6 | ADC_CTL_IE | ADC_CTL_END);

    ADCSequenceEnable (ADC0_BASE、0);

    /* ISR */
    ADCIntRegister (ADC0_BASE、0、Adc_Isr Ch381ASeq0);

    ADCIntClear (ADC0_BASE、0);
    ADCIntEnable (ADC0_BASE、0);
    IntPrioritySet (INT_ADC0SS0、0x00);
    IntEnable ((uint32_t) INT_ADC0SS0);

     


    /*配置用于 ADC 测量的计时器*/
    TimerConfigure (Timer1_base、TIMER_CFG_PERIODIC);

    //将计时器时钟源设置为系统时钟(80MHz)
    TimerClockSourceSet (Timer1_base、timer_clock_system);

    IntPrioritySet (INT_TIMER1A、0x00);

    //应得到80M/8000Hz = 10000 (125µs)
    TimerLoadSet (Timer1_base、timer_A、10000);

    //使计时器触发 ADC 转换
    TimerADCEventSet (Timer1_base、TIMER_ADC_TIMEOUT_A);
    TimerControlTrigger (Timer1_base、timer_a、true);

    //启用计时器
    TimerEnable( Timer1_base、timer_A );


    while (1){}
    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    代码刚刚得到简化、并且使用 LED 直观地指示错误。
    在我们的调查开始时、我们评估了 ADC 原始值((ADC_rawValue / 4096)* 3.3)并将其显示出来。
    然后、我们注意到、如果我们施加稳定的5mV、如果原始值小于、则点亮红色 LED、我们也可以看到该误差 
    智能放大器。

    在此提醒、我们的电路板上有6个 Tivas、它们的行为都不同。 但软件对每个人都是一样的!
    每个控制器只需在每个125µs 上启动并测量 ADC_CTL_CH6。 如果 ADC 原始值小于或等于3、 
    LED 亮起。 我们得到6个控制器中的一个处于 LED 永久显示错误(即永久低于 ADC)的状态
    原始值4。 当我们之前显示测量值时、我们发现 ADC 在稳定的5mV 时显示的值​​介于0和3mV 之间。
    现在我们可以看到、LED 在一个控制器上保持点亮状态、而在所有其他控制器上保持关闭状态(因此他们正确测量了5mV)。
    因此、似乎只有一个控制器存在此问题。 并具有其所有 ADC 输入! 所有 AIN 都可能引发错误。
    而且非常重要的是,问题只偶尔发生。 特殊的注意事项。 但即使您使用重新启动 Tiva 也是如此 
    SysCtlReset()…
    如果您一次又一次地重新启动控制器、则可能会在错误发生的某个点发生(LED 亮起)并保持不变
    直到您再次重新启动。 但仅用于具有相同软件的6个 TIVA 之一! 我们已经尝试对 ADC 施加绝对稳定的外部基准电压、并使用示波器来确保
    它是稳定的。 我们对 ADC 施加绝对稳定的5mV 电压。 到目前为止没有成功。 我们还将尝试使用内部 PIOSC 作为系统时钟。 我们感谢每一个提示,因为我们正在缓慢地运行
    创意十足。 正是因为电路板上有6个(mcu0 - mcu5) tivas、它始终可靠地影响第一个(mcu0)。
    这适用于我们检查的每个电路板。

    我认为这是一个硬件问题、但我们必须解决它。 
    问题是什么可以困扰 ADC 这么多、以至于它一直存在这个问题、以及可以采取哪些措施。 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们得到6个控制器之一、该控制器处于 LED 永久显示错误的状态、即永久低于 ADC 的状态
    原始值4。 [/报价][报价用户 id="639288" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1463540/tm4c123bh6zrb-tm4c123bh6zrbi7/5620874 #5620874"]所以只有一个控制器似乎有此问题。 并具有其所有 ADC 输入! 所有 AIN 都可能引发错误。

    尊敬的 Benjamin:

     感谢您提供更多信息。 早些时候、我的印象是、所有六种方法产生的结果大相径庭(高达5个 LSB 的差异)。 似乎只有一个重点。 虽然我不知道为什么这款芯片的性能比其他五款芯片差、但我认为它在规格范围内。 请找到 ADC 电气特性。   

    我们得到6个控制器之一、该控制器处于 LED 永久显示错误的状态、即永久低于 ADC 的状态
    原始值4。 当我们之前显示测量值时、我们发现 ADC 在稳定的5mV 时显示的值​​介于0和3mV 之间。 [报价]

    一个阶跃等于3.3/4096 = 0.806mV。 如果测得5mV 输入的电压为3mV、则误差为(5-3)/0.806=2.48LSB。 但如果您通过5mV 的输入测量得到0V 的电压、则为5/0.806=6.2LSB、我同意这超出了规格。  

    非常重要的是、问题只偶尔发生。 特殊的注意事项。 但即使您使用重新启动 Tiva 也是如此
    SysCtlReset()…
    如果您一次又一次地重新启动控制器、则可能会在错误发生的某个点发生(LED 亮起)并保持不变
    直到您再次重新启动。 但仅用于具有相同软件的6个 TIVA 之一!

    我想知道您看到的误差是仅 针对 AIN 上的低电压、还是与1.65V 或3.3V 等其他输入电压相同?  

     我想指出的是、对于低电压输入、非线性误差的量通常会比较大。  下面的链接对此进行了一些讨论。  

    https://electronics.stackexchange.com/questions/226931/adc-error-for-low-voltage-measurements

    [报价 userid="639288" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1463540/tm4c123bh6zrb-tm4c123bh6zrbi7/5620874 #5620874"]我们已尝试向 ADC 施加绝对稳定的外部基准电压、并使用示波器来确保该电压值
    它是稳定的。 我们对 ADC 施加绝对稳定的5mV 电压。 到目前为止没有成功。 [报价]

    好的。 请注意、这不是由于 VDDA 或 GNDA 不稳定造成的。  

    问题是什么可以困扰 ADC 如此之多,以至于它永久存在这个问题,以及可以对此做些什么。

    通常、为了获得最佳 ADC 性能、建议使用以下选项、但我相信您已经使用过其中的一些选项。 请再次记住数据表中指定的固有线性误差。  

    • 使用外部 Vref
    • 将 VDDA 和 GNDA 与 VDD 和 GND 分开
    • 添加 RC 滤波器。
    • 输入信号的短路迹线
    • 添加单位增益缓冲器驱动器
    • 输入的过采样/取平均值。  TM4C123具有一个硬件采样平均电路
    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请注意、这不是由于 VDDA 或 GNDA 不稳定造成的

    • 使用外部 Vref ⇒ 对于三个控制器、我们使用具有3.3V、0.1%容差和10 mA 输出电流的基准。
    • 将 VDDA 和 GNDA 与 VDD 和 GND 分开  否、GND 有一个平面
    • 添加 RC 滤波器。  ⇒ 是、AIN 具有一个截止频率为160Hz 的低通滤波器
    • 输入信号的短路迹线  ⇒ 无法实现
    • 添加单位增益缓冲器驱动器  ⇒不包括,设计是免费的

    使用差分探头连接到 C10-2时、VREF+(L3-1)存在尖峰。  删除 L3 VREF+后 的电路是干净的、但错误仍然存在。

    也使用 L2完成、但效果相同。

    GN:Vref+、或:AIN

    GN:Vref+、或:AIN

    我想知道您看到的误差是仅 针对 AIN 上的低电压、还是与1.65V 或3.3V 等其他输入电压相同?  

    是的、我们使用其他输入电压进行了检查、结果具有相同的行为。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我们使用其他输入电压以同样的行为进行了检查。

    您好!

     您能向我展示您在0V、5mV、1.65V 和3.3V 时针对有问题的电路板与正常电路板测量的原始数据吗?

     您是否可以通过将可疑的 MCU 换成您认为没有问题的其他五个电路板之一来进行 ABA 交换测试? 请将五个工作板之一上的 MCU 交换到可疑的板上、以此完成相同的操作。  

     尽管不太可能解释问题、但您能否在六个芯片上显示批次跟踪代码?

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

    尊敬的 Charles:

    似乎我们还没有解释得非常清楚。
    涉及到多个板、没错。 每块电路板上有6个 Tivas。 
    始终有一个 Tiva (在位置方面相同)可靠地具有误差。
    对于其他寄存器、误差发生的频率要低得多、或者根本没有发生。



    只有当电路板完全重新启动或 Tiva 为 SysCtlReset ()时、才会发生错误。
    我们也尝试过仅重置 ADC 外设、但没有任何效果。 

    我稍后将再次进行测量、然后​​在此处写入所需的 ADC 原始值。 
     
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们似乎还没有解释得非常正确。 涉及到多个板、没错。 每块电路板上有6个 Tivas。
    始终有一个 Tiva (在位置方面相同)可靠地具有误差。
    对于其他寄存器、误差发生的频率要低得多、或者根本没有发生。


    [报价]

    尊敬的 Benjamin:

     对不起我过去的误解。 您知道每个板有六个 Tiva、您有多个这样的板。 无论使用哪种电路板、MCU0始终都会进行不良的 ADC 测量。 MCU1、2、3、4、5在电路板上大多是正确的。 这是正确的理解吗? 如果是这种情况、电路板上 MCU0与其他 Tiva MCU 的物理位置会有些特殊。  

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

    尊敬的 Charles:

    是的、硬件略有不同。 
    奇怪的是、错误会永久性发生。
    但是用 SysCtlReset()重新启动 Tiva 已经足够了、错误消失了。
    更确切地说,"随机播放"再次启动-这可能是错误发生
    立即重新启动或仅在 Tiva 多次重新启动后再次启动。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Benjamin:

     您是否可以在 MCU0和 MCU5之间进行 ABA 交换? 我很想知道、当移动到 MCU5位置后 MCU0变为正常时、MCU5是否会突然出现与 MCU0相同的问题。  

     由于您的硬件已冻结、我们需要查看是否有任何软件方法可以改善 ADC 结果。 您是否能尝试:

     -通过写入 ADCPC 寄存器来降低采样率? 默认情况下为1Msps。 尝试500ksps 或更低。 它会产生影响吗?

     

     -启用抖动。

     -你能用 ADC1代替 ADC0吗? 它会带来相同的问题吗?

    -你可以尝试硬件平均?

    -您可以尝试使用内部 Vref 而不是外部 Vreg。 我很想知道这是否会带来变化?

    奇怪的是、错误然后永久发生。

    我仍然不清楚这一观察。 您似乎认为这些错误随着时间的推移而累积。  

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

    我的意思是、如果错误是由于重启引起的、那么"偏移"基本上会保持不变。

    我们已经尝试了很多你在这里写的东西。

    使用 ADC 1而不是0、使用抖动、使用硬件平均值、使用内部 VREF、并且还更改了采样率。

    迄今没有取得任何成功。

    在我的测试中、我现在可以看到 MCU0向下漂移、而 MCU1向上漂移。

    这在 MCU0中发生的频率要高得多、因此直到现在才注意到 MCU1。  

    我还注意到、MCU0不会向上漂移、只会向下漂移、而 MCU1会向下漂移、而不是向上漂移(我在大约1000次重新启动后停止了测试)

    到目前为止、测试的3个电路板具有此行为。

    香港特别行政区政府在香港特别行政区的工作

    我所说的漂移(或偏移)是指当我将测试设置用作 MCU0的示例时:
    在 ADC 上稳定5mA
    -restart 直至原始 ADC 值降至4以下
    -一旦低于4则不再重新启动。

    从现在开始、我会看到以下行为:
    -在不重新启动的情况下、ADC 原始值​​小于4现在会累加

    (仍然有​​5、6、7的值、但更经常的值小于4)。

    香港特别行政区政府在香港特别行政区的工作、包括香港特别行政区

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

    尊敬的 Benjamin:

    [报价 userid="639288" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1463540/tm4c123bh6zrb-tm4c123bh6zrbi7/5630428 #5630428"]

    我们已经尝试了很多你在这里写的东西。

    使用 ADC 1而不是0、使用抖动、使用硬件平均值、使用内部 VREF、并且还更改了采样率。

    迄今没有取得任何成功。

    [报价]

    好的。

    [报价 userid="639288" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1463540/tm4c123bh6zrb-tm4c123bh6zrbi7/5630428 #5630428"]

    在我的测试中、我现在可以看到 MCU0向下漂移、而 MCU1向上漂移。

    这在 MCU0中发生的频率要高得多、因此直到现在才注意到 MCU1。  

    我还注意到、MCU0不会向上漂移、只会向下漂移、而 MCU1会向下漂移、而不是向上漂移(我在大约1000次重新启动后停止了测试)

    到目前为止、测试的3个电路板具有此行为。

    [报价]

    到目前为止、您已为5mV 输入提供了原始数据。 根据我之前的要求、我很想知道其他点的原始数据(例如0V、1.65V、3.3V)。 您能提供吗?

    [报价 userid="639288" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1463540/tm4c123bh6zrb-tm4c123bh6zrbi7/5630428 #5630428"]

    我所说的漂移(或偏移)是指当我将测试设置用作 MCU0的示例时:
    在 ADC 上稳定5mA
    -restart 直至原始 ADC 值降至4以下
    -一旦低于4则不再重新启动。

    从现在开始、我会看到以下行为:
    -在不重新启动的情况下、ADC 原始值​​小于4现在会累加

    (仍然有​​5、6、7的值、但更经常的值小于4)。

    [报价]

    现在、我了解了你们的设置、也就是这个错误会变成永久性的。  

    您是否有机会在 MCU0和 MCU5之间进行 ABA 交换?

    您为 ADC 提供了什么时钟源? 您可以尝试将 MOSC 用作 ADC 的时钟源吗?

    我已经查看了您的 VDDA 和 VREF+原理图、它符合 TM4C129系统设计指南的建议。 就布局而言、您仅显示其中一个。 我想电路板上的全部六个 MCU 的布局大致相同、对吗?

    您是否有可以吹到被测 MCU 上的风机? 我很想知道随着时间的推移、温度在这里是否会起作用。 您说过、在1000次重新启动后、错误可能会变成永久错误。 我希望有一个鼓风机、它能提供 更好的散热。 它提高了吗? 如果您还可以记录启动时的温度、以及使用和不使用鼓风机时错误永久存在时的温度、这将很好。  

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

    Benjamin 的贡献:

    抱歉、是的、我们在 ADC 上尝试了使用3.3V 稳定输入来实现。 然后、当 ADC 原始值低于4093时、在 MCU0上设置错误检测。  
    它也在这里发生。 该行为与稳定的5mV 时相同。 这就是我经常谈论它的原因。

    昨天我们使用了内部时钟。 此处的值最初波动更大。 这就是我们使用抖动和硬件过采样(4)的原因。  
    我们无法再看到错误(至少这是在多次尝试后出现的错误)。  
    当我们再次使用具有相同配置的外部时钟时、错误再次出现。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉、是的、我们尝试了 ADC 上3.3V 稳定输入的方法。 然后、当 ADC 原始值低于4093时、在 MCU0上设置错误检测。  
    它也在这里发生。 该行为与稳定的5mV 时相同。 这就是我经常谈论它的原因。

    尊敬的 Markus/Benjamin:

     好的。 我想对于1.65V、您具有相同的误差、对吧?

    [报价 userid="338755" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1463540/tm4c123bh6zrb-tm4c123bh6zrbi7/5632347 #5632347"]昨天我们使用了内部时钟。 此处的值最初波动更大。 这就是我们使用抖动和硬件过采样(4)的原因。  
    我们无法再看到错误(至少这是在多次尝试后出现的错误)。  
    当我们在相同的配置下再次使用外部时钟时、错误再次出现。[/QUOT]

    很高兴看到有一些改进。

    您说的是、借助内部时钟、抖动和硬件过采样、错误不知何故而消失。 是这样吗? 您能否过夜、看看问题是否真正解决了?

    我想您使用 ADCClockConfigSet ()将 PIOSC 配置为 ADC 的时钟源。 是这样吗? 您调用 API 的方式如下所示吗? 如果不是、您能否提供您使用的确切 API 调用?

    ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PIOSC | ADC_CLOCK_RATE_FULL、1);

    您以前使用的时钟是什么?  

    您是否有机会在 MCU0和 MCU5之间进行交换、因为我非常渴望知道电路板上 MCU 的物理位置在这里是否起着重要作用。  

    您是否有机会让受测的 MCU 上空吹风? 它会产生影响吗?

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

    热量不是问题。

    物理位置已修复、无法执行交换。

    此设计用于为 MCU 提供时钟缓冲器 CDCV304和8 MHz 振荡器。 时钟缓冲器没有阻断电容器、因此电源电压会出现尖峰。

    在从时钟缓冲器(通过一个33欧姆的电阻器)到 MCU OSC0输入的迹线上、存在反射和干扰。

    根据数据表第23.9.5章的规定、从高电平到低电平、信号下降到 VIL 的两倍以下。  

    数据表中有一条关于 ADC 操作的提示。" 时钟频率(加上抖动)必须稳定..."

    这会导致问题吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在设计中用于为具有8 MHz 振荡器的 MCU 提供时钟缓冲器 CDCV304。 时钟缓冲器没有阻断电容器、因此电源电压会出现尖峰。

    您是否启用了 PLL?

    您是否能够切断到 OSCIN 的布线并使用函数发生器为 MCU0提供干净的16MHz 时钟? 您会看到什么差异吗? 您之前说过、如果使用内部时钟源(频率为16MHz 的 PIOSC)、那么问题似乎消失了。 情况仍然如此吗?

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

    您好!

     我没有听到你的声音。  我现在将结束该主题。 如果您有任何更新、您可以回写此帖子、并且状态将更改为"已打开"。