主题:TCAN1043 中讨论的其他器件
工具/软件:
您好、
我们的客户要求我们产品从唤醒到发出 CAN 数据包的时间小于 300ms、
我们的实际测试约为 480ms。
测试 M4F 内核的启动并发送 CAN 数据包需要 119ms 时间、
这意味着 TI AM62 芯片需要 360ms 的时间来唤醒和启动 M4F 内核。
我的问题是如何在本例中缩短 360ms 的时间?
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.
工具/软件:
您好、
我们的客户要求我们产品从唤醒到发出 CAN 数据包的时间小于 300ms、
我们的实际测试约为 480ms。
测试 M4F 内核的启动并发送 CAN 数据包需要 119ms 时间、
这意味着 TI AM62 芯片需要 360ms 的时间来唤醒和启动 M4F 内核。
我的问题是如何在本例中缩短 360ms 的时间?
您好、Walter
建议您描述更多细节。
“示例类似“。
主要问题:
当 AM62x 处于深度睡眠模式时、如何在 300ms 内缩短 CAN 响应 (ACK) 时间?
(MCUSS 的周期 A + AM62 唤醒时间+ 周期 B = 300ms)
当前您的状态:
MCUSS 的周期 A + AM62 唤醒时间+周期 B = 480ms、特别是(MCUSS 的周期 A + AM62 唤醒时间)= 119ms
您的要求:
是否可以缩短 周期 A?
是否可以缩短 周期 B?
是否可以缩短 MCUSS 的 AM62 唤醒时间?
建议您描述更多详细信息、比如问题。
(1) 您的 CAN PHY 芯片是什么? PHY 如何唤醒 AM62?
(2) 什么是相关的硬件连接?
(3) 当第一个 CAN 切换信号时、用于 MCUSS 唤醒的任何 UART 日志?
...等等
谢谢
Gibbs
嗨、Gibbs
我们使用 TCAN1043 作为 CAN 收发器。下面我简单介绍一下如何运行测试脚本、
1.将产品置于睡眠状态(包括 AM62)
2.记录启动时间,拉 IGN 接通(一个 GPIO 唤醒源)
3、记录接收 CAN 消息第一帧时的结束时间(产品开机后将自动发送 CAN 消息)
我们测量的时间差是 480 毫秒、假设这是时间 a
通过修改代码、我在 M4F 主函数中初始化 GPIO 时默认生成 GPIO、
发送 CAN 数据后降低 GPIO。 上拉 GPIO 的周期是时间
从 M4F 内核的主函数开始到 CAN 数据的第一帧成功传输。
逻辑分析仪获得的时间为 119ms、假定为时间 B
时间 A (480)-时间 B (119)=时间 C (361ms)
总之、我们希望缩短时间 C、即 AM62 接收到唤醒电平与 M4F 内核运行到主函数之间的时间
您好 Walter、
对于此用例、使用 SPL 和 eMMC 是否有任何特殊原因? 您可以使用 SBL OSPI 的组合、因为与使用 SPL 相比、该组合更具可定制性。 我们有一份使用 SBL 引导流程在 Processor SDK 中优化引导时的指南: https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/10_01_10_04/exports/docs/linux/How_to_Guides/Target/How_to_boot_quickly.html#measurements
本节还提供优化引导流程的引导时间测量: https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/10_01_10_04/exports/docs/linux/How_to_Guides/Target/How_to_boot_quickly.html#measurements
此致、
会面。
您好 Walter、
使用 SBL 引导模式将无法实现低功耗模式(包括深度睡眠)。 目前、LPM 仅适用于 SPL 引导。
减少挂起和恢复延迟的最简单方法是删除未使用的 Linux 内核驱动程序。 默认的 Linux SDK 将启用尽可能多的驱动程序、以便通过 Linux 内核驱动程序和模块来启用。
我不知道有任何方法可以比 M4F MCU 恢复速度更快。 设置 M4F MCU PLL 所需的时间大部分是静态的。
此致、
Anshu
您好 Walter
有几个问题、需要 仔细检查
(1) 时间 A (480ms) 的定义、步骤如下:
您的 ECU(包括 AM62)已处于“深度睡眠模式“-> ECU 从车辆获取 IGN 信号->触发 AM62 GPIO -> AM62 启动唤醒-> AM62 发送第一个 CAN 帧
是否正确?
(2) 时间 B 的定义 (119 ms)
“AM62 唤醒时间“包括“MCU 应用启动时间“、我是否可以说 119ms 表示 MCU 应用在发送第一个帧之前的执行时间?
嗨、Anshu
点击此链接、这是一个从深度睡眠状态唤醒的 GPIO 示例。
红色:进入深度睡眠
黄色:MCU GPIO 触发后、退出深度睡眠
唤醒时间= 84.571991 - 84.374566 = 0.197425 = 197ms、正确吗?
如果基于我们具有 GPIO 唤醒功能的默认 Linux 示例、在这种情况下、MCU 如何唤醒和执行?
非常感谢
Gibbs
您好:
唤醒时间= 84.571991 - 84.374566 = 0.197425 = 197ms、是否正确?
是、这是正确的。 最后我进行了一个快速测试、结果恢复时间约为 192ms。
然后、我对仅 MCU 模式进行了类似的测试、得到的恢复时间为 176ms。
仅 MCU 模式和深度睡眠模式之间的唯一区别是 MCU M4F 内核保持在线状态。 更具体地说、MCU_PLL 和 MCU_HFOSC 在仅 MCU 模式下保持在线、但在深度睡眠模式下关闭。
这意味着启动 MCU M4F 内核的过程约为 16ms、这应该是一个静态数字。 根据在 MCU 上恢复应用、可能会有一些延迟、但这会因情况而异。
唤醒源不应影响唤醒延迟。
此致、
Anshu
嗨、Gibbs、
我们进行了一些延迟测试、我们将在这里分享结果。
唤醒源-> M4F MCU 固件
第一项测试是检查从唤醒源到 M4 MCU 固件开始的延迟。 这一过程花费了 282.176ms
蓝色信号是 PMIC_LPM_EN 信号、当 SoC 唤醒时该信号从低电平变为高电平。 此信号反馈到 TI EVM 上的 PMIC。
橙色信号是在 M4F MCU 执行时设置为高电平的 GPIO。 此 GPIO 表示 MCU 固件的启动。
这两个事件之间的时间为 282ms。
唤醒源->无打印语句的 M4F MCU 固件
将语句打印到内核日志会增加恢复进程的延迟。 因此我们删除了 PRINT 语句并执行了相同的测试。
在这种情况下、唤醒事件和 MCU M4F 固件启动之间的延迟为 115.64ms。
如何禁用/减少打印语句?
有两种方法可以做到这一点:
# Detach kernel serial console consoles=$(find /sys/bus/platform/devices/*.serial/ -name console) for console in ${consoles}; do echo -n N > ${console} done
现在、 M4F 固件恢复的目标延迟是多少?
我们需要知道具体的目标编号。
此致、
Anshu