新聞中心

micro SD卡

作者: 時間:2023-12-20 來源:電子森林 收藏

SD 卡很容易與 FPGA 連接。它們有不同的尺寸(標(biāo)準(zhǔn)、迷你和微型),但電氣工作方式相同。我們重點討論微型 SD 卡,因為它們小巧方便,如今也很流行。

本文引用地址:http://butianyuan.cn/article/202312/454089.htm

微型 SD 卡有 8 個引腳。首先,電源連接在第 4 針和第 6 針上。

然后,根據(jù)您決定使用的操作模式,您需要將 3 到 6 個引腳連接到 FPGA 引腳。

SPI 模式

在 SPI 模式下,DI/DO 線路是單向的。這意味著

  • DI/DO 上無需上拉

  • 命令(以及寫扇區(qū)時的扇區(qū)數(shù)據(jù))發(fā)送到 DI 引腳

  • 從 DO 引腳接收響應(yīng)(以及扇區(qū)讀取時的扇區(qū)數(shù)據(jù)


SPI 模式通常用于微控制器系統(tǒng)。在 FPGA 中,我們可能更適合使用...

SD 模式

在 SD 模式下,CMD/DATx 線路是雙向的。這意味著

  • CMD/DATx 上需要上拉(FPGA 通??稍趦?nèi)部提供上拉功能)

  • 在 CMD 引腳上發(fā)送/接收命令/響應(yīng)

  • 從 DATx 引腳發(fā)送/接收扇區(qū)數(shù)據(jù)(用于扇區(qū)讀取和寫入

例如,在 SD 單位模式下,我們需要這些連接:

協(xié)議

SD 卡采用命令/響應(yīng)方案工作。例如,命令 "17 "允許讀取卡內(nèi)存的一個扇區(qū)(512 字節(jié))。所有通信都與主機(jī)(本例中為 FPGA)提供的時鐘同步。啟動時時鐘頻率應(yīng)低于 400KHz,卡初始化后時鐘頻率可加快。

// we use the Xylo-E FX2 FIFO2 as data source for "commanding" an SD card
// the SD card is used in one-bit SD mode 
// first we are going to drive the SD card at a much slower speed than the FPGA itself
// let's create a "shift" signal that is asserted once every 64 clock periods
reg [5:0] cnt=0;  
always @(posedge clk) cnt <= cnt+1;
reg shift=0;  
always @(posedge clk) shift <= &cnt; // now we serialize every byte we get from the FIFO2
reg [2:0] cntbit=0;reg shifting=0;
reg [7:0] data=0;
always @(posedge clk) if(shift) shifting <= shifting ? ~(&cntbit & ~FIFO2_data_available) : FIFO2_data_available;
always @(posedge clk) if(shift & shifting) cntbit <= cntbit+1;
always @(posedge clk) if(shift) data <= (FIFO2_data_available & (~shifting | &cntbit)) ? FIFO_DATAIN : {data[6:0],1'b0};assign FIFO_RD = shift & (~shifting | &cntbit); 
// and send the serial data to the SD card
assign SD_CLK = cnt[5];
assign SD_CMD = shifting ? data[7] : 1'bZ;

所有命令和大多數(shù)響應(yīng)的長度都是 48 位(6 字節(jié))。扇區(qū)數(shù)據(jù)是 512 字節(jié)的倍數(shù)。例如,下面是一段可以向 SD 卡發(fā)送命令的簡單代碼。



關(guān)鍵詞: SD卡

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