IMX8MP SD 卡检测问题 我正在测试 imx8mp 客户主板中的 SD2 接口,我们添加了示意图,如下图所示,并在与主板 dts 相关的部分中配置了以下 dts。根据EVK操作,电路板在数据传输期间在3.3V至1.8V操作之间切换。 在这里,我使用下面的开关电源 VSD_3V3 代替 NVCC_SD2 进行测试,但问题仍然相同 [32m[ 100.362225] [0m[33mmmc1: [0mnew high speed SDHC card at address aaaa [32m[ 100.385895] [0m[33mmmcblk1: [0mmmc1:aaaa SC16G 14.8 GiB [32m[ 100.564120] [0m[33mblk_print_req_error:[0m[1m26 callbacks suppressed[0m [32m[ 100.564134] [0m[31mI/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2[0m [32m[ 100.580241] [0m[31mI/O error, dev mmcblk1, sector 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2[0m [32m[ 100.591337] [0m[31mI/O error, dev mmcblk1, sector 2 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2[0m [32m[ 100.602404] [0m[31mI/O error, dev mmcblk1, sector 3 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2[0m [32m[ 100.613143] [0m[31mI/O error, dev mmcblk1, sector 4 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2[0m [32m[ 100.624228] [0m[31mI/O error, dev mmcblk1, sector 5 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2[0m [32m[ 100.635931] [0m[31mBuffer I/O error on dev mmcblk1, logical block 0, async page read[0m [32m[ 100.646682] [0m[31mI/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2[0m [32m[ 100.657404] [0m[31mI/O error, dev mmcblk1, sector 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2[0m [32m[ 100.668140] [0m[31mI/O error, dev mmcblk1, sector 2 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2[0m [32m[ 100.678885] [0m[31mI/O error, dev mmcblk1, sector 3 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2[0m [32m[ 100.690432] [0m[31mBuffer I/O error on dev mmcblk1, logical block 0, async page read[0m [32m[ 100.697621] [0m[33m mmcblk1: [0munable to read partition table [32m[ 100.902422] [0m[31mBuffer I/O error on dev mmcblk1, logical block 0, async page read[0m [32m[ 132.961163] [0m[33mblk_print_req_error:[0m[1m14 callbacks suppressed[0m [32m[ 132.961176] [0m[31mI/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 2[0m [32m[ 132.977620] [0m[31mI/O error, dev mmcblk1, sector 1 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 2[0m [32m[ 132.988707] [0m[31mI/O error, dev mmcblk1, sector 2 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 2[0m [32m[ 133.000141] [0m[31mI/O error, dev mmcblk1, sector 3 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 2[0m [32m[ 133.011574] [0m[31mI/O error, dev mmcblk1, sector 4 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 2[0m [32m[ 133.022661] [0m[31mI/O error, dev mmcblk1, sector 5 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 2[0m [32m[ 133.047531] [0m[31mI/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2[0m [32m[ 133.056334] [0m[31mI/O error, dev mmcblk1, sector 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2[0m [32m[ 133.067411] [0m[31mI/O error, dev mmcblk1, sector 2 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2[0m [32m[ 133.078414] [0m[ 133.07841431mI/O 错误,dev mmcblk1,扇区 3 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2[0m [32m[ 133.089985] [0m[31mBuffer I/O error on dev mmcblk1, logical block 0, async page read[0m [32m[ 133.102686] [0m[31mBuffer I/O error on dev mmcblk1, logical block 0, async page read[0m [32m[ 133.113104] [0m[31mBuffer I/O error on dev mmcblk1, logical block 0, async page read[0m [32m[ 133.124708] [0m[31mBuffer I/O error on dev mmcblk1, logical block 0, async page read[0m [32m[ 133.135332] [0m[31mBuffer I/O error on dev mmcblk1, logical block 0, async page read[0m [32m[ 133.147595] [0m[31mBuffer I/O error on dev mmcblk1, logical block 0, async page read[0m [32m[ 133.159816] [0m[31mBuffer I/O error on dev mmcblk1, logical block 0, async page read[0m [32m[ 133.172050] [0m[31mBuffer I/O error on dev mmcblk1, logical block 0, async page read[0m [32m[ 133.184274] [0m[31mBuffer I/O error on dev mmcblk1, logical block 0, async page read[0m [32m[ 133.376775] [0m[31mBuffer I/O error on dev mmcblk1, logical block 0, async page read[0m [32m[ 133.425479] [0m[33m mmcblk1: [无法读取分区表 我现在需要的是我的 SD 卡能在 3v3 级别中工作。我可以检测到 SD 卡,但无法读取。 我的 DTS 配置 & usdhc2 { 分配的时钟 = < & clk imx8MP_CLK_USDH C2 >;分配的时钟速率 =<100000000> ;pinctrl-names = " 默认 "," state_100mhz " , " state_200mhz "; pinc trl-0 = < & pinctrl_usdhc2 >, < & pinctrl_usdhc2_gpio >; pinctrl-1 = < & pinctrl_usdhc2 _100mhz > < & pinctrl_usdhc2_gpio >; pinctrl -2 = < & pinctrl_usdhc2_200mhz >, < & pinctrl_usdhc2_gpio >; cd-gpios = < & gpio2 12 GP IO_ACTIVE_ LOW >; vmmc-supply = < & reg_usdhc2_vmmc >; 总线宽度<4> =; no-1-8-v; 最大频率<25000000> =; 状态 = " 好吧 ";}; 最终输出: imx8mpevk 登录: imx8mpevk 登录: imx8mpevk 登录: root 7 [r [999; 999H [6n8root @imx8mpevk: ~# lsblk 名字 MAJ: MIN RM 大小 RO 类型挂载点 mmcblk2 179:0 7.3G 0 磁盘 |-mmcblk2p1 179:1 0 83.2M 0 part /run/media/启动-mmcblk2p1 `-mmcblk2p2 179: 2 0 6.5G 0 部分/ mmcblk2boot0 179:32 0 4M 1 个磁盘 mmcblk2boot1 179:64 0 4M 1 磁盘 mmcblk1 179:96 0 29.7G 0 磁盘 mmcblk1 179:96 0 29.7G 0 磁盘 恩智浦 i.MX 版本 发行版 6.1-mickledore imx8mpevk ttymxc1 imx8mpevk 登录:imx8mpevk 登录: imx8mpevk 登录:root 7 [r [999;999H [6n 8root @imx8mpevk:~# root @imx8mpevk:~# root @imx8mpevk:~# root @imx8mpevk:~# root @imx8mpevk:~# lsblk 名称 MAJ: MIN RM 大小 RO 类型挂载点 mmcblk2 179:0 0 7.3G 0 磁盘 |-blk mmcblk2p1 179:1 0 83.2M 0 部分 /run/media/启动-mmcblk2p1 `-mmcblk2p2 179: 2 0 6.5G 0 part/mmcblk2boot0 179:32 0 4M 1 磁盘 mmcblk1 179:96 0 29.7G 0 磁盘 根目录 @imx8mpevk:~# root @imx8mpevk:~# root @imx8mpevk:~# root @imx8mpevk:~# [53.204996] mmc1:已移除卡 aaa [54.494632] mmc1:主机不支持读取只读开关,假设可写入 [54.507807] mmc1:地址为 aaaa [54.514138] mmcblk1:mmc1: aaaa SC32G 29.7 GiB [54.579534] blk_print_req_error:抑制 8 个回调 [54.579543] I/O 错误,dev mmcblk1,扇区 0 op 0x0 😞 读取) 标志 0x0 prio seg 1 prio class 2 [54.595988] I/O 错误,dev mmcblk1,扇区 1 op 0x0 😞 读取) 标志 0x0 prio class 2 [54.595988] I/O 错误,dev mmcblk1,扇区 1 op 0x0 😞 读取) 标志 0x0 prio class 2 [54.595988] 54.607164] I/O 错误,dev mmcblk1, 扇区 2 op 0x0:(读取)标志 0x0 phys_seg 1 prio class 2 [54.619385] dev mmcblk1 出现缓冲 I/O 错误,逻辑块 0,异步页面读取 [54.630133] I/O 错误,dev mmcblk1,扇区 0 op 0x0 😞 读取) 标志 0x0 prio prio class 1 prio class 2 [54.6412seg] 76] I/O 错误,dev mmcblk1,扇区 1 op 0x0 😞 读取) 标志 0x0 phys_seg 1 prio class 2 [54.652768] I/O 错误,dev mmcblk1,扇区 2 操作 0x0 😞 读取) 标志 0x0 prio class 2 [54.666656] dev mmcblk1 上的缓冲区 I/O 错误,逻辑块 0,异步页面读取 [54.673827] mmcblk1:无法读取 分区表 [54.743395] I/O 错误,dev mmcblk1,扇区 0 op 0x0 😞 读取) 标志 0x80700 prio 1 prio class 2 [54.754949] I/O 错误,dev mmcblk1,扇区 1 op 0x0 😞 读取) 标志 0x80700 prio class 2 [54.766631] I/O 错误,dev mmcblk1,第 2 扇区 op 0x0 😞 READ) 标志 0x80700 phys_seg 1 prio class 2 [54.780512] I/O 错误,dev mmcblk1,扇区 0 op 0x0 😞 读取) 标志 0x0 prio class 1 prio class 2 [54.791210] dev mmc1 出现缓冲区 I/O 错误,逻辑块 0,异步页面读取 [57.764836] mmc1:卡 aaa 已删除 [61.159595] 80] kauditd_printk_skb:已抑制 8 个回调 [61.159590] 审计:type=1334 audit (1776550758. 196:16): prog-id=10 op=UNLOAD [ 61.171847] audit: type=1334 audit(1776550758.196:17):prog-id=9 op=UNLOAD [ 65.070760] mmc1:主机不支持读取只读开关,假设可写入 [ 65.084575] mmc1:地址为 aaaa 的新高速 SDHC 卡 [ 65.102862] mmcblk1:mmc1:aaaa SC32G 29.7 GiB [ 65.171885] blk_print_req_error:2 个回调被抑制 [ 65.171896] I/O 错误,dev mmcblk1,扇区 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 65.188475] I/O 错误,dev mmcblk1,扇区 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 65.199891] I/O 错误,dev mmcblk1,扇区 2 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 65.212268] 缓存 I/O 错误,dev mmcblk1,逻辑块 0,异步页读取 [ 65.223329] I/O 错误,dev mmcblk1,扇区 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 65.234610] I/O 错误,dev mmcblk1,扇区 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 65.245811] I/O 错误,dev mmcblk1,扇区 2 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 65.258065] Buffer I/O error on dev mmcblk1, logical block 0, async page read [ 65.265245] mmcblk1:无法读取分区表 [ 65.339512] I/O 错误,dev mmcblk1,扇区 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2 [ 65.351038] I/O 错误,dev mmcblk1,扇区 1 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2 [ 65.362544] I/O 错误,dev mmcblk1,扇区 2 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2 [ 65.376346] I/O 错误、dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 65.389118] Buffer I/O error on dev mmcblk1, logical block 0, async page read 请帮助我 谢谢 Re: IMX8MP SD CARD Detection issue 你好@Rajendersamangula
希望你一切都好。
低速握手似乎有效,但高速握手则无效。
您试过填充电阻 R54 和 R55 吗?
从你的原理图来看,这些似乎是 DNP。
另外,请尝试降低设备树中的频率。
最后,您可以尝试增加 pinctrl_usdhc2 中的驱动强度,并在没有外部上拉的线路中启用内部上拉。
如果可能,请测量 NVCC_SD2 线路,确保其电压为 3.3V。
顺祝商祺!
萨拉斯
View full article