精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32入門學習筆記之SD卡基礎讀寫實驗2

jf_78858299 ? 來源:滑小稽筆記 ? 作者:電子技術園地 ? 2023-02-16 15:09 ? 次閱讀

20.2.6 SDIO命令寄存器SDIO_CMD

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
-
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- CE_ATACMD nIEN ENCMDcomp1 SDIOSuspend CPSMEN WAITPEND WAITINT WAITRESP CMDINDEX

Bit 14:CE-ATA命令

如果設置該位,CPSM轉至CMD61

Bit 13:不使能中斷

如果未設置該位,則使能CE-ATA設備的中斷

Bit 12:使能CMD完成

如果設置該位,則使能命令完成信號

Bit 11:SDIO暫停命令

如果設置該位,則將要發送的命令是一個暫停命令(只能用于SDIO卡)

Bit 10:命令通道狀態機使能位

如果設置該位,則使能CPSM

Bit 9:CPSM等待數據傳輸結束(CmdPend內部信號)

如果設置該位,則CPSM在開始發送一個命令之前等待數據傳輸結束

Bit 8:CPSM等待中斷請求

如果設置該位,則CPSM關閉命令超時控制并等待中斷請求

Bit 7~Bit 6:等待響應位

00:無響應,期待CMDSENT標志

01:短響應,期待CMDREND或CCRCFAIL標志

10:無響應,期待CMDSENT標志

11:長響應,期待CMDREND或CCRCFAIL標志

Bit 5~Bit 0:命令索引,作為命令的一部分發送到卡中

20.2.7 SDIO數據定時器:SDIO_DTIMER

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
DATATIME[31:16]
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DATATIME[15:0]

Bit 31~Bit 0:數據超時時間,以卡總線時鐘周期為單位的數據超時時間

20.2.8 SDIO數據長度寄存器:SDIO_DLEN

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
- DATALENGTH[24:16]
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DATALENGTH[15:0]

Bit 24~Bit 0:數據長度,要傳輸的數據字節數目

20.2.9 SDIO數據控制寄存器:SDIO_DCTRL

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
-
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- SDIOEN RWMOD RWSTOP RWSTART DBLOCKSIZE DMAEN DTMODE DTDIR DTEN

Bit 11:SDIO使能功能

如果設置了該位,則DPSM執行SDIO卡特定的操作

Bit 10:讀等待模式

0:停止SDIO_CK控制讀等待

1:使用SDIO_D2控制讀等待

Bit 9:讀等待停止

0:如果設置了RWSTART,執行讀等待

1:如果設置了RWSTART,停止讀等待

Bit 8:讀等待開始

設置該位開始讀等待操作

Bit 7~Bit 4:數據塊長度,當選擇了塊數據傳輸模式,該域定義數據塊長度

0000:塊長度=1字節

0001:塊長度=2字節

0010:塊長度=4字節

0011:塊長度=8字節

0100:塊長度=16字節

0101:塊長度=32字節

0110:塊長度=64字節

0111:塊長度=128字節

1000:塊長度=256字節

1001:塊長度=512字節

1010:塊長度=1024字節

1011:塊長度=2048字節

1100:塊長度=4096字節

1101:塊長度=8192字節

1110:塊長度=16384字節

1111:保留

Bit 3:DMA使能位

0:關閉DMA

   1:使能DMA

Bit 2:數據傳輸模式

0:塊數據傳輸

   1:流數據傳輸

Bit 1:數據傳輸方向

0:控制器至卡

   1:卡至控制器

Bit 0:數據傳輸使能位

如果設置該位為1,則開始數據傳輸。根據DTSIR方向位,DPSM進入Wait_S或Wait_R狀態,如果在傳輸的一開始就設置了RWSTART位,則DPSM進入讀等待狀態。不需要在數據傳輸結束后清除使能位,但必須更改SDIO_DCTRL以允許新的數據傳輸。

20.2.10 SDIO狀態寄存器:SDIO_STA

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
- CEATAEND SDIOIT RXDAVL TXDAVL RXFIFOE TXFIFOE RXFIFOF TXFIFOF
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RXFIFOHF TXFIFOHF RXACT TXACT CMDACT DBCKEND STBITERR DATAEND CMDSENT CMDREND RXOVERR TXUNDERR DTMEOUT CTIMEOUT DCRCFAIL CCRCFAIL

Bit 23:在CMD61接收到CE-ATA命令完成信號

