硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1459|回复: 23
收起左侧

[SD/SDIO] 问题求助,SD卡模拟U盘,出什么问题了?

[复制链接]

3

主题

41

回帖

50

积分

初级会员

积分
50
发表于 2021-11-9 18:08:03 | 显示全部楼层 |阅读模式
STM32H743ZITx芯片,按照Keil目录下自带的“MassStorage”例子修改的程序。能识别U盘,但容量是0。不知道问题出在哪里了,请指点迷津。无法上传图片,不知道怎么回事。

回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-9 19:19:33 | 显示全部楼层
无法上传图片,是因为积分不够么?有谁知道。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-11-9 19:29:30 | 显示全部楼层
这个有个接口文件,你的接口文件是否有问题,参考下我的。

基于STM32H7的RTX5+RL-USB+RL-FlashFS+RL-TCPnet+emWin6.x综合模板发布,含MDK AC5和AC6,升级至V1.1(2021-03-01)
http://www.armbbs.cn/forum.php?m ... 4012&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-9 21:44:50 | 显示全部楼层
eric2013 发表于 2021-11-9 19:29
这个有个接口文件,你的接口文件是否有问题,参考下我的。

基于STM32H7的RTX5+RL-USB+RL-FlashFS+RL-TCP ...

您的例程也看过了。没有找到明显的问题点。明天再试试。
回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-12 12:17:04 | 显示全部楼层
"The event ReadXferSetupError is generated when MCI driver fails to setup the read transfer parameters."

这里好像出问题了,哪位知道是什么原因引起的呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-11-12 12:29:04 | 显示全部楼层
jasondong388 发表于 2021-11-12 12:17
"The event ReadXferSetupError is generated when MCI driver fails to setup the read transfer paramete ...

出错了,下次重新读取会一直失败吗
回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-12 13:29:40 | 显示全部楼层
每次都是这样,比较固定。这时USB Cable还没有插呢,应该是FlashFS和MCi过程当中的某个点不太对吧?这个问题该怎么着手分析呢……
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2021-11-12 13:45:31 | 显示全部楼层
先看mx_device.h这个文件配置的对不对,
回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-12 14:28:18 | 显示全部楼层
a13421364618 发表于 2021-11-12 13:45
先看mx_device.h这个文件配置的对不对,

/******************************************************************************
* File Name   : MX_Device.h
* Date        : 12/11/2021 10:05:49
* Description : STM32Cube MX parameter definitions
* Note        : This file is generated by STM32CubeMX (DO NOT EDIT!)
******************************************************************************/

#ifndef __MX_DEVICE_H
#define __MX_DEVICE_H

/*---------------------------- Clock Configuration ---------------------------*/

#define MX_LSI_VALUE                            32000
#define MX_LSE_VALUE                            32768
#define MX_HSI_VALUE                            64000000
#define MX_HSE_VALUE                            25000000
#define MX_EXTERNAL_CLOCK_VALUE                 12288000
#define MX_PLLDSIFreq_Value                     500000000
#define MX_SYSCLKFreq_VALUE                     400000000
#define MX_HCLKFreq_Value                       200000000
#define MX_CortexFreq_Value                     400000000
#define MX_APB1Freq_Value                       100000000
#define MX_APB2Freq_Value                       100000000
#define MX_CECFreq_Value                        32000
#define MX_RTCFreq_Value                        32000
#define MX_USBFreq_Value                        48000000
#define MX_WatchDogFreq_Value                   32000
#define MX_DSIFreq_Value                        96000000
#define MX_DSIPHYCLKFreq_Value                  96000000
#define MX_DSITXEscFreq_Value                   20000000
#define MX_SPDIFRXFreq_Value                    160000000
#define MX_MCO1PinFreq_Value                    64000000
#define MX_MCO2PinFreq_Value                    400000000

/*-------------------------------- CORTEX_M7  --------------------------------*/

#define MX_CORTEX_M7                            1

