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.
您好!
我一直在使用 C2000Ware 中的 CAN 闪存编程器示例测试不同大小的程序引导到闪存所需的时间(通过向 LED 程序添加 nop 函数使其变大)。 对于大型程序(918KB 的输出文件)、下载到闪存并从闪存运行大约需要10-11分钟。 我最初感到困惑、因为根据 PCAN View、我以1Mbit/s 的速度运行。
传输内核和固件或将固件写入闪存所花费的时间最长是什么?
或者换句话说、是位速率/负载大小的限制因素(我可以更改的内容)还是写入闪存所需的时间(我不确定我可以更改的内容)?
我想提出问题、因为我想知道使用 MCAN/CAN FD 代替 DCAN/常规 CAN 是否可以缩短固件更新的时间?
谢谢。
爱玛
尊敬的 Emma:
> 是什么花费的大多数时间传输的内核和固件还是写入的固件到闪存?
内核发送后、当内核重新初始化 MCAN 时、主机将休眠5秒。 然后、当主机下载应用程序时、每帧将每个64个字节写入器件、等待100ms 让闪存 API 写入每个块。
>或者换句话说,是限制因素的比特率/有效负载大小(我可以改变的东西)还是它需要的时间写入闪存(我不确定我可以改变的东西)?
限制因素是写入闪存的时间。 我们可以提高比特率、但闪存仍需要适当的时间才能写入块。
> 我想问问、因为我想知道使用 MCAN/CAN FD 代替 DCAN/常规 CAN 是否会缩短固件更新的时间?
按照定义、 MCAN 将为数据传输提供更长的长度和更高的速度。 标称速率的速度可以在500kbps 至1Mbps 之间变化、数据速率可以在 1Mbps 至5Mbps 之间变化 。 MCAN 的另一个优势是比特率切换功能和更大的有效负载尺寸。 固件更新受到闪存 API 写入块所需时间的限制。 可以通过使用 Visual Studio 修改主机源代码来试验写入每个闪存 API 块所需的时间量、这样、您就可以看到它是否会降低整体传输速度。
谢谢。此致、
查尔斯
尊敬的 Charles:
感谢您的答复和提供的信息。
只是为了确定我理解、 在将每个64字节帧向下发送到处理器以编程到闪存之前、主机端程序有一个100毫秒的等待时间、您建议在 Visual Studio 项目中缩短这个100毫秒的等待时间、以查看我们是否可以得到整体编程时间缩短?
您知道为什么将此时间设置为100ms 吗? 只是一个任意值?
对于 JTAG、对相同的程序进行编程要快得多。 我想知道为什么在使用 CAN 闪存编程器时、如果对闪存块进行 编程是限制因素、为什么在使用 CAN 闪存编程器时其速度比使用 JTAG 慢很多?
再次感谢您的帮助!
爱玛
尊敬的 Emma:
是的、建议缩短时间。 我已经进行了测试、将 等待时间缩短到50ms、在 LED 闪烁示例中、该器件仍然可以正常运行。 时间通常设置为100毫秒、以确保传输的稳定性。 闪存 API 的时序可在器件数据表的第6.12.4.1节中找到、其中100ms 被列为8KB 扇区程序的最大时间。
与 JTAG 相比、我必须研究一下、看看可以为主机进行哪些优化。
我会向您更新我的发现。
谢谢。此致、
查尔斯
您好,Charles
我能够在把它修改为50ms 后重建它。
感谢您的参考和帮助!
-爱玛
尊敬的 Emma:
很高兴听到您可以重新构建项目。 暂时关闭此主题帖。
谢谢。此致、
查尔斯