吴忠躺衫网络科技有限公司

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

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

3天內不再提示

STM32用一線式驅動SD NAND,SDIO的一線式驅動

mkfounder ? 來源:mkfounder ? 作者:mkfounder ? 2023-12-19 14:14 ? 次閱讀

SDIO的一線式和四線式

SDIO(Secure Digital Input/Output)是一種用于在嵌入式系統中連接外部設備的標準接口。在SDIO標準中,一線式和四線式是指SDIO接口的不同工作模式。

一線式(Single-Line Mode):

工作原理: 在一線式模式下,SDIO接口僅使用單個數據線進行通信。這個模式通常用于相對簡單的應用,其中數據傳輸速度要求不是很高。

適用情境: 適用于對數據傳輸速度要求不高的場景,例如連接一些低速外設。

四線式(Four-Line Mode):

工作原理: 在四線式模式下,SDIO接口使用四根線進行通信,包括一個命令線、一個數據線、一個時鐘線和一個電源線。這個模式支持更高的數據傳輸速度。

適用情境: 適用于對數據傳輸速度有較高要求的應用,例如連接高速外設,比如攝像頭、Wi-Fi模塊等。

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

需要注意的是,使用四線式模式可能會對系統的硬件和軟件設計提出更高的要求,因為需要支持更復雜的通信協議和更高的時鐘頻率。

STM32的SDIO一線式驅動[SD NAND]([SD NAND | MK-米客方德])

有些平臺和MCU沒有SDIO接口的,STM32大部分型號有SDIO接口,具體可以看芯片手冊,

程序代碼

SD NAND初始化

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

uint8_t SD_Error;

/* 初始化時的時鐘不能大于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進行分頻得到SDIO_CK */
g_sdcard_handler.Init.ClockPowerSave = SDIO_CLOCK_POWER_SAVE_DISABLE;           /* 空閑時不關閉時鐘電源 */
g_sdcard_handler.Init.BusWide = SDIO_BUS_WIDE_1B;                               /* 1位數據線 */
g_sdcard_handler.Init.HardwareFlowControl = SDIO_HARDWARE_FLOW_CONTROL_ENABLE;  /* 開啟硬件流控 */
g_sdcard_handler.Init.ClockDiv = SDIO_TRANSFER_CLK_DIV;                         /* SD傳輸時鐘頻率最大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);/* 使能寬總線模式,-O0 優化會有問題 *///if (SD_Error != HAL_OK)//{//return 2;//}


return0;}

測試SD NAND的寫入

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

uint8_t SD_Error;

/* 初始化時的時鐘不能大于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進行分頻得到SDIO_CK */
g_sdcard_handler.Init.ClockPowerSave = SDIO_CLOCK_POWER_SAVE_DISABLE;           /* 空閑時不關閉時鐘電源 */
g_sdcard_handler.Init.BusWide = SDIO_BUS_WIDE_1B;                               /* 1位數據線 */
g_sdcard_handler.Init.HardwareFlowControl = SDIO_HARDWARE_FLOW_CONTROL_ENABLE;  /* 開啟硬件流控 */
g_sdcard_handler.Init.ClockDiv = SDIO_TRANSFER_CLK_DIV;                         /* SD傳輸時鐘頻率最大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);/* 使能寬總線模式,-O0 優化會有問題 *///if (SD_Error != HAL_OK)//{//return 2;//}


return0;}

測試SD NAND的讀出

/**
 * @brief測試SD卡的讀取
 *@notesecaddr地址開始,讀取seccnt個扇區的數據
 * @paramsecaddr : 扇區地址
 * @paramseccnt: 扇區數
 * @retval
 */voidsd_test_read(uint32_t secaddr,uint32_t seccnt){

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

buf =mymalloc(SRAMIN, seccnt *512);     /* 申請內存,從SDRAM申請內存 */
sta =sd_read_disk(buf, secaddr, seccnt);/* 讀取secaddr扇區開始的內容 */

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開始的扇區數據 */
}

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);/* 釋放內存 */}

實驗現象

image.png

image.png

使用的芯片是MK-米客方德的工業級芯片MKDV1GIL-AS,

image.png

需要工程的可以聯系MK-米客方德。

審核編輯:湯梓紅

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

    關注

    456

    文章

    51178

    瀏覽量

    427265
  • 嵌入式
    +關注

    關注

    5092

    文章

    19177

    瀏覽量

    307676
  • NAND
    +關注

    關注

    16

    文章

    1691

    瀏覽量

    136462
  • 驅動
    +關注

    關注

    12

    文章

    1851

    瀏覽量

    85640
  • STM32
    +關注

    關注

    2272

    文章

    10923

    瀏覽量

    357576
