大乐乐true 2022-01-19 22:26
浏览 188
已结题

请教:关于 STM32H7 EMMC 速度大于25MHz时读写失败问题?

问题遇到的现象和发生背景 :

硬件:STM32H745 DISCO,以及自己画的一块板子STM32H743
软件:STM32CubeMX + Keil MDK5
工程:ST官方例子(DISCO);以及CubeMX+Keil MDK5开发的读写程序,参考官方例子。
目标:运行50MHz或者更高频率,以8bit方式读写EMMC。
实际:25MHz、12.5MHz及更低频率可以正常读写,一旦频率高于25MHz即Fail。
log:显示器件超时。
详细描述:STM32H7 8bits读写EMMC测试时,当分频比大于等于4(输入200MHz,SDCLK = 200MHz/分频比/2)即时钟小于25MHz时可以正常读写;而当配置分频比为3、2(对应时钟为36/50MHz)时,EMMC可以初始化但是在写盘测试时Fail。

问题相关代码,请勿粘贴截图

MMCHandle->Init->ClockDiv =0//1//2//4; //4 OK, 0,1,2 fail

运行结果及报错内容

Buffer Size to write:100MB --error
通过Debug看到写命令的返回超时。

我的解答思路和尝试过的方法

1- 怀疑是不同的Speed档位需要额外配置?STM32文档中描述有Default Speed和High Speed,分别对应<=25MHz和50/104MHz,但是不清楚具体在哪里配置。CubeMX里没有找到。
2-怀疑是硬件焊接问题,但是原厂DISCO板子+原厂例程仅修改分频率,同样失败。判断非硬件故障。
3- 按照balibala的博文,48MHz SDMMC 时钟配和分频比=0,可以实现30~40MB/s的读写,已经超过了25MHz。看原博文并没有对速度进行什么配置,只是通过CubeMX进行了代码自动生成,并(1)改变了MMC_VOLTAGE_RANGE(改为eMMC_HIGH_)和(2)初始化后重配一下8bits bus width。
至此感觉十分迷惑,原博文里是怎么能跑到超过25MHz的?

我想要达到的结果

希望能够重复博文里面的操作实现超过25MB/s的读写速度。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 1月27日
    • 创建了问题 1月19日

    悬赏问题

    • ¥50 永磁型步进电机PID算法
    • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
    • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
    • ¥15 如何处理复杂数据表格的除法运算
    • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
    • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
    • ¥200 uniapp长期运行卡死问题解决
    • ¥15 latex怎么处理论文引理引用参考文献
    • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
    • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?