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.

[参考译文] TM4C1294KCPDT:PWM0 GEN0无法配置控制寄存器&ADC0触发&加载中断失败。

Guru**** 2467740 points
Other Parts Discussed in Thread: EK-TM4C1294XL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/669222/tm4c1294kcpdt-pwm0-gen0-fails-to-configure-control-register-adc0-trigger-load-interrupt-fails

器件型号:TM4C1294KCPDT
Thread 中讨论的其他器件:EK-TM4C1294XL

两个空白新 MCU 各表示 DIDO 是 RA2器件、  没有 RA1器件勘误表 PWM#03。  

然而、第1代、第2代、第3代 控制寄存器在配置时没有 任何问题、并按预期工作。

这个 同样的配置问题 (PWM0-GEN0)是 在多年前发布的这个论坛 相关(EK-TM4C1294XL) Launch Pad、 MCU TM4C1294NCPDTi3、 RA2芯片。

奇怪 的是、ADC 触发/中断寄存器已配置(GEN0) 、但 计数器 未配置 、因此 ADC0触发 和计数零中断永远不会执行。

为什么在 RA2器件解决 PWM#03问题这么多年之后、它甚至会成为一个问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101:
    您使用哪个事件来触发 ADC? 作为生成 ADC 触发事件、计数器的值是否等于零? 当您说"但计数器未配置"时、我不清楚。 PWM 模块在器件中重复4次。 如果它适用于其他 Gen1-Gen3、那么我希望它也适用于 GEN0。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Charles Tsaaa"]如果它适用于第1代-第3代,我希望它也适用于 GEN0

    但 GEN0控制寄存器尚未配置 Gen1-3。 奇怪的 是、当  MCU 因我跟踪的另一个错误而发生故障时、GEN0 (控制寄存器)显示所有位均已正确配置、但未启用。

      实用程序文件夹(uartstdio.c)中未配置 UART3、并且过去 在 RTOS 下进行相同的 UART3调用不会给 MCU 造成故障。 无法理解为什么模糊总线错误持续出现故障、因为 UART3在调试中显示配置。 无论如何、这是我注意到在 MCU 立即异常故障0x3之后正在配置 GEN0控制寄存器的时候。

    因此、软件似乎不允许 GEN0控制寄存器正确配置。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    >>您使用哪个事件来触发 ADC? 作为生成 ADC 触发事件、计数器的值是否等于零?

    GEN0控制寄存器中没有置位任何位、因此即使设置了触发器和中断、gens 计数器也不会计数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101:
    我误解了您报告的问题。 起初、我以为您说过、如果正确配置了 GEN0、它将不会生成 ADC 的触发信号。 再次读取您的回复、您会说相反的、当未设置 GEN0寄存器时、触发器和中断被设置。 如果我的理解仍然有误、请纠正我、因为我之前没有这个问题的历史。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是正确的、GEN0控制位全部为0x0、但只需单步执行 GEN0 Tivaware 初始化、所有位均已正确设置。 出现的情况似乎是在这之后通过写入 GEN0控制寄存器来处理 UART3 printf()字符串,并将所有位清零。 很难确定,因为在输出 printf()字符串后调试快速跳转到 Resume。

    通过 UART0发送的相同文本字符串不会引起任何问题、因为 GEN0不能在 EK-TM4C1294XL 上使用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101:
    在运行 UART3 printf 语句时、您能否使用观察点监视是否有任何对 GEN0寄存器的写入? 您是否曾使用过堆栈大小并查看它是否会产生任何差异?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    UART3是一个循环、似乎 PC 跳过了实际代码行的单步执行(F6)、导致了下面显示的问题。 奇怪的是、唯一更改的是启动板上的 GEN0是第1代、因此这可能是未记录的勘误表。  无论是否有任何(单个)行被注释 (//)、控制寄存器位都保持为0x0。 必须注释掉所有3行以阻止 GEN0被覆盖0x0。 我注意到最后三个值 Fault0-2都是0x0

    ROM_PWMGenFaultConfigure (PWM0_BASE、PWM_INT_GEN_0、0、PWM_FAULT0_SENSE_HIGH);
    ROM_PWMGenFaultConfigure (PWM0_BASE、PWM_INT_GEN_1、0、PWM_FAULT1_SENSE_HIGH);
    ROM_PWMGenFaultConfigure (PWM0_BASE、PWM_INT_GEN_2、0、PWM_FAULT2_SENSE_HIGH); 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    BTW 注释不是一个选项、因此请回答为什么会出现这种情况、并获得解决的绿色标志。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    让我们将您的(故障)代码与我们的(长期)工作代码进行比较/对比。

    您的代码 "ROM_PWMGenFaultConfigure"(PWM0_BASE、 PWM_INT_GEN_0、0、PWM_FAULT0_SENSE_HIGH);//  注意您的参数2-不符合规格!”

    以及我们的(旧的、有效的)代码:

    ROM_PWMGenFaultConfigure (PWM0_BASE、PWM_GEN_0、900、PWM_FAULT0_SENSE_HIGH); // 2500 8 月18日
    ROM_PWMGenFaultConfigure (PWM0_BASE、PWM_GEN_2、900、PWM_FAULT0_SENSE_HIGH);
    ROM_PWMGenFaultConfigure (PWM0_BASE、PWM_GEN_3、900、PWM_FAULT0_SENSE_HIGH);

    知道存在(一些)争议的倾向-现在到达"定义法律授权"-来自"PDL 用户指南"-始终需要阅读!

    21.2.2.13 PWMGenFaultConfigure

    配置给定 PWM 发生器的最小故障周期和 FAULT 引脚感测。
    原型:
    无效
    PWMGenFaultConfigure (uint32_t ui32Base、
    uint32_t ui32Gen、
    uint32_t ui32 MinFaultPeriod、
    uint32_t ui32FaultSenses)
    参数:
    ui32Base 是 PWM 模块的基址。
    ui32Gen 是设置故障配置的 PWM 发生器。  必须 是 PWM_GEN_0、PWM_GEN_1、PWM_GEN_2或 PWM_GEN_3之一。    

    的参数不是这样: "PWM_INT_GEN_0" 是吗?
    ui32MinFaultPeriod 是以 PWM 时钟周期表示的最小故障激活周期。
    ui32FaultSenses 指示应将每个故障输入的哪种感应视为“已断言”
    状态。 有效值是 PWM_FAULTn_SENSE_HIGH 的逻辑或组合
    和 PWM_FAULTn_SENSE_LOW。

    我的闪屏、 "圣前 Paddy's“Green (非常恰当)等待着!

    请注意、我们采用"PWM_GEN_MODE_FAULT_MINPER 寄存 器"并获取 所有 PWM 输出"变为安静状态"、即使此时"仅触发一个故障引脚!"

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

    已经发现 忽略 INT 以某种方式进行调用可以解决该问题。

    在发现明显的错误后、FE 是否也可以轻松获得奖励?

    两    年前 、寻找鬼魂将这个论坛的目的是将绿魔传播到同一个问题上、CB1对此表示反对 。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    INT 与 EK-TM4C1294XL 一起工作正常的原因是不能使用 GEN0、默认 M0Fault 为(0x0)高电平。 因此、除非配置了 GEN0、否则使用 INT 的调用不执行任何操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    与往常一样-您的最后一句-得出、"Hh?"    (这引用了背面的2个"BP 帖子"。)   请注意、halled 供应商支持、"age over Beauty"(当帖子同时到达时)-因此此处的"关联"会转到 BP...

    欢迎大家! (即使采用"goo"格式)  作为"Paddy's Day (Paddy's Day)" nears -必须从(非 Shamrock)来源获得绿色修复。   Mercî μ A。

    是否关心链接到声称"反对"(未指明)问题的书面材料?   FiRM /本报告者-早已利用"Single PWM Fault Input"(不需要三个)的功能"瞬态"过流(或其他)故障条件下使所有六个 PWM 输出(但启用、"下一个 PWM 周期恢复")保持正静音...

    我们必须指出,为了捍卫"金融服务",他的方法(当然)会取得成功。    这位记者的观察很简单,证明是正确的。   (尚未提供支持"线索"。)