记录一次TF卡不识别问题分析

问题现象描述

设备在插入TF卡时,TF卡不能识别,使用dmesg查看内核信息如下:

342961cf3d8fba9bc491c67e1ce24ddf.png


问题排查过程

从内核日志中可以看到,系统已经检测到TF卡插入,在数据通信过程中出错。针对该问题,进行了如下测试:

1.降低主机通信频率

SD卡正常通信频率为50MHz,降低通信频率20MHz、15MHz时TF卡依旧不能识别。最后,将TF卡通信频率降低为6MHz,此时问题现象变为TF卡概率性能够识别;但通信频率为6MHz时完全不能满足数据传输要求,因此不能采用降低通信频率的方式解决该问题。

1.缩短TF卡通信线长

由于结构限制,TF卡小板和主板使用FPC线进行连接,线长距离为16cm,当缩短线长为5cm时,TF在通信频率为20MHz情况下绝大部分能够识别。因此缩短线长的方式有效。但由于结构限制,TF卡小板和主板之间距离过长,因此不存在线长缩短的可能性。

1.增大驱动电流

系统

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在U-Boot中,要支持识别TF,需要进行以下配置: 1. 在U-Boot的配置文件(通常为.config或者include/configs/xxx.h)中,启用MMC/SD支持选项。例如: ``` #define CONFIG_MMC #define CONFIG_GENERIC_MMC #define CONFIG_SDHCI ``` 2. 配置TF所在的接口和引脚。例如: ``` #define CONFIG_MMCROOT /dev/mmcblk0p2 #define CONFIG_MMC_DEFAULT_DEV 0 #define CONFIG_ENV_IS_IN_MMC #define CONFIG_SYS_MMC_MAX_BLK_COUNT 65535 #define CONFIG_MMC_SDHCI #define CONFIG_MMC_SDHCI_IO_ACCESSORS #define CONFIG_FSL_ESDHC #define CONFIG_SYS_FSL_ESDHC_ADDR 0x12340000 #define CONFIG_SYS_FSL_ESDHC_HAS_DDR_MODE #define CONFIG_SYS_FSL_ESDHC_HAS_DDR50_SUPPORT #define CONFIG_SYS_FSL_ESDHC_HAS_SDR104_SUPPORT ``` 其中,`CONFIG_MMCROOT`表示要将TF挂载到哪个分区下;`CONFIG_MMC_DEFAULT_DEV`表示默认的SD设备编号;`CONFIG_ENV_IS_IN_MMC`表示U-Boot环境变量存储在SD中;`CONFIG_SYS_MMC_MAX_BLK_COUNT`表示一个SD块的最大数量;`CONFIG_MMC_SDHCI`表示使用SDHCI控制器驱动;`CONFIG_FSL_ESDHC`表示使用Freescale ESDHC控制器驱动;`CONFIG_SYS_FSL_ESDHC_ADDR`表示ESDHC控制器的物理地址。 3. 如果U-Boot中需要使用TF进行启动,则还需要配置引导参数。例如: ``` setenv bootargs console=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw ``` 其中,`root=/dev/mmcblk0p2`表示将TF的第2个分区作为根文件系统挂载;`rootwait`表示等待根文件系统挂载成功;`rw`表示以读写方式挂载根文件系统。 以上是在U-Boot中配置支持识别TF的方法。需要注意的是,不同的开发板和芯片可能需要不同的配置参数,具体请参考相关开发文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值