ST意法半导体
直播中

李泳瑜

7年用户 1120经验值
私信 关注
[问答]

SDMMC3在STM32MP157F-EV1板上不工作怎么解决?

SDMMC3在 STM32MP157F-EV1 板上不工作。
我不确定出了什么问题。

我可以确认 SDMMC3_CK/CMD/D0 信号是通过示波器输入和输出的,
但是 SDMMC_FIFO 是空的。
以下代码是stm32mp1xx_hal_sd.c中SD_SendSDStatus函数的一部分
  • static uint32_t SD_SendSDStatus(SD_HandleTypeDef *hsd, uint32_t *pSDstatus)
  • {
  •   :
  •   :
  •   :
  •   /* Send ACMD13 (SD_APP_STAUS)  with argument as card's RCA */
  •   errorstate = SDMMC_CmdStatusRegister(hsd->Instance);
  •   if(errorstate != HAL_SD_ERROR_NONE)
  •   {
  •     hsd->ErrorCode |= HAL_SD_ERROR_NONE;
  •     return errorstate;
  •   }
  •   /* Get status data */
  •   while(!__HAL_SD_GET_FLAG(hsd, SDMMC_FLAG_RXOVERR | SDMMC_FLAG_DCRCFAIL | SDMMC_FLAG_DTIMEOUT | SDMMC_FLAG_DATAEND))
  •   {
  •     if(__HAL_SD_GET_FLAG(hsd, SDMMC_FLAG_RXFIFOHF))
  •     {
  •       for(count = 0U; count < 8U; count++)
  •       {
  •         *pData = SDMMC_ReadFIFO(hsd->Instance);    ★★★NOT REACHABLE!!!★★★
  •         pData++;
  •       }
  •     }
  •     if((HAL_GetTick() - tickstart) >=  SDMMC_DATATIMEOUT)
  •     {
  •       return HAL_SD_ERROR_TIMEOUT;
  •     }
  •   }
  •   :
  •   :
  •   :
  •   return HAL_SD_ERROR_NONE;
  • }

这些是使用的 SDMMC 终端。
- PF0:SDMMC3_D0(已修改)
- PF1:SDMMC3_CMD(默认)
- PG15:SDMMC3_CK(默认)
[笔记]
STM32CubeMX 自动生成
- PD1:SDMMC3_D0
- PF1:SDMMC3_CMD
- PG15:SDMMC3_CK











更多回帖

发帖
×
20
完善资料,
赚取积分