/* GPIO Configuration */

/*-------------------------------- DEBUG      --------------------------------*/

#define MX_DEBUG                                1

/* GPIO Configuration */

/* Pin PA14 (JTCK/SWCLK) */
#define MX_DEBUG_JTCK_SWCLK_Pin                 PA14_JTCK_SWCLK

/* Pin PA13 (JTMS/SWDIO) */
#define MX_DEBUG_JTMS_SWDIO_Pin                 PA13_JTMS_SWDIO

/*-------------------------------- SDMMC1     --------------------------------*/

#define MX_SDMMC1                               1

/* GPIO Configuration */

/* Pin PC8 */
#define MX_SDMMC1_D0_Pin                        PC8
#define MX_SDMMC1_D0_GPIOx                      GPIOC
#define MX_SDMMC1_D0_GPIO_PuPd                  GPIO_NOPULL
#define MX_SDMMC1_D0_GPIO_Speed_High_Default    GPIO_SPEED_FREQ_VERY_HIGH
#define MX_SDMMC1_D0_GPIO_Pin                   GPIO_PIN_8
#define MX_SDMMC1_D0_GPIO_AF                    GPIO_AF12_SDIO1
#define MX_SDMMC1_D0_GPIO_Mode                  GPIO_MODE_AF_PP

/* Pin PD2 */
#define MX_SDMMC1_CMD_Pin                       PD2
#define MX_SDMMC1_CMD_GPIOx                     GPIOD
#define MX_SDMMC1_CMD_GPIO_PuPd                 GPIO_NOPULL
#define MX_SDMMC1_CMD_GPIO_Speed_High_Default   GPIO_SPEED_FREQ_VERY_HIGH
#define MX_SDMMC1_CMD_GPIO_Pin                  GPIO_PIN_2
#define MX_SDMMC1_CMD_GPIO_AF                   GPIO_AF12_SDIO1
#define MX_SDMMC1_CMD_GPIO_Mode                 GPIO_MODE_AF_PP

/* Pin PC9 */
#define MX_SDMMC1_D1_Pin                        PC9
#define MX_SDMMC1_D1_GPIOx                      GPIOC
#define MX_SDMMC1_D1_GPIO_PuPd                  GPIO_NOPULL
#define MX_SDMMC1_D1_GPIO_Speed_High_Default    GPIO_SPEED_FREQ_VERY_HIGH
#define MX_SDMMC1_D1_GPIO_Pin                   GPIO_PIN_9
#define MX_SDMMC1_D1_GPIO_AF                    GPIO_AF12_SDIO1
#define MX_SDMMC1_D1_GPIO_Mode                  GPIO_MODE_AF_PP

/* Pin PC10 */
#define MX_SDMMC1_D2_Pin                        PC10
#define MX_SDMMC1_D2_GPIOx                      GPIOC
#define MX_SDMMC1_D2_GPIO_PuPd                  GPIO_NOPULL
#define MX_SDMMC1_D2_GPIO_Speed_High_Default    GPIO_SPEED_FREQ_VERY_HIGH
#define MX_SDMMC1_D2_GPIO_Pin                   GPIO_PIN_10
#define MX_SDMMC1_D2_GPIO_AF                    GPIO_AF12_SDIO1
#define MX_SDMMC1_D2_GPIO_Mode                  GPIO_MODE_AF_PP

/* Pin PC11 */
#define MX_SDMMC1_D3_Pin                        PC11
#define MX_SDMMC1_D3_GPIOx                      GPIOC
#define MX_SDMMC1_D3_GPIO_PuPd                  GPIO_NOPULL
#define MX_SDMMC1_D3_GPIO_Speed_High_Default    GPIO_SPEED_FREQ_VERY_HIGH
#define MX_SDMMC1_D3_GPIO_Pin                   GPIO_PIN_11
#define MX_SDMMC1_D3_GPIO_AF                    GPIO_AF12_SDIO1
#define MX_SDMMC1_D3_GPIO_Mode                  GPIO_MODE_AF_PP

