RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32用一線(xiàn)式驅(qū)動(dòng)SD NAND,SDIO的一線(xiàn)式驅(qū)動(dòng)

mkfounder ? 來(lái)源:mkfounder ? 作者:mkfounder ? 2023-12-19 14:14 ? 次閱讀

SDIO的一線(xiàn)式和四線(xiàn)式

SDIO(Secure Digital Input/Output)是一種用于在嵌入式系統(tǒng)中連接外部設(shè)備的標(biāo)準(zhǔn)接口。在SDIO標(biāo)準(zhǔn)中,一線(xiàn)式和四線(xiàn)式是指SDIO接口的不同工作模式。

一線(xiàn)式(Single-Line Mode):

工作原理: 在一線(xiàn)式模式下,SDIO接口僅使用單個(gè)數(shù)據(jù)線(xiàn)進(jìn)行通信。這個(gè)模式通常用于相對(duì)簡(jiǎn)單的應(yīng)用,其中數(shù)據(jù)傳輸速度要求不是很高。

適用情境: 適用于對(duì)數(shù)據(jù)傳輸速度要求不高的場(chǎng)景,例如連接一些低速外設(shè)。

四線(xiàn)式(Four-Line Mode):

工作原理: 在四線(xiàn)式模式下,SDIO接口使用四根線(xiàn)進(jìn)行通信,包括一個(gè)命令線(xiàn)、一個(gè)數(shù)據(jù)線(xiàn)、一個(gè)時(shí)鐘線(xiàn)和一個(gè)電源線(xiàn)。這個(gè)模式支持更高的數(shù)據(jù)傳輸速度。

適用情境: 適用于對(duì)數(shù)據(jù)傳輸速度有較高要求的應(yīng)用,例如連接高速外設(shè),比如攝像頭、Wi-Fi模塊等。

選擇一線(xiàn)式還是四線(xiàn)式取決于具體的應(yīng)用需求。如果應(yīng)用對(duì)速度要求不高,或者對(duì)硬件資源有限,可以選擇一線(xiàn)式。如果需要更高的數(shù)據(jù)傳輸速度,特別是在連接高速外設(shè)的情況下,四線(xiàn)式可能更為合適。

需要注意的是,使用四線(xiàn)式模式可能會(huì)對(duì)系統(tǒng)的硬件和軟件設(shè)計(jì)提出更高的要求,因?yàn)樾枰С指鼜?fù)雜的通信協(xié)議和更高的時(shí)鐘頻率。

STM32的SDIO一線(xiàn)式驅(qū)動(dòng)[SD NAND]([SD NAND | MK-米客方德])

有些平臺(tái)和MCU沒(méi)有SDIO接口的,STM32大部分型號(hào)有SDIO接口,具體可以看芯片手冊(cè),

程序代碼

SD NAND初始化

/**
 * @brief初始化SD
 * @param無(wú)
 * @retval返回值:0 初始化正確;其他值,初始化錯(cuò)誤
 */uint8_tsd_init(void){

uint8_t SD_Error;

/* 初始化時(shí)的時(shí)鐘不能大于400KHZ */
g_sdcard_handler.Instance = SDIO;
g_sdcard_handler.Init.ClockEdge = SDIO_CLOCK_EDGE_RISING;                       /* 上升沿 */
g_sdcard_handler.Init.ClockBypass = SDIO_CLOCK_BYPASS_DISABLE;                  /* 不使用bypass模式,直接用HCLK進(jìn)行分頻得到SDIO_CK */
g_sdcard_handler.Init.ClockPowerSave = SDIO_CLOCK_POWER_SAVE_DISABLE;           /* 空閑時(shí)不關(guān)閉時(shí)鐘電源 */
g_sdcard_handler.Init.BusWide = SDIO_BUS_WIDE_1B;                               /* 1位數(shù)據(jù)線(xiàn) */
g_sdcard_handler.Init.HardwareFlowControl = SDIO_HARDWARE_FLOW_CONTROL_ENABLE;  /* 開(kāi)啟硬件流控 */
g_sdcard_handler.Init.ClockDiv = SDIO_TRANSFER_CLK_DIV;                         /* SD傳輸時(shí)鐘頻率最大25MHZ */

SD_Error =HAL_SD_Init(&g_sdcard_handler);
if(SD_Error != HAL_OK)
{
return1;
}
//SD_Error = HAL_SD_ConfigWideBusOperation(&g_sdcard_handler, SDIO_BUS_WIDE_4B);/* 使能寬總線(xiàn)模式,-O0 優(yōu)化會(huì)有問(wèn)題 *///if (SD_Error != HAL_OK)//{//return 2;//}


return0;}

