CH573F SPI调试分享,顺带请技术支持发模拟U盘的程序(USB+W25Q16)给我

  //SPI调试总结:

  //把时钟设置为30MHz,传输一个字节为0.3us。

  //我发现CH573指令运行速度很慢,直接FIFO赋值8个字节时,已经有3字节传输完成,R8_SPI0_FIFO_COUNT==5

  //当使用while或for循环指令时,空循环里面只发一个FIFO赋值,一个循环就有1-2us,所以可以直接FIFO赋值,不用担心溢出。

  //使用DMA时,要注意使用内存地址循环时,会一直发数据以保持FIFO为满,当R16_SPI0_TOTAL_CNT为0时,FIFO还是满的,有8个数据在FIFO未发送

  //当下一次开启SPI发送时会发现前8个数据不对,第9个数据才是要发送的第1个数据

  //在使用DMA内存地址不循环时,要保证R16_SPI0_DMA_END-R16_SPI0_DMA_BEG=R16_SPI0_TOTAL_CNT,否则也行出现上面的问题。

  //因为DMA只能对内存操作,而且CH573指令运行速度慢,一般传送非相同字节用DMA没有意义。

以上是我调试SPI的总结,如有不对,望大师指证。

我的邮箱:个人信息保护,已隐藏


573在Flash中运行的代码是大概只有60/8Mhz,如果想运行的快一点,RAM足够,可以把代码运行RAM里面。
函数前加__attribute__((section(".highcode")))  当前函数就在RAM里面运行


我也需要,CH573F 模拟U盘的程序(USB+W25Q16)邮箱:个人信息保护,已隐藏 


只有登录才能回复,可以选择微信账号登录