收藏 人收藏

    評論

    相關推薦

    USB一線通監控副屏設計方案

    在2024年全國大學生嵌入芯片與系統設計競賽中,各大高校學子紛紛展現出卓越的創新能力和扎實的技術功底。今天,特別為大家分享獲獎作品——USB一線通監控副屏,它以其獨特的設計和實用的功能贏得廣泛好評與認可。
    的頭像 發表于 11-28 09:45 ?884次閱讀
    USB<b class='flag-5'>一線</b>通監控副屏設計方案

    今日話題:一線城市 or 二城市?

    `社會學家鄭也夫說人生不外乎在追求三種狀態:舒服、刺激、牛B。其實也是道城市選擇題:皆因年輕的我們,愛冒險勝過愛安逸,愛牛B勝過愛舒服,自愿進入人生愿境最誘人、生存邏輯又最殘酷的一線城市。這是
    發表于 03-09 10:10

    JQ8400一線串口我應該怎么接線啊?兩串口該怎么接線?

    JQ8400一線串口我應該怎么接線啊?兩串口該怎么接線?淘寶買的那測試程序不響,不知道是不是接線出問題還是怎樣,求教!!
    發表于 01-03 21:14

    一線城市程序員薪資數據概述

    一線城市程序員薪資數據出爐,你屬于哪檔?
    發表于 06-26 16:05

    lcd2004一線屏仿真

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

    SD NANDSDIOSTM32上的應用詳解(上篇)

    的命令訪問(STM32主機通過驅動SDIO外設通過CMD命令向從機SD卡發送命令),SDIO
    發表于 11-15 15:17

    rt-thread SDIO驅動框架分析(SD卡flash驅動\SD Nand flash驅動

    (點擊跳轉))在 rt_hw_sdio_init 函數中,驅動程序主要初始化以下幾個結構體:stm32外設HAL庫配置結構體 SD_HandleTypeDef hsd
    發表于 04-04 16:26

    基于TINI的一線制網絡互連技術

    概述 TINI的基本概念和工作原理,分析 TINI的軟件環境;簡述基于一線制技術的溫度型iButton DS1920和小型氣象儀,給出利用 TINI實現一線制網絡與 Internet連接的應用實例。
    發表于 04-13 10:15 ?20次下載

    一線總線器件實現移動數據收集

    一線總線是DALLSA公司推出的總線標準.文中介紹了一線總線信息紐扣器件iBUT-TON設計手持移動數據收集器的設計方法,給出了該設計的硬件構成和軟件框圖,最后給出了將該數據收
    發表于 04-22 13:57 ?14次下載

    溫度傳感器和一線總線協議

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

    基于一線傳感器嵌入軟件系統設計的實現

    闡述了無操作系統的嵌入軟件系統設計的不同結構類型,并結合使用一線溫度傳感器的測溫系統,給出了嵌入軟件系統設計主要使用的兩種方案。同時,對DS18B20 使用C 語言
    發表于 08-29 10:55 ?33次下載

    DS18B20 一線總線數字傳感器

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

    一線Linux嵌入開發工程師的對話

    知識,從你一線開發經驗來說,給我們些建議: 陳工回答: 對于嵌入Linux入門,如果有定基礎,可以從驅動開始;如果沒有基礎,我個人建議
    的頭像 發表于 03-14 07:43 ?4791次閱讀

    rt-thread SDIO驅動框架分析(貼片SD卡flash驅動\SD Nand flash驅動

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

    芯知識 | 語音芯片支持一線串口和兩串口的作用與應用優勢

    隨著科技的不斷進步,語音芯片作為現代電子產品中的核心組件,其功能和性能也在不斷提升。其中,語音芯片支持一線串口和兩串口的功能,在實際應用中具有重要的作用和優勢。首先,讓我們了解一線串口和兩
    的頭像 發表于 12-20 08:39 ?791次閱讀
    芯知識 | 語音芯片支持<b class='flag-5'>一線</b>串口和兩<b class='flag-5'>線</b>串口的作用與應用優勢
    百家乐桌布橡胶| 百家乐官网澳门路规则算法| 优博在线娱乐城| 棋牌游戏论坛| 大发888大法8668| 大发888攻略| 棋牌类单机游戏下载| 水果机技术打法| 百家乐看| 百家乐庄牌| 恒丰百家乐的玩法技巧和规则| 赌场百家乐是如何玩| 百家乐套装| 百家乐的玩法技巧和规则| 博彩网百家乐中和局| 百家乐色子玩法| 属兔魔羯女在哪个方位做生意| 百家乐官网追号软件| 赌场百家乐赌场| 百家乐具体怎么收费的| 德州扑克锦标赛| 网络娱乐场| 武邑县| 宝格丽百家乐官网娱乐城| 百家乐官网网络真人斗地主| 百家乐官网赢钱打| 百家乐官网网络赌博真假| 百家乐官网赢钱公式论| 百家乐视频地主| 什么风水适合做生意| 百家乐赢钱面面观| 华人棋牌游戏| 御金百家乐官网娱乐城| 微信百家乐官网群规则大全| 澳门百家乐博客| 威尼斯人娱乐网赌| 尚品棋牌注册| 波音百家乐官网自动投注| 百家乐投注技巧| 百家乐的珠盘| 大发888在线娱乐城合作伙伴 |