Bit 22:收到SDIO中斷

Bit 21:在接收FIFO中的數據可用

Bit 20:在發送FIFO中的數據可用

Bit 19:接收FIFO空

Bit 18:發送FIFO空

若使用了硬件流控制,當FIFO包含2個字時,TXFIFOE信號變為有效。

Bit 17:接收FIFO滿

若使用了硬件流控制,當FIFO還差2個字滿時,RXFIFOF信號變為有效。

Bit 16:發送FIFO滿

Bit 15:接收FIFO半滿,FIFO中至少還有8個字

Bit 14:發送FIFO半空,FIFO中至少還可以寫入8個字。

Bit 13:正在接收數據

Bit 12:正在發送數據

Bit 11:正在傳輸命令

Bit 10:已發送/接收數據塊(CRC檢測成功)

Bit 9:在寬總線模式,沒有在所有數據信號上檢測到起始位

Bit 8:數據結束(數據計數器,SDIO_DCOUNT=0)

Bit 7:命令已發送(不需要響應)

Bit 6:已接收到響應(CRC檢測成功)

Bit 5:接收FIFO上溢錯誤

Bit 4:發送FIFO下溢錯誤

Bit 3:數據超時

Bit 2:命令響應超時

命令超時時間是一個固定的值,為64個SDIO_CK時鐘周期。

Bit 1:已發送/接收數據塊(CRC檢測失敗)

Bit 0:已收到命令響應(CRC檢測失敗)

注:狀態寄存器可以用來查詢SDIO控制器的當前狀態。比如SDIO_STA的位2表示命令響應超時,說明SDIO的命令響應出了問題。我們通過設置SDIO_ICR的位2則可以清除這個超時標志,而設置SDIO_MASK的位2,則可以開啟命令響應超時中斷,設置為0關閉。

20.2.11 SDIO數據FIFO寄存器:SDIO_FIFO

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
FIFODATA[31:16]
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
FIFODATA[15:0]

Bit 31~Bit 0:接收或發送FIFO數據

FIFO數據占據32個32位的字,地址為:SDIO基址+0x80至SDIO基址+0xFC

數據FIFO寄存器包括接收和發送FIFO,他們由一組連續的32個地址上的32個寄存器組成,CPU可以使用FIFO讀寫多個操作數。例如我們要從SD卡讀數據,就必須讀SDIO_FIFO寄存器,要寫數據到SD卡,則要寫SDIO_FIFO寄存器。SDIO將這32個地址分為16個一組,發送接收各占一半。而我們每次讀寫的時候,最多就是讀取發送FIFO或寫入接收FIFO的一半大小的數據,也就是8個字(32個字節),在操作SDIO_FIFO(不論讀出還是寫入)必須是以4字節對齊的內存進行操作,否則將導致出錯。

20.3 SD卡初始化

20.3.1 卡上電流

圖片

20.3.2 卡初始化流程

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6032

    文章

    44522

    瀏覽量

    633217
  • 存儲器
    +關注

    關注

    38

    文章

    7455

    瀏覽量

    163616
  • SD卡
    +關注

    關注

    2

    文章

    560

    瀏覽量

    63812
  • SDIO
    +關注

    關注

    2

    文章

    72

    瀏覽量

    19294