/* Pin PC12 */
#define MX_SDMMC1_CK_Pin                        PC12
#define MX_SDMMC1_CK_GPIOx                      GPIOC
#define MX_SDMMC1_CK_GPIO_PuPd                  GPIO_NOPULL
#define MX_SDMMC1_CK_GPIO_Speed_High_Default    GPIO_SPEED_FREQ_VERY_HIGH
#define MX_SDMMC1_CK_GPIO_Pin                   GPIO_PIN_12
#define MX_SDMMC1_CK_GPIO_AF                    GPIO_AF12_SDIO1
#define MX_SDMMC1_CK_GPIO_Mode                  GPIO_MODE_AF_PP

/* NVIC Configuration */

/* NVIC SDMMC1_IRQn */
#define MX_SDMMC1_IRQn_interruptPremptionPriority 0
#define MX_SDMMC1_IRQn_PriorityGroup            NVIC_PRIORITYGROUP_4
#define MX_SDMMC1_IRQn_Subriority               0

/*-------------------------------- SYS        --------------------------------*/

#define MX_SYS                                  1

/* GPIO Configuration */

/*-------------------------------- USB_OTG_FS --------------------------------*/

#define MX_USB_OTG_FS                           1

#define MX_USB_OTG_FS_DEVICE                    1

/* GPIO Configuration */

/* Pin PA11 */
#define MX_USB_OTG_FS_DM_GPIO_Speed             GPIO_SPEED_FREQ_LOW
#define MX_USB_OTG_FS_DM_Pin                    PA11
#define MX_USB_OTG_FS_DM_GPIOx                  GPIOA
#define MX_USB_OTG_FS_DM_GPIO_PuPd              GPIO_NOPULL
#define MX_USB_OTG_FS_DM_GPIO_Pin               GPIO_PIN_11
#define MX_USB_OTG_FS_DM_GPIO_AF                GPIO_AF10_OTG1_FS
#define MX_USB_OTG_FS_DM_GPIO_Mode              GPIO_MODE_AF_PP

/* Pin PA12 */
#define MX_USB_OTG_FS_DP_GPIO_Speed             GPIO_SPEED_FREQ_LOW
#define MX_USB_OTG_FS_DP_Pin                    PA12
#define MX_USB_OTG_FS_DP_GPIOx                  GPIOA
#define MX_USB_OTG_FS_DP_GPIO_PuPd              GPIO_NOPULL
#define MX_USB_OTG_FS_DP_GPIO_Pin               GPIO_PIN_12
#define MX_USB_OTG_FS_DP_GPIO_AF                GPIO_AF10_OTG1_FS
#define MX_USB_OTG_FS_DP_GPIO_Mode              GPIO_MODE_AF_PP

/*-------------------------------- NVIC       --------------------------------*/

#define MX_NVIC                                 1

/*-------------------------------- GPIO       --------------------------------*/

#define MX_GPIO                                 1

/* GPIO Configuration */

#endif  /* __MX_DEVICE_H */

回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-12 15:40:05 | 显示全部楼层
这段话是关键:when MCI driver fails to setup the read transfer parameters。但是怎么查呢……
回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-12 16:21:43 | 显示全部楼层
微信截图_20211112161904.png 微信截图_20211112161936.png

这是还没有连接Cable之前的状态。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-11-13 09:06:21 | 显示全部楼层
jasondong388 发表于 2021-11-12 16:21
这是还没有连接Cable之前的状态。

分享你的工程到百度云。
回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-13 09:44:10 | 显示全部楼层
本帖最后由 jasondong388 于 2021-11-13 09:54 编辑
eric2013 发表于 2021-11-13 09:06
分享你的工程到百度云。

