新聞中心

        micro SD卡

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

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

        本文引用地址:http://www.104case.com/article/202312/454089.htm

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

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

        SPI 模式

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

        • DI/DO 上無需上拉

        • 命令(以及寫扇區時的扇區數據)發送到 DI 引腳

        • 從 DO 引腳接收響應(以及扇區讀取時的扇區數據


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

        SD 模式

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

        • CMD/DATx 上需要上拉(FPGA 通常可在內部提供上拉功能)

        • 在 CMD 引腳上發送/接收命令/響應

        • 從 DATx 引腳發送/接收扇區數據(用于扇區讀取和寫入

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

        協議

        SD 卡采用命令/響應方案工作。例如,命令 "17 "允許讀取卡內存的一個扇區(512 字節)。所有通信都與主機(本例中為 FPGA)提供的時鐘同步。啟動時時鐘頻率應低于 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;

        所有命令和大多數響應的長度都是 48 位(6 字節)。扇區數據是 512 字節的倍數。例如,下面是一段可以向 SD 卡發送命令的簡單代碼。



        關鍵詞: SD卡

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 什邡市| 四平市| 达日县| 永安市| 绥芬河市| 涡阳县| 蓝山县| 德江县| 绵阳市| 吕梁市| 白水县| 灵武市| 漯河市| 德江县| 乐至县| 德庆县| 祁东县| 江西省| 临澧县| 天镇县| 油尖旺区| 英吉沙县| 乌兰县| 荣成市| 华阴市| 金寨县| 锦屏县| 新民市| 澄城县| 象山县| 梅州市| 弥渡县| 寿阳县| 铜梁县| 仲巴县| 河津市| 山西省| 庄河市| 丰镇市| 怀集县| 余江县|