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.
工具与软件:
尊敬的 TI:
我们现在将 AM6548与 Linux RT SDK 配合使用、并且让我们的程序在 PRU 中运行。
下面是 IEP 设置、我们 对 PRU0_0和 PRU2_1使用 CT_IEP0。
void IEPTimer_init (void)
{
/*设置 PRU 同步到 VCLK 模式、时钟速度250MHz */
CT_CFG.CORE_SYNC_reg_bit.CORE_vbusp_sync_en = 1;
/*将250MHz 设置为同步模式、时钟为 IEP*/
CT_CFG.iepclk_reg_bit.IEP_OCP_clk_en = 1;
/*启用影子模式*/
IEPCounter.cmp_cfg_reg_bit.shadow_en = 1;
/*禁用计数器*/
IEPCounter.global_cfg_reg_bit.cnt_enable = 0;
/*复位计数寄存器*/
IEPCounter.count_reg0 = 0xFFFFFFFF;
IEPCounter.count_reg1 = 0xFFFFFFFF;
/*设置增量值*/
IEPCounter.global_cfg_reg_bit.default_inc = 4;
/*启用计数器*/
IEPCounter.global_cfg_reg_bit.cnt_enable = 0x1;
}
我的示例代码用于读取 IEP 的 counter reg。
#if 已定义(PRU0_0)
g_pHSIO -> SysInfo。 CycleTime_PRU0_0 = IEPCounter.count_reg0;
#else
g_pHSIO -> SysInfo。 CycleTime_PRU2_1 = IEPCounter.count_reg0;
#endif
你可以从下面的2张图片看到。 2个寄存器之间的数字在这里有很大的差距。
您能帮助说明一下为什么会发生这种情况吗?
Eric
ICSSG0和 ICSSG2与自己的 IEP 外设完全独立。 因此、 IEP 计数器值取决于加载固件和启动 PRU 的顺序、如何确保同步不同 ICSSG 实例的 PRU 内核?
我们尝试使用 PRU 来实现计数器、并希望使用 IEP 检查频率、以输出类似滤波器的功能。
但计数器看起来与2个 PRU 不同、并且结果非常不同。
Eric