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.

[参考译文] TDA4VL-Q1:Gptimer

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1530038/tda4vl-q1-gptimer

器件型号:TDA4VL-Q1
主题中讨论的其他器件:J721EXCPXEVMJ721S2XSOMXEVM

工具/软件:

尊敬的 TI:

我刚刚将 Gpt_Start 计时器中的 countVal 设置为 960000U、日志将表明通道 6 的中断功能始终被触发。 我正在使用示例代码、我认为日志异常。  

如果我要每 20ms 触发一次中断函数、该怎么办?

PS: 示例代码: TI-PROCESSOR-SDK-RTOS-j721s2-EVM-10_01_00_04

PPS。 单次触发模式正常、只有连续模式存在一些问题。

非常感谢!!

Alice

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

    有人在那里吗? 我只想知道为什么修改参数会大量更改日志?

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

    您好、Alice:

    您指的是什么示例代码?

    i 刚刚将 Gpt_Start Timer 中的 countVal 设置为 960000U、日志将显示通道 6 的中断函数始终被触发。 我正在使用示例代码、我认为日志异常。  [/报价]

    什么是异常? 这段时间是否不符合您的预期?

    谢谢、

    Neehar

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

    亲爱的 Neehar、

    我正在使用 “ti-processor-sdk-rtos-j721s2-evm-10_01_00_04\mcusw\mcal_drv\mcal\examples\gptApp.c"作为“作为示例代码。

    我认为周期与我预期的相同、但我不明白为什么 GPT_CH_MODE_Continuous 在更改 countval 后的行为不同(它只在周期较长时触发一次,在周期缩短 100 次后重复触发(如日志中所示)。 如果我想使用计时器控制 CAN 传输(每 20ms 发送一次消息)、是否会有任何影响?

    谢谢!!

    Alice

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

    您好、Alice:

    让我通过此示例进行检查和测试、稍后我会回复您。

    谢谢、

    Neehar

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

    您好! 是否有任何更新?

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

    您好、Alice:

    我要咨询 MCAL 专家来了解此操作。 我会在有更新时跟进。

    谢谢、

    Neehar

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

    您好、Alice、

    [引述 userid=“644089" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1530038/tda4vl-q1-gptimer/5893054 #5893054“]

    我正在使用 “ti-processor-sdk-rtos-j721s2-evm-10_01_00_04\mcusw\mcal_drv\mcal\examples\gptApp.c"作为“作为示例代码。

    我认为周期与我预期的相同、但我不明白为什么 GPT_CH_MODE_Continuous 在更改 countval 后的行为不同(它只在周期较长时触发一次,在周期缩短 100 次后重复触发(如日志中所示)。 如果我想使用计时器控制 CAN 传输(每 20ms 发送一次消息)、是否会有任何影响?

    [/报价]

    您运行的是默认示例吗?

    i 刚刚将 Gpt_Start Timer 中的 countVal 设置为 960000U、日志将显示通道 6 的中断函数始终被触发。 我正在使用示例代码、我认为日志异常。  [/报价]

    该值的计算公式如下

    值= * 

    晶体频率为 19.2MHz 如果您使用 TI EVM、则频率不是 25MHz

    您可以计算出 19.2MHZ * 20ms 的值

    TLDR 寄存器中应加载 FFFF FFFF — 值(以十六进制表示)

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

    尊敬的 Tarun:

    1.是的,我刚刚下载了 PSDK 并编译了二进制文件,所以我想我是直接运行了默认示例。

    2.我不确定如何知道 TLDR 寄存器加载了 FFFF FFFF、但我认为默认示例设置为正确的值?

    3.这是我提出的另一个问题。 我已使用该公式计算周期、但存在一些意外错误。 我的问题主要是关于 GPT&CAN、而不仅仅是 周期设置。

    链接: TDA4VL-Q1:CAN&Gptimer — 处理器论坛-处理器 — TI E2E 支持论坛

    谢谢!!

    Alice

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

    您好 Alice、

    默认示例设置为~6 秒。但您更改了该值。

    I just set countVal in Gpt_Start Timer to 960000U

    您使用的是 TI EVM 还是定制板? 正如我之前说过的、它会随着晶体频率的变化而变化。

    [引述 userid=“644089" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1530038/tda4vl-q1-gptimer/5905165 #5905165“]

    3.这是我提出的另一个问题。 我已使用该公式计算周期、但存在一些意外错误。 我的问题主要是关于 GPT&CAN、而不仅仅是 周期设置。

    链接: TDA4VL-Q1:CAN&Gptimer — 处理器论坛-处理器 — TI E2E 支持论坛

    [/报价]

    让我检查一下这个主题并进行回复。

    此致

    Tarun Mukesh

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

    尊敬的 Tarun:

    1.不,我只是把默认值减两个零(减少 100 倍),所以不允许该值不能除以 19.2 吗? 我认为这只是时间不是那么准确(不会影响其他功能)?

    2.我使用 J721S2XSOMXEVM 作为 CPU 板、使用 J721EXCPXEVM 作为通用处理器板。 我认为 clk 也是 19.2MHz?

    谢谢!!

    Alice

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

    您好 Alice、

    。 不,我只是把默认值减少了两个零(减少了 100 倍),所以不允许这个值不能被 19.2 除? 我认为这只是时间不是那么准确(不会影响其他功能)?

    它应该只影响时间、但不影响任何功能。 如果您改回 96000000、它是否正常工作?

    我在末端为通道 6 运行了示例

    GPT_APP------------------------------------------
    GPT_APP: GPT Channel 6 configuration register values  
    GPT_APP TIMER_TIDR         : 0x50003900
    GPT_APP TIMER_TTGR         : 0xffffffff
    GPT_APP TIMER_TSICR        : 0x0
    GPT_APP TIMER_TIOCP_CFG    : 0xa
    GPT_APP TIMER_TCLR         : 0x0
    ------------------------------------------
    GPT_APP: Running GPT Test for channel 6
    ------------------------------------------
    GPT_APP: Enabled notification for channel [6]
    GPT_APP: Started Timer Channel [6]
    GPT_APP: Elapsed Time Value = adaf4
    GPT_APP: Wait for notification(approx. 6 seconds)
    GPT_APP: GPT Notification received for channel 6 !!!
    
    GPT_APP: Disable channel notification for this channel
    GPT_APP: Wait till timer overflows, no notification should be received
    GPT_APP: Time Elapsed Value = 0x36dc6e
    GPT_APP: Time Remaining Value = 0x575f3e8
    GPT_APP: Waiting for timer to overflow
    GPT_APP: Overflow happened no notification received
    
    GPT_APP: Stopped for channel 6
    GPT_APP: Enable wakeup for this channel
    GPT_APP: Started timer channel [6]
    GPT_APP: check if this channel is wakeup source for any wakeup event
     EcuM : Wakeup event received for wakeupSource =2 !!!
    GPT_APP: Woken up for channel [6]
    GPT_APP: Stop timer 
    GPT_APP: GPT example passed for channel =6 !!!

    没有问题。

    此致

    Tarun Mukesh

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

    Alice、

    默认情况下、通道 6 处于 连续模式、仅运行 GPT 示例、您可以理解、我认为您对应用进行了一些更改、导致您最终遇到了一些问题、

    此致

    Tarun Mukesh

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

    尊敬的 Tarun:

    我想我知道为什么改变数值会使它们的行为有所不同。

    1、设置为 4.77s (96000000) 时、它将在下一个中断之前停止计时器。

    2、设置为 0.048s(9600) 时,线程无法在 main 和 timer 之间及时切换,因此会反复触发。

    我是对的吗?

    谢谢!!

    Alice

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

    您好 Alice、

    示例应用程序中写入的延迟为 1 秒。

    AppUtils_delay (1000U);
     
    设置为 0.048s(9600) 时、线程无法在 main 和 timer 之间及时切换、因此将反复触发。

    我怀疑是一样的,因为申请是写 6 秒 在您的时间内、它无法禁用通知并继续操作。

    此致

    Tarun Mukesh