測(cè)試SD NAND的寫(xiě)入

/**
 * @brief初始化SD
 * @param無(wú)
 * @retval返回值:0 初始化正確;其他值,初始化錯(cuò)誤
 */uint8_tsd_init(void){

uint8_t SD_Error;

/* 初始化時(shí)的時(shí)鐘不能大于400KHZ */
g_sdcard_handler.Instance = SDIO;
g_sdcard_handler.Init.ClockEdge = SDIO_CLOCK_EDGE_RISING;                       /* 上升沿 */
g_sdcard_handler.Init.ClockBypass = SDIO_CLOCK_BYPASS_DISABLE;                  /* 不使用bypass模式,直接用HCLK進(jìn)行分頻得到SDIO_CK */
g_sdcard_handler.Init.ClockPowerSave = SDIO_CLOCK_POWER_SAVE_DISABLE;           /* 空閑時(shí)不關(guān)閉時(shí)鐘電源 */
g_sdcard_handler.Init.BusWide = SDIO_BUS_WIDE_1B;                               /* 1位數(shù)據(jù)線(xiàn) */
g_sdcard_handler.Init.HardwareFlowControl = SDIO_HARDWARE_FLOW_CONTROL_ENABLE;  /* 開(kāi)啟硬件流控 */
g_sdcard_handler.Init.ClockDiv = SDIO_TRANSFER_CLK_DIV;                         /* SD傳輸時(shí)鐘頻率最大25MHZ */

SD_Error =HAL_SD_Init(&g_sdcard_handler);
if(SD_Error != HAL_OK)
{
return1;
}
//SD_Error = HAL_SD_ConfigWideBusOperation(&g_sdcard_handler, SDIO_BUS_WIDE_4B);/* 使能寬總線(xiàn)模式,-O0 優(yōu)化會(huì)有問(wèn)題 *///if (SD_Error != HAL_OK)//{//return 2;//}


return0;}

測(cè)試SD NAND的讀出

/**
 * @brief測(cè)試SD卡的讀取
 *@notesecaddr地址開(kāi)始,讀取seccnt個(gè)扇區(qū)的數(shù)據(jù)
 * @paramsecaddr : 扇區(qū)地址
 * @paramseccnt: 扇區(qū)數(shù)
 * @retval無(wú)
 */voidsd_test_read(uint32_t secaddr,uint32_t seccnt){

uint32_t i;
uint8_t*buf;
uint8_t sta =0;

buf =mymalloc(SRAMIN, seccnt *512);     /* 申請(qǐng)內(nèi)存,從SDRAM申請(qǐng)內(nèi)存 */
sta =sd_read_disk(buf, secaddr, seccnt);/* 讀取secaddr扇區(qū)開(kāi)始的內(nèi)容 */

if(sta ==0)
{
lcd_show_string(30,170,200,16,16,"USART1 Sending Data...", BLUE);
printf("SECTOR %d DATA:rn", secaddr);

for(i =0; i < seccnt *512; i++)
{
printf("%x ", buf[i]);/* 打印secaddr開(kāi)始的扇區(qū)數(shù)據(jù) */
}

printf("rnDATA ENDEDrn");
lcd_show_string(30,170,200,16,16,"USART1 Send Data Over!", BLUE);
}
else
{
printf("err:%drn", sta);
lcd_show_string(30,170,200,16,16,"SD read Failure!      ", BLUE);
}

myfree(SRAMIN, buf);/* 釋放內(nèi)存 */}

實(shí)驗(yàn)現(xiàn)象

image.png

image.png

使用的芯片是MK-米客方德的工業(yè)級(jí)芯片MKDV1GIL-AS,

image.png

