Page 1 of 1

T5的3.12.16,如何修改SD卡的SDIO引脚

Posted: 2025年 Oct 9日 08:58
by xdt_chen

T5只有一个SDIO控制器,SDIO的引脚默认是在GPIO2,GPIO3,GPIO4,我们想挂两个SD卡,这两个SD卡互斥,同一时间只能有一个使用,所以我们想另一组SDIO的引脚(GPIO14,GPIO15,GPIO16)挂第二张SD卡,我们存在以下两个问题:
1.如何修改SDIO的引脚配置
我们尝试在gpio_hal.c中重新定义GPIO_DEFAULT_DEV_CONFIG,修改了GPIO14,GPIO15,GPIO16引脚配置,实际上就是将原来的GPIO2,GPIO3,GPIO4的引脚配置移动到GPIO14,GPIO15,GPIO16,但实际上无法使用。
2.如何重新初始化SDIO引脚,我们想有新SD卡插入时,重新初始化SD卡,主要是更换另一组SDIO引脚,以此来切换到另一张SD卡。


Re: T5的3.12.16,如何修改SD卡的SDIO引脚

Posted: 2025年 Oct 9日 18:42
by 一个网友

您好,这个处理比较复杂,大概流程可以参考如下:

接口调用链:
tkl_fs_mount ---> fatfs_mount ---> bk_sd_card_init ---> bk_sdio_host_init ---> sdio_host_init_common

企业微信截图_17600063613361.png

在上图红框所在位置,添加自定义GPIO初始化,可以基于上述调用链,把gpio分组信息传递到底层,根据group信息进行对应的初始化

注意:初始化sd卡时候,要deinit掉前一次已经初始化的SD卡


Re: T5的3.12.16,如何修改SD卡的SDIO引脚

Posted: 2025年 Oct 9日 19:41
by xdt_chen

你好,我尝试了一下,发现第二组SDIO引脚(14,15,16)还是无法使用,只有第一组(2,3,4)才能用,用同样的飞线测试的,帮忙看看是啥问题


Re: T5的3.12.16,如何修改SD卡的SDIO引脚

Posted: 2025年 Oct 9日 21:41
by 一个网友

您好,简单测试了下,初始化是正常的,但是我的板子,这几根线没有接,所以初始化失败了,
您那里无法使用是什么意思

log.png
code.png