1. 前言說(shuō)明原文:https://club.rt-thread.org/ask/article/83cc823b1c25ced9.html
1.1 本章內(nèi)容
首先對(duì)SDHI和SDIO本質(zhì)上的區(qū)別進(jìn)行說(shuō)明,然后使用RT-Studio新建工程進(jìn)行開發(fā),通過(guò)RASC對(duì)RA6M3的底層硬件配置,然后使用SDHI接口實(shí)現(xiàn)SD的識(shí)別,搭配文件系統(tǒng)對(duì)SD卡進(jìn)行讀寫操作,同時(shí)記錄開發(fā)遇到的問(wèn)題。
1.2 模塊介紹
本次的測(cè)評(píng)任務(wù)是SDHI,之前用SDIO用的比較多,不太了解SDHI,先對(duì)SDHI進(jìn)行介紹:
SDHI是Secure Digital Host Interface的縮寫,是一種SD存儲(chǔ)卡控制器的接口規(guī)范。SDHI負(fù)責(zé)管理SD存儲(chǔ)卡的內(nèi)部狀態(tài),并將讀寫請(qǐng)求發(fā)送到存儲(chǔ)卡中。SDHI與處理器之間進(jìn)行通信,以便處理器可以直接訪問(wèn)SD存儲(chǔ)卡。
而SDIO是Secure Digital Input/Output的縮寫,是一種基于SD標(biāo)準(zhǔn)的接口規(guī)范,主要用于連接各種外部設(shè)備,例如Wi-Fi模塊、藍(lán)牙模塊、數(shù)字相機(jī)等。SDIO定義了一個(gè)特定的層次結(jié)構(gòu),使設(shè)備之間能夠簡(jiǎn)單地交換數(shù)據(jù)。
SDIO和SDHI分別描述了兩個(gè)不同的方面:SDIO提供與外部設(shè)備通信的功能,而SDHI提供主機(jī)與SD存儲(chǔ)卡通信的功能。兩者在功能和應(yīng)用場(chǎng)景上并不相同。
RA6M3的SDHI可以支持1-bit和4-bit總線用于連接SD、SDHC以及SDXC不同格式的存儲(chǔ)卡,也可以支持1-bit、4-bit和8-bit的MMC總線,用于供eMMC4.51(JEDEC標(biāo)準(zhǔn)JESD84-B451)設(shè)備的接入與訪問(wèn)。
SD/MMC Host 接口框圖
1.3 開發(fā)軟件
RT-Studio
1.4 硬件設(shè)計(jì)
SD卡連接的是SDHI1,引腳連接如下所示:
2.步驟說(shuō)明
2.1新建工程
- 點(diǎn)擊文件,新建RT-Thread項(xiàng)目
- 基于開發(fā)板,選擇HMI-Board,本次基于模板工程即可,調(diào)試器選擇DAP-Link,接口SWD,板載的調(diào)試器,方便調(diào)試。
2.2芯片底層驅(qū)動(dòng)配置
- 完成工程新建后,右擊RA Smart Configurator選擇FSP3.5.0的安裝路徑,用于配置芯片底層硬件驅(qū)動(dòng)
- 配置完成后,雙擊進(jìn)入配置頁(yè)面
- 選擇Pins,找到SDHI,選擇SD-MMC 1bit
- 然后找到Stacks,配置SDHI,配置為1bit,同時(shí)添加DTC
- 配置完成后,點(diǎn)擊Generate Project Content,會(huì)將配置同步到剛才的新建工程配置。
2.3 RT-Thread 配置
- 雙擊RT-Thread Setting,進(jìn)入配置頁(yè)面,點(diǎn)亮DFS,Fatfs以及SDIO
- 右擊進(jìn)入配置項(xiàng),在硬件下是使能SDHI以及文件系統(tǒng)
- 在組件下選擇使用設(shè)備虛擬文件系統(tǒng),進(jìn)行配置
- 選擇對(duì)設(shè)備使用devfs
- 接下來(lái)找到使用SD/MMC設(shè)備驅(qū)動(dòng)程序進(jìn)行配置,然后點(diǎn)擊保存,關(guān)閉配置頁(yè)面
3.代碼驗(yàn)證
編譯工程,下載,將內(nèi)存卡插入板載的SD卡槽
打開終端,復(fù)位,查看輸出,內(nèi)存卡讀取成功,但是掛載失敗
這里我研究了一段時(shí)間,根據(jù)輸出可以看出,剛開始讀取設(shè)備得到的是0,然后開始掛掛載,導(dǎo)致掛載失敗,之后又讀取到了設(shè)備,說(shuō)明時(shí)序不對(duì)。
接下來(lái)找到內(nèi)存卡掛載的文件,mnt.c,在board文件下,ports文件下
將掛載SD卡的程序挪出來(lái),放在之后初始化,這里我選擇的是新建一個(gè)函數(shù)
新建一個(gè)函數(shù)用于掛載SD卡,先進(jìn)行一個(gè)延時(shí),然后格式化SD卡,這個(gè)步驟可以使用命令行操作,會(huì)把內(nèi)存卡的內(nèi)容清掉。
將剛才的SD卡掛載函數(shù)放在main函數(shù)前,這里放在末尾初始化,避免時(shí)序的原因掛載不上
重編譯,下載程序,查看終端輸出,直接掛載成功
接下來(lái)就可以使用命令對(duì)SD進(jìn)行操作了,新建一個(gè)文件夾
將RA6M3輸入到Test.txt,然后讀取Test.txt
4.總結(jié)
本次HMI-Board 的SDHI使用已經(jīng)完成,剛開始對(duì)SDIO和SDHI的區(qū)別進(jìn)行了介紹,然后新建工程實(shí)現(xiàn)對(duì)SD卡的操作,在本次使用過(guò)程中遇到時(shí)序上的問(wèn)題,剛開始不知道什么原因,后面慢慢查詢調(diào)試找到了問(wèn)題所在,本次實(shí)現(xiàn)的是簡(jiǎn)單的SD卡操作,后面有時(shí)間的話打算實(shí)現(xiàn)使用板載屏幕做一個(gè)電子小說(shuō)閱讀器。
———————End———————
RT-Thread線下入門培訓(xùn)
7月 - 上海,南京
1.免費(fèi)2.動(dòng)手實(shí)驗(yàn)+理論3.主辦方免費(fèi)提供開發(fā)板4.自行攜帶電腦,及插線板用于筆記本電腦充電5.參與者需要有C語(yǔ)言、單片機(jī)(ARM Cortex-M核)基礎(chǔ),請(qǐng)?zhí)崆鞍惭b好RT-Thread Studio 開發(fā)環(huán)境
報(bào)名通道
立即掃碼報(bào)名
(報(bào)名成功即可參加)
掃碼添加rtthread2020可參加活動(dòng)可加微信拉進(jìn)活動(dòng)現(xiàn)場(chǎng)微信群
主辦單位
報(bào)名鏈接:https://jinshuju.net/f/UYxS2k
原文標(biāo)題:RA6M3 HMI Board 之SDHI實(shí)踐
文章出處:【微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
RT-Thread
+關(guān)注
關(guān)注
31文章
1300瀏覽量
40264 -
RA6M3
+關(guān)注
關(guān)注
0文章
52瀏覽量
127
原文標(biāo)題:RA6M3 HMI Board 之SDHI實(shí)踐
文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論