需要工程的可以聯(lián)系MK-米客方德。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    455

    文章

    50714

    瀏覽量

    423132
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19104

    瀏覽量

    304796
  • NAND
    +關(guān)注

    關(guān)注

    16

    文章

    1681

    瀏覽量

    136118
  • 驅(qū)動(dòng)
    +關(guān)注

    關(guān)注

    12

    文章

    1838

    瀏覽量

    85262
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10895

    瀏覽量

    355726
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    USB一線(xiàn)通監(jiān)控副屏設(shè)計(jì)方案

    在2024年全國(guó)大學(xué)生嵌入芯片與系統(tǒng)設(shè)計(jì)競(jìng)賽中,各大高校學(xué)子紛紛展現(xiàn)出卓越的創(chuàng)新能力和扎實(shí)的技術(shù)功底。今天,特別為大家分享獲獎(jiǎng)作品——USB一線(xiàn)通監(jiān)控副屏,它以其獨(dú)特的設(shè)計(jì)和實(shí)用的功能贏得廣泛好評(píng)與認(rèn)可。
    的頭像 發(fā)表于 11-28 09:45 ?637次閱讀
    USB<b class='flag-5'>一線(xiàn)</b>通監(jiān)控副屏設(shè)計(jì)方案

    今日話(huà)題:一線(xiàn)城市 or 二線(xiàn)城市?

    `社會(huì)學(xué)家鄭也夫說(shuō)人生不外乎在追求三種狀態(tài):舒服、刺激、牛B。其實(shí)也是道城市選擇題:皆因年輕的我們,愛(ài)冒險(xiǎn)勝過(guò)愛(ài)安逸,愛(ài)牛B勝過(guò)愛(ài)舒服,自愿進(jìn)入人生愿境最誘人、生存邏輯又最殘酷的一線(xiàn)城市。這是
    發(fā)表于 03-09 10:10

    JQ8400一線(xiàn)串口我應(yīng)該怎么接線(xiàn)????jī)?b class='flag-5'>線(xiàn)串口該怎么接線(xiàn)?

    JQ8400一線(xiàn)串口我應(yīng)該怎么接線(xiàn)?。?jī)?b class='flag-5'>線(xiàn)串口該怎么接線(xiàn)?淘寶買(mǎi)的那測(cè)試程序不響,不知道是不是接線(xiàn)出問(wèn)題還是怎樣,求教?。?/div>
    發(fā)表于 01-03 21:14

    一線(xiàn)城市程序員薪資數(shù)據(jù)概述

    一線(xiàn)城市程序員薪資數(shù)據(jù)出爐,你屬于哪檔?
    發(fā)表于 06-26 16:05

    lcd2004一線(xiàn)屏仿真

    )圖5四,編輯main.c 代碼如Proteus8.9 VSM Studio GCC編譯器仿真STM32F407ZGT6系列015_lcd2004一線(xiàn)屏(如下圖6所示)圖6五,Main.c 代碼:/* Main.c file generated by New Projec
    發(fā)表于 12-13 07:20

    SD NANDSDIOSTM32上的應(yīng)用詳解(上篇)

    的命令訪(fǎng)問(wèn)(STM32主機(jī)通過(guò)驅(qū)動(dòng)SDIO外設(shè)通過(guò)CMD命令線(xiàn)向從機(jī)SD卡發(fā)送命令),SDIO
    發(fā)表于 11-15 15:17

    rt-thread SDIO驅(qū)動(dòng)框架分析(SD卡flash驅(qū)動(dòng)\SD Nand flash驅(qū)動(dòng)

    (點(diǎn)擊跳轉(zhuǎn)))在 rt_hw_sdio_init 函數(shù)中,驅(qū)動(dòng)程序主要初始化以下幾個(gè)結(jié)構(gòu)體:stm32外設(shè)HAL庫(kù)配置結(jié)構(gòu)體 SD_HandleTypeDef hsd
    發(fā)表于 04-04 16:26

    基于TINI的一線(xiàn)制網(wǎng)絡(luò)互連技術(shù)

    概述 TINI的基本概念和工作原理,分析 TINI的軟件環(huán)境;簡(jiǎn)述基于一線(xiàn)制技術(shù)的溫度型iButton DS1920和小型氣象儀,給出利用 TINI實(shí)現(xiàn)一線(xiàn)制網(wǎng)絡(luò)與 Internet連接的應(yīng)用實(shí)例。
    發(fā)表于 04-13 10:15 ?20次下載

    一線(xiàn)總線(xiàn)器件實(shí)現(xiàn)移動(dòng)數(shù)據(jù)收集

    一線(xiàn)總線(xiàn)是DALLSA公司推出的總線(xiàn)標(biāo)準(zhǔn).文中介紹了一線(xiàn)總線(xiàn)信息紐扣器件iBUT-TON設(shè)計(jì)手持移動(dòng)數(shù)據(jù)收集器的設(shè)計(jì)方法,給出了該設(shè)計(jì)的硬件構(gòu)成和軟件框圖,最后給出了將該數(shù)據(jù)收
    發(fā)表于 04-22 13:57 ?14次下載

    溫度傳感器和一線(xiàn)總線(xiàn)協(xié)議

    數(shù)字一線(xiàn)溫度傳感器的出現(xiàn)為數(shù)字傳感器的發(fā)展奠定了基礎(chǔ)。介紹了一線(xiàn)總線(xiàn)溫度傳感器的工作原理及其采用的協(xié)議規(guī)范,討論了其同單片機(jī)和有關(guān)電路同其的接口電路,給出了試
    發(fā)表于 06-24 10:17 ?10次下載

    基于一線(xiàn)傳感器嵌入軟件系統(tǒng)設(shè)計(jì)的實(shí)現(xiàn)

    闡述了無(wú)操作系統(tǒng)的嵌入軟件系統(tǒng)設(shè)計(jì)的不同結(jié)構(gòu)類(lèi)型,并結(jié)合使用一線(xiàn)溫度傳感器的測(cè)溫系統(tǒng),給出了嵌入軟件系統(tǒng)設(shè)計(jì)主要使用的兩種方案。同時(shí),對(duì)DS18B20 使用C 語(yǔ)言
    發(fā)表于 08-29 10:55 ?33次下載

    DS18B20 一線(xiàn)總線(xiàn)數(shù)字傳感器

    DS18B20、DS1822 “一線(xiàn)總線(xiàn)”數(shù)字化溫度傳感器是DALLAS最新單線(xiàn)數(shù)字溫度傳感器, 同DS1820樣,DS18B20也支持“一線(xiàn)總線(xiàn)”接口,測(cè)量溫度范圍為 -55°C~+125°C,在-10~+85°C范圍內(nèi),精
    發(fā)表于 01-16 15:15 ?134次下載

    一線(xiàn)Linux嵌入開(kāi)發(fā)工程師的對(duì)話(huà)

    知識(shí),從你一線(xiàn)開(kāi)發(fā)經(jīng)驗(yàn)來(lái)說(shuō),給我們些建議: 陳工回答: 對(duì)于嵌入Linux入門(mén),如果有定基礎(chǔ),可以從驅(qū)動(dòng)開(kāi)始;如果沒(méi)有基礎(chǔ),我個(gè)人建議
    的頭像 發(fā)表于 03-14 07:43 ?4736次閱讀

    rt-thread SDIO驅(qū)動(dòng)框架分析(貼片SD卡flash驅(qū)動(dòng)\SD Nand flash驅(qū)動(dòng)

    文章目錄rt-threadSDIO驅(qū)動(dòng)框架分析之SD驅(qū)動(dòng)1.前言2.SDIO通用驅(qū)動(dòng)框架介紹3.文件架構(gòu)分析4.
    的頭像 發(fā)表于 04-04 17:41 ?987次閱讀
    rt-thread <b class='flag-5'>SDIO</b><b class='flag-5'>驅(qū)動(dòng)</b>框架分析(貼片<b class='flag-5'>SD</b>卡flash<b class='flag-5'>驅(qū)動(dòng)</b>\<b class='flag-5'>SD</b> <b class='flag-5'>Nand</b> flash<b class='flag-5'>驅(qū)動(dòng)</b>)

    芯知識(shí) | 語(yǔ)音芯片支持一線(xiàn)串口和兩線(xiàn)串口的作用與應(yīng)用優(yōu)勢(shì)

    隨著科技的不斷進(jìn)步,語(yǔ)音芯片作為現(xiàn)代電子產(chǎn)品中的核心組件,其功能和性能也在不斷提升。其中,語(yǔ)音芯片支持一線(xiàn)串口和兩線(xiàn)串口的功能,在實(shí)際應(yīng)用中具有重要的作用和優(yōu)勢(shì)。首先,讓我們了解一線(xiàn)串口和兩線(xiàn)
    的頭像 發(fā)表于 12-20 08:39 ?722次閱讀
    芯知識(shí) | 語(yǔ)音芯片支持<b class='flag-5'>一線(xiàn)</b>串口和兩<b class='flag-5'>線(xiàn)</b>串口的作用與應(yīng)用優(yōu)勢(shì)
    RM新时代网站-首页