收藏 人收藏

    評論

    相關推薦

    【紫光同創國產FPGA教程】【第八章】SD讀寫實驗

    SD是現在嵌入式設備重要的存儲模塊,內部集成了nand flash控制器,方便了主機的的管理。本實驗主要是練習對sd的扇區進行
    的頭像 發表于 02-05 11:35 ?8290次閱讀
    【紫光同創國產FPGA教程】【第八章】<b class='flag-5'>SD</b><b class='flag-5'>卡</b><b class='flag-5'>讀寫實驗</b>

    【GD32F470紫藤派開發板使用手冊】第十二講 SDIO-SD讀寫實驗

    通過本實驗主要學習以下內容: ?SDIO操作原理 ?SD讀寫實
    的頭像 發表于 05-18 09:36 ?1306次閱讀
    【GD32F470紫藤派開發板使用手冊】第十二講 SDIO-<b class='flag-5'>SD</b><b class='flag-5'>卡</b><b class='flag-5'>讀寫實驗</b>

    arduino學習筆記18 - SD讀寫實驗

    本次實驗使用arduino驅動SD,在SD中進行文件讀寫。需要說明的是arduino的
    發表于 10-24 10:09

    接觸式IC讀寫實驗

    接觸式IC讀寫實驗 一. 實驗目的了解接觸式IC 的知識,
    發表于 09-22 17:20 ?4706次閱讀
    接觸式IC<b class='flag-5'>卡</b><b class='flag-5'>讀寫實驗</b>

    STM32開發板_SD學習

    資料包括《SD讀寫規范》和《SD接口規范》以及《SD
    發表于 06-08 17:29 ?15次下載

    ARM基礎應用實驗06_SD讀寫

    ARM嵌入式應用程序架構設計實例精講--ARM基礎應用實驗06SD讀寫
    發表于 07-08 11:08 ?0次下載

    ARM基礎應用實驗_SD讀寫

    電子專業單片機相關知識學習教材資料——ARM基礎應用實驗06SD讀寫
    發表于 09-13 17:23 ?0次下載

    STM32CubeMX生成一個SD讀寫程序

    本文檔內容介紹了一個STM32CubeMX生成一個SD讀寫程序,由于本程序是直接操作SD的物
    發表于 01-08 11:23 ?57次下載

    STM32入門學習筆記SD基礎讀寫實驗1

    SD是嵌入式系統中最常見的存儲器,不僅容量可以做的很大,并且接口通用,支持SPI/SDIO驅動,尺寸可供選擇,能滿足不同應用的要求。STM32F1系列自帶了標準的4位SDIO接口,最高通信速度可達24MHz,最高每秒能傳輸12
    的頭像 發表于 02-16 15:09 ?2876次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>入門</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b><b class='flag-5'>SD</b><b class='flag-5'>卡</b>基礎<b class='flag-5'>讀寫實驗</b>1

    STM32入門學習筆記SD基礎讀寫實驗3

    SD是嵌入式系統中最常見的存儲器,不僅容量可以做的很大,并且接口通用,支持SPI/SDIO驅動,尺寸可供選擇,能滿足不同應用的要求。STM32F1系列自帶了標準的4位SDIO接口,最高通信速度可達24MHz,最高每秒能傳輸12
    的頭像 發表于 02-16 15:09 ?1491次閱讀

    STM32入門學習筆記SD基礎讀寫實驗4

    SD是嵌入式系統中最常見的存儲器,不僅容量可以做的很大,并且接口通用,支持SPI/SDIO驅動,尺寸可供選擇,能滿足不同應用的要求。STM32F1系列自帶了標準的4位SDIO接口,最高通信速度可達24MHz,最高每秒能傳輸12
    的頭像 發表于 02-16 15:09 ?1429次閱讀

    SD基礎讀寫實驗

    SD是嵌入式系統中最常見的存儲器,不僅容量可以做的很大,并且接口通用,支持SPI/SDIO驅動,尺寸可供選擇,能滿足不同應用的要求。
    的頭像 發表于 03-01 14:46 ?1461次閱讀
    <b class='flag-5'>SD</b><b class='flag-5'>卡</b>基礎<b class='flag-5'>讀寫實驗</b>

    基于FPGA的SD的數據讀寫實現(SD NAND FLASH)

    文章目錄1、存儲芯片分類2、NORFlash與NANDFlash的區別3、什么是SD?4、什么是SDNAND?5、SDNAND的控制時序6、FPGA實現SDNAND讀寫6.1、設計思
    的頭像 發表于 12-16 17:50 ?1396次閱讀
    基于FPGA的<b class='flag-5'>SD</b><b class='flag-5'>卡</b>的數據<b class='flag-5'>讀寫實</b>現(<b class='flag-5'>SD</b> NAND FLASH)

    淺談STM32SD

    STM32SD
    的頭像 發表于 10-19 18:28 ?1797次閱讀
    淺談<b class='flag-5'>STM32</b><b class='flag-5'>之</b><b class='flag-5'>SD</b><b class='flag-5'>卡</b>

    【GD32F303紅楓派開發板使用手冊】第二十三講 SDIO-SD讀寫實驗

    通過本實驗主要學習以下內容: ?SDIO操作原理 ?SD讀寫實
    的頭像 發表于 06-23 10:49 ?553次閱讀
    【GD32F303紅楓派開發板使用手冊】第二十三講 SDIO-<b class='flag-5'>SD</b><b class='flag-5'>卡</b><b class='flag-5'>讀寫實驗</b>