任何经验似乎仍然不足以回答串行通信总线中出现的那些奇怪问题。我们正在尝试将数据从外部闪存复制到 SRAM。以下是我们如何配置系统的详细信息。
- 控制器:RH850 (D1M1),PLL 速度为 60MHz
- 外部闪存 (IS25LP128)
- SPI 速度:5MHz(使用示波器观察的时钟)
- 数据大小:4 MB
现在,理论上,如果我的 SPI 以 5MHZ 运行,它应该复制 5MBits/Sec。我们正在尝试复制 4MB,因此基本上它将是 32 兆位。所以理论上,我们的传输应该需要大约 7 秒。好的,我们有一些隐含开销。我的驱动程序代码每次读取调用最多只能接受 64Kb,因此我们选择复制 40Kb 大约 100 次来实现这一点,然后我们在 for 循环中运行它。好吧,让我增加 5 秒的开销(抱歉 RH850!)所以总共12秒;好吧,让我们添加更多缓冲区,使其成为 15 秒的舒适区(最大预期!)。但是当我们运行代码时,完成复制需要整整 40 秒。我们检查了时钟,它是预期的 5MHz,至少它们是连续的。
这里有人遇到过吗?我们可以去哪里看?好吧,我知道我的供应商提供了一些闪存驱动程序可供研究,但在我这样做之前,我想确定一下!任何帮助将不胜感激。