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.

[参考译文] TDA4VP-Q1:如何搞清楚引脚上可用的所有模式、计时器输出能否连接到任何 GPIO?

Guru**** 2468610 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1468308/tda4vp-q1-how-to-figure-out-all-the-modes-available-on-a-pin-and-can-a-timer-output-be-connected-to-any-gpio

器件型号:TDA4VP-Q1
主题中讨论的其他器件:SysConfig

工具与软件:

我想在 GPIO0_35上生成 PWM。 现在我能够打开和关闭 GPIO。  据我所知、此引脚不支持 PWM 生成。 遗憾的是、在电路板上、默认情况下只有此引脚可用于生成 PWM。 我通过在 SysConfig 工具中查看该引脚上的可用模式得出结论:在该引脚上无法进行 PWM。

我的理解是否正确、如果这里未提及任何模式、则无法在该引脚上执行该操作?

如果默认情况下无法进入 PWM 模式、我想 在此引脚上配置一个计时器的输出。 可以将计时器的输出连接到此 GPIO 吗? 我怎么能得到这个引脚的信息,特别是在其他引脚一般? 您能建议任何其他解决方案吗? 固件在 MCU1_0上运行

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

    您好!

    [quote userid="529315" url="~/support/processors-group/processors/f/processors-forum/1468308/tda4vp-q1-how-to-figure-out-all-the-modes-available-on-a-pin-and-can-a-timer-output-be-connected-to-any-gpio 我的理解是否正确、如果此处未提及任何模式、则在该引脚上是不可能的?

    是的、是这样。 每个焊球/引脚都将映射到有限数量的功能。 数据表(第5.2节引脚属性)中也指明了每个引脚的可能功能。

    此致、
    Kevin

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

    感谢您的答复。  我还有其他问题

    • 如何理解在给定内核上我可以使用哪些计时器模块。 例如、在本例中是 MCU1_0
    • 我在 ti/CSL/ip/timer/vi/ timer.h 文件中找到了一些 API 、并浏览了文档。 我认为我需要执行 以下步骤

     TIMERModeConfigure(CSL_MCU_TIMER0_CFG_BASE,TIMER_AUTORLD_CMP_ENABLE);
      
     TIMERCompareSet(CSL_MCU_TIMER0_CFG_BASE, COMPARE_VALUE_DEV_CTRL_TIMER);
       
     TIMERReloadSet(CSL_MCU_TIMER0_CFG_BASE, RELOAD_VALUE_DEV_CTRL_TIMER);
    
     TIMERIntEnable(CSL_MCU_TIMER0_CFG_BASE, TIMER_INT_MAT_EN_FLAG);
     
     TIMERIntEnable(CSL_MCU_TIMER0_CFG_BASE, TIMER_INT_OVF_EN_FLAG);
     
     TIMEREnable(CSL_MCU_TIMER0_CFG_BASE);

    我选择了 TIMER0。 但我 不确定它是否与任何特定的 MCU/域相关、或者是否可以从任何内核/域中使用。 我怎么能做到这一点。

    • 由于引脚上没有可用的 PWM、因此、我希望生成  比较和 重新加载中断并在 ISR 中进行 GPIO 切换。 但是、上述 API 不提供任何方法来为每个中断附加回调 ISR 函数、而仅用于启用中断。 您能给大家介绍一下如何连接 ISR 函数吗?
    • 我还观察到 timer.h 文件中有一个 API TIMERGPOConfigure()。 我不能从文档中完全确定其目的是什么。 这是否意味着 我可以配置我的  GPIO0_35 、以便它的状态可以直接由计时器控制?

    谢谢。 期待您的答复

    此致

    Deepankar Maithani

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何理解在给定内核上我可以使用哪些计时器模块。 例如、在本例中为 MCU1_0

    通过观察代码的缺口、 我们可以看到您正在使用 MCU_TIMER0。 建议查看器件 TRM"第12.9.3章"计时器"、您可以看到 TDA4VP 上有30个实例(MCU 域上10个、主域上20个)。 我建议查看随附的 XLS (J784S4_Registers_20240628.xlsx)文件选项卡 238_TIMER0、其中说明了所有基于地址和寄存器的说明。

    这样一来、任何内核都可以使用任何 计时器实例;然而、根据 SoC 架构、MCU 域内核应使用 MCU 域计时器。

    我认为我需要执行 以下步骤

    有。

    我随意选择了 TIMER0。 但我 不确定它是否与任何特定的 MCU/域相关、或者是否可以从任何内核/域中使用。 我怎么能做到这一点。

    作为系统集成商、您必须准确知道每个内核使用的资源/模块。  

    [报价 userid="529315" url="~/support/processors-group/processors/f/processors-forum/1468308/tda4vp-q1-how-to-figure-out-all-the-modes-available-on-a-pin-and-can-a-timer-output-be-connected-to-any-gpio/5636092 #5636092"]
    • 由于引脚上没有可用的 PWM、因此、我希望生成  比较和 重新加载中断并在 ISR 中进行 GPIO 切换。 但是、上述 API 不提供任何方法来为每个中断附加回调 ISR 函数、而仅用于启用中断。 您能给大家介绍一下如何连接 ISR 函数吗?
    • 我还观察到 timer.h 文件中有一个 API TIMERGPOConfigure()。 我不能从文档中完全确定其目的是什么。 这是否意味着 我可以配置我的  GPIO0_35 、以便它的状态可以直接由计时器控制?
    [报价]

    对于上述查询、我必须将此主题重新分配给 RTOS 驱动程序专家进行注释;我建议等待响应。

    谢谢。

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

    感谢您的答复。 将等待 RTOS 专家的响应。 您可能错过了其中一个问题。 在这里再次发布

    • 我还观察到 timer.h 文件中有一个 API TIMERGPOConfigure()。 我不能从文档中完全确定其目的是什么。 这是否意味着 我可以配置我的  GPIO0_35 、以便它的状态可以直接由计时器控制?

    您能回答这个问题吗?

    此致

    Deepankar Maithani

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

    Deepankar、

    [报价 userid="529315" url="~/support/processors-group/processors/f/processors-forum/1468308/tda4vp-q1-how-to-figure-out-all-the-modes-available-on-a-pin-and-can-a-timer-output-be-connected-to-any-gpio/5636092 #5636092"]
    • 由于引脚上没有可用的 PWM、因此、我希望生成  比较和 重新加载中断并在 ISR 中进行 GPIO 切换。 但是、上述 API 不提供任何方法来为每个中断附加回调 ISR 函数、而仅用于启用中断。 您能给大家介绍一下如何连接 ISR 函数吗?
    • 我还观察到 timer.h 文件中有一个 API TIMERGPOConfigure()。 我不能从文档中完全确定其目的是什么。 这是否意味着 我可以配置我的  GPIO0_35 、以便它的状态可以直接由计时器控制?
    [报价]

    我将对此进行详细介绍、并在明天提供和回应。

    谢谢!

    Neehar

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

    您好!

    由于引脚上没有可用的 PWM、我想生成  比较和 重新加载中断并在 ISR 中进行 GPIO 切换。 但是、上述 API 不提供任何方法来为每个中断附加回调 ISR 函数、而仅用于启用中断。 您能给我们提供一些有关如何连接 ISR 函数的建议吗?[/QUOT]

    可针对溢出、比较和捕获生成中断。  在创建 TimerP 实例时可以使用以下命令指定 ISR:

    TimerP_Handle TimerP_create (uint32_t id、TimerP_Fxn tickFxn、const TimerP_Params * timerParams)

    我还观察到 timer.h 文件中有一个 API TIMERGPOConfigure()。 我不能从文档中完全确定其目的是什么。 是否意味着 我可以配置  GPIO0_35 以便其状态可以直接由计时器控制?[/QUOT]

    此 API 仅用于设置 TCLR 寄存器中的 GPO_CFG 位、该位用于控制计时器功能中的可选功能。 根据 TRM:

    0h =计时器 IO 引脚用作 PWM 输出。
    1h =计时器 IO 引脚用作触发器输入。谢谢

    Neehar

    [/quote]