先谢谢老大。公司网络有限制,我想想办法。今天把自己项目的每个子目录下的文件和MassStorage的相应文件作比较,暂时还没有发现问题。
回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-13 10:43:18 | 显示全部楼层
eric2013 发表于 2021-11-13 09:06
分享你的工程到百度云。

链接: https://pan.baidu.com/s/1UeSo3Ah_QvhblAqRd6p2iQ 提取码: h4yf

老大,请您过目。另外,请教一下,这个问题看起来像是硬件的问题么?
回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-13 10:58:18 | 显示全部楼层
有一个发现,就是参考代码有一段代码在main.c中,而有问题的项目该代码在缺省位置stm32h7xx_hal_msp.c中,这会带来问题么?

void PeriphCommonClock_Config(void)
{
  RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};

  /** Initializes the peripherals clock
  */
  PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB|RCC_PERIPHCLK_CKPER;
  PeriphClkInitStruct.PLL3.PLL3M = 25;
  PeriphClkInitStruct.PLL3.PLL3N = 336;
  PeriphClkInitStruct.PLL3.PLL3P = 2;
  PeriphClkInitStruct.PLL3.PLL3Q = 7;
  PeriphClkInitStruct.PLL3.PLL3R = 2;
  PeriphClkInitStruct.PLL3.PLL3RGE = RCC_PLL3VCIRANGE_0;
  PeriphClkInitStruct.PLL3.PLL3VCOSEL = RCC_PLL3VCOWIDE;
  PeriphClkInitStruct.PLL3.PLL3FRACN = 0;
  PeriphClkInitStruct.CkperClockSelection = RCC_CLKPSOURCE_HSE;
  PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_PLL3;
  if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
  {
    Error_Handler();
  }
}
回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-13 14:59:24 | 显示全部楼层
jasondong388 发表于 2021-11-13 10:58
有一个发现,就是参考代码有一段代码在main.c中,而有问题的项目该代码在缺省位置stm32h7xx_hal_msp.c中, ...

跟这个应该没啥关系。

https://community.st.com/s/quest ... adc-clocked-by-pll3
回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-13 17:32:17 | 显示全部楼层
试了几个例程,报错主要两个:EvrFsMcMCI_ReadXferSetupError,EvrFsMcMCI_WriteXferSetupError。感觉很典型了。
回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-13 17:34:20 | 显示全部楼层
CID信息:

Manufacturer ID: 3 (0x03)
OEM/Application ID: SD
Product name: G61CS
Product revision: 8.0
Product serial number: 0xD5C1AC13
Manufacturing date: 1/21
回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-13 17:37:11 | 显示全部楼层
MCI driver fails to setup the read/write transfer parameters
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-11-14 08:53:50 | 显示全部楼层
jasondong388 发表于 2021-11-13 10:43
链接: https://pan.baidu.com/s/1UeSo3Ah_QvhblAqRd6p2iQ 提取码: h4yf

老大,请您过目。另外,请教一 ...

初步看了下你的工程,注意这个CMSIS-Driver SDMMC驱动有使用DMA,你要配置下你的MPU Cache
回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-14 13:34:09 | 显示全部楼层
eric2013 发表于 2021-11-14 08:53
初步看了下你的工程,注意这个CMSIS-Driver SDMMC驱动有使用DMA,你要配置下你的MPU Cache

好的,我试一下。
回复

使用道具 举报

3

主题

41

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-11-19 11:11:52 | 显示全部楼层
问题已经解决了,最终会归结到“Locate Drive Cahe and Drive Buffer”设置这里。尤其是在开启Cache和MPU设置之后。一定要避免冲突。特别感谢硬汉老大的引导和支持。就此结束这个Case。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-11-19 12:06:29 | 显示全部楼层
jasondong388 发表于 2021-11-19 11:11
问题已经解决了,最终会归结到“Locate Drive Cahe and Drive Buffer”设置这里。尤其是在开启Cache和MPU设 ...

好的,谢谢告知最终原因。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-16 01:47 , Processed in 0.235631 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表