亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

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

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

STM32 如何驅(qū)動(dòng) 瀚海微SD NAND

呂輝 ? 來源:jf_40298777 ? 作者:jf_40298777 ? 2025-10-27 10:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、工程說明與接口定義?

適用芯片:?STM32F4xx / STM32F7xx / STM32H7xx?(其他系列可按 HAL調(diào)整)

接口方式:?SDIO 4-bit總線?(默認(rèn))

協(xié)議標(biāo)準(zhǔn):?SD 2.0?(含 SDHC/SDXC),通過 CMD8/ACMD41完成電壓與容量識(shí)別

文件系統(tǒng):?FatFS?(diskio接口對(duì)接,扇區(qū)大小固定為512B

硬件要點(diǎn):

?CD/DAT3作為片選?(硬件拉高,SDIO自動(dòng)控制)

?電源上電順序?:VCC先上電并穩(wěn)定,再拉低 CMD/CLK/DAT0~3,初始化完成后再釋放 DAT3片選

建議在 ?3.3V?電源域,SDIO接口附近放置 ?0.1μF + 10μF?去耦

本歷程默認(rèn)使用 ?HAL庫(kù),時(shí)鐘與引腳在 CubeMX中配置后生成工程再集成

?二、CubeMX與初始化配置?

RCC:HSE/PLL正常輸出,系統(tǒng)時(shí)鐘按芯片手冊(cè)設(shè)置

SDIO:

Mode:?SDIO?

Prescaler:初始分頻使 ?SDIO_CK ≤ 400 kHz?(識(shí)別階段)

Bus Wide:?1-bit?(初始化),初始化成功后切換 ?4-bit?

Hardware Flow Control:?Enable?

GPIO:CMD、CLK、DAT0~3設(shè)為 ?SDIO復(fù)用推挽;CD/DAT3設(shè)為 ?輸入上拉?(硬件片選)

NVIC:開啟 ?SDIO中斷?與 ?DMA中斷?(優(yōu)先級(jí)略高于 SDIO)

生成工程后,將以下 sdio_sd.c/h加入工程,并在 main中調(diào)用初始化與測(cè)試接口

三、核心驅(qū)動(dòng)代碼?

頭文件:sdio_sd.h

#ifndef __SDIO_SD_H

#define __SDIO_SD_H

#include "stm32f4xx_hal.h"

#include "ff_gen_drv.h"

//返回值定義(與 HAL一致)

#define RES_OK 0U

#define RES_ERROR 1U

#define RES_NOTRDY 2U

#define RES_PARERR 3U

// SD狀態(tài)

typedef enum {

SD_CARD_UNINIT = 0,

SD_CARD_READY,

SD_CARD_IDENT,

SD_CARD_STBY,

SD_CARD_TRAN,

SD_CARD_DATA,

SD_CARD_RCV,

SD_CARD_PRG,

SD_CARD_DIS,

SD_CARD_ERROR

} sd_card_state_t;

//公共接口(供 diskio.c調(diào)用)

DSTATUS sd_disk_initialize (BYTE pdrv);

DSTATUS sd_disk_status (BYTE pdrv);

DRESULT sd_disk_read (BYTE pdrv, BYTE *buff, DWORD sector, UINT count);

#if _USE_WRITE == 1

DRESULT sd_disk_write (BYTE pdrv, const BYTE *buff, DWORD sector, UINT count);

#endif

#if _USE_IOCTL == 1

DRESULT sd_disk_ioctl (BYTE pdrv, BYTE cmd, void *buff);

#endif

//內(nèi)部接口(可選)

HAL_StatusTypeDef sd_init_card(void);

HAL_StatusTypeDef sd_switch_4bit(void);

sd_card_state_t sd_get_state(void);

uint32_t sd_get_sector_count(void);

uint32_t sd_get_block_size(void);

#endif

源文件:sdio_sd.c

#include "sdio_sd.h"

#include

SD_HandleTypeDef hsd;

HAL_SD_CardInfoTypeDef SDCardInfo;

static DSTATUS disk_status_ = STA_NOINIT;

//私有:等待卡退出空閑(CMD0 -> CMD1循環(huán))

static HAL_StatusTypeDef sd_cmd0_cmd1(void)

{

uint32_t resp;

uint32_t timeout = 1000000;

// CMD0: GO_IDLE_STATE

if (HAL_SD_CmdGoIdleState(&hsd, &resp) != HAL_OK) return HAL_ERROR;

if ((resp & 0xFF) != 0x01) return HAL_ERROR;

// CMD1: SEND_OP_COND(SD 2.0)

do {

if (HAL_SD_CmdAppOpCond(&hsd, 0x00000000, &resp) != HAL_OK) return HAL_ERROR;

if (timeout-- == 0) return HAL_TIMEOUT;

} while ((resp & 0x80000000) != 0); // CCS位未置位

return HAL_OK;

}

//私有:ACMD41(帶 HCS標(biāo)志,識(shí)別 SDHC/SDXC)

static HAL_StatusTypeDef sd_acmd41(void)

{

uint32_t resp;

uint32_t timeout = 1000000;

do {

if (HAL_SD_CmdAppCommand(&hsd, 0x00000000, &resp) != HAL_OK) return HAL_ERROR; // CMD55

if ((resp & 0xFF) != 0x01) return HAL_ERROR;

if (HAL_SD_CmdAppOpCond(&hsd, 0x40000000, &resp) != HAL_OK) return HAL_ERROR; // ACMD41 with HCS

if (timeout-- == 0) return HAL_TIMEOUT;

} while ((resp & 0x80000000) == 0);

return HAL_OK;

}

//私有:讀取 OCR(可選)

static HAL_StatusTypeDef sd_read_ocr(void)

{

uint32_t resp;

return HAL_SD_CmdReadOCR(&hsd, &resp);

}

//私有:獲取 CSD/CID(可選)

static HAL_StatusTypeDef sd_get_cid_csd(void)

{

if (HAL_SD_GetCardCID(&hsd, (HAL_SD_CardCIDTypeDef*)&SDCardInfo.CID) != HAL_OK)

return HAL_ERROR;

if (HAL_SD_GetCardCSD(&hsd, (HAL_SD_CardCSDTypeDef*)&SDCardInfo.CSD) != HAL_OK)

return HAL_ERROR;

return HAL_OK;

}

//初始化卡(SD 2.0)

HAL_StatusTypeDef sd_init_card(void)

{

HAL_StatusTypeDef status;

// 1) CMD0

if ((status = sd_cmd0_cmd1()) != HAL_OK) return status;

// 2) CMD1或 ACMD41(SD 2.0走 ACMD41)

if ((status = sd_acmd41()) != HAL_OK) return status;

// 3) CMD2: ALL_SEND_CID

if (HAL_SD_CmdSendCID(&hsd, (uint32_t*)&SDCardInfo.CID) != HAL_OK) return HAL_ERROR;

// 4) CMD3: SEND_RELATIVE_ADDR(獲取 RCA)

if (HAL_SD_CmdSetRelAdd(&hsd, (uint32_t*)&SDCardInfo.RCA) != HAL_OK) return HAL_ERROR;

// 5) CMD9: SEND_CSD

if (HAL_SD_CmdSendCSD(&hsd, (uint32_t*)&SDCardInfo.CSD) != HAL_OK) return HAL_ERROR;

// 6) CMD7: SELECT/DESELECT_CARD(選中卡)

if (HAL_SD_CmdSelDesel(&hsd, (uint32_t)(SDCardInfo.RCA << 16)) != HAL_OK) return HAL_ERROR;

// 7) CMD13: SEND_STATUS

if (HAL_SD_CmdSendStatus(&hsd, (uint32_t)(SDCardInfo.RCA << 16), &resp) != HAL_OK) return HAL_ERROR;

// 8)讀取 OCR(可選)

if ((status = sd_read_ocr()) != HAL_OK) return status;

// 9)讀取 CSD/CID(可選)

if ((status = sd_get_cid_csd()) != HAL_OK) return status;

// 10)設(shè)置塊長(zhǎng)度為 512(SDSC必要;SDHC/SDXC固定 512B,但某些主機(jī)仍要求)

if (HAL_SD_CmdBlockLength(&hsd, 512) != HAL_OK) return HAL_ERROR;

return HAL_OK;

}

//切換 4-bit總線(初始化后調(diào)用)

HAL_StatusTypeDef sd_switch_4bit(void)

{

uint32_t resp;

// CMD55 + ACMD6(bus width = 2 => 4-bit)

if (HAL_SD_CmdAppCommand(&hsd, 0x00000000, &resp) != HAL_OK) return HAL_ERROR;

if (HAL_SD_CmdAppSetBusWidth(&hsd, 2, &resp) != HAL_OK) return HAL_ERROR;

hsd.Instance->CLKCR |= SDIO_CLKCR_WIDBUS_0; // 4-bit

return HAL_OK;

}

//讀取扇區(qū)

DRESULT sd_disk_read (BYTE pdrv, BYTE *buff, DWORD sector, UINT count)

{

(void)pdrv;

if (disk_status_ != RES_OK) return RES_NOTRDY;

if (HAL_SD_ReadBlocks(&hsd, (uint32_t*)buff, sector, count, 1000000) == HAL_OK) {

//等待傳輸完成

while (HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER) {}

return RES_OK;

}

return RES_ERROR;

}

//寫入扇區(qū)

#if _USE_WRITE == 1

DRESULT sd_disk_write (BYTE pdrv, const BYTE *buff, DWORD sector, UINT count)

{

(void)pdrv;

if (disk_status_ != RES_OK) return RES_NOTRDY;

if (HAL_SD_WriteBlocks(&hsd, (uint32_t*)buff, sector, count, 1000000) == HAL_OK) {

while (HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER) {}

return RES_OK;

}

return RES_ERROR;

}

#endif

// IOCTL

#if _USE_IOCTL == 1

DRESULT sd_disk_ioctl (BYTE pdrv, BYTE cmd, void *buff)

{

(void)pdrv;

DRESULT res = RES_PARERR;

switch (cmd) {

case CTRL_SYNC:

while (HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER) {}

res = RES_OK;

break;

case GET_SECTOR_COUNT:

*(uint32_t*)buff = SDCardInfo.BlockNbr;

res = RES_OK;

break;

case GET_SECTOR_SIZE:

*(uint32_t*)buff = SDCardInfo.BlockSize;

res = RES_OK;

break;

case GET_BLOCK_SIZE:

*(uint32_t*)buff = SDCardInfo.BlockSize; // SD 2.0通常為 512

res = RES_OK;

break;

default:

res = RES_PARERR;

}

return res;

}

#endif

// Disk Status

DSTATUS sd_disk_status (BYTE pdrv)

{

(void)pdrv;

if (disk_status_ == RES_OK) {

if (HAL_SD_GetCardState(&hsd) == HAL_SD_CARD_TRANSFER)

return RES_OK;

else

return STA_NOINIT;

}

return disk_status_;

}

// Disk Initialize

DSTATUS sd_disk_initialize (BYTE pdrv)

{

(void)pdrv;

if (disk_status_ == RES_OK) return RES_OK;

//上電復(fù)位:拉低 DAT3片選(若硬件未處理)

// __HAL_RCC_SDIO_CLK_ENABLE();

// SDIO power on/off sequence per reference manual

if (sd_init_card() == HAL_OK) {

if (sd_switch_4bit() == HAL_OK) {

disk_status_ = RES_OK;

return RES_OK;

}

}

disk_status_ = RES_ERROR;

return RES_ERROR;

}

四、FatFS對(duì)接與使用示例?

diskio.c(最小化對(duì)接)

#include "diskio.h"

#include "ff_gen_drv.h"

#include "sdio_sd.h"

#define SD_DISK_NUM 0

DSTATUS disk_status (BYTE pdrv) { return sd_disk_status(pdrv); }

DSTATUS disk_initialize (BYTE pdrv) { return sd_disk_initialize(pdrv); }

DRESULT disk_read (BYTE pdrv, BYTE *buff, DWORD sector, UINT count) { return sd_disk_read(pdrv, buff, sector, count); }

#if _USE_WRITE

DRESULT disk_write (BYTE pdrv, const BYTE *buff, DWORD sector, UINT count) { return sd_disk_write(pdrv, buff, sector, count); }

#endif

#if _USE_IOCTL

DRESULT disk_ioctl (BYTE pdrv, BYTE cmd, void *buff) { return sd_disk_ioctl(pdrv, cmd, buff); }

#endif

main.c最小示例

#include "ff.h"

#include "sdio_sd.h"

FATFS fs;

FIL f;

FRESULT fr;

UINT bw;

int main(void)

{

HAL_Init();

SystemClock_Config();

MX_GPIO_Init();

MX_SDIO_SD_Init();

//掛載文件系統(tǒng)

fr = f_mount(&fs, "", 1);

if (fr != FR_OK) {

//格式化(首次燒錄或異常時(shí))

fr = f_mkfs("", FM_ANY, 0, buff, sizeof(buff));

if (fr == FR_OK) fr = f_mount(&fs, "", 1);

}

if (fr == FR_OK) {

fr = f_open(&f, "test.txt", FA_WRITE | FA_CREATE_ALWAYS);

if (fr == FR_OK) {

f_puts("Hello, SD NAND (SDIO 4-bit, SD 2.0)rn", &f);

f_close(&f);

}

}

while (1) {

//主循環(huán)

}

}

五、常見問題與優(yōu)化建議?

初始化失敗

檢查?電源 3.3V穩(wěn)定、去耦充分

確認(rèn)?SDIO引腳復(fù)用與上拉? 正確,DAT3片選邏輯符合

識(shí)別階段?SDIO_CK ≤ 400 kHz,初始化完成后再提速

若卡不支持?ACMD41,可回退到?CMD1?

速度優(yōu)化

初始化成功后調(diào)用?sd_switch_4bit()?,并將?ClockDiv? 調(diào)至芯片手冊(cè)允許的最大值

啟用?SDIO DMA? 與合適的中斷優(yōu)先級(jí)

文件系統(tǒng)

?SDHC? 容量上限?32GB,?SDXC? 為 64GB+;FatFS對(duì)大容量支持良好

若需?中文長(zhǎng)文件名,在 ffconf.h啟用?_USE_LFN=2? 并配置?FF_CODE_PAGE=936?

穩(wěn)定性

長(zhǎng)時(shí)間寫入建議加入?寫緩存/隊(duì)列? 與?掉電檢測(cè)?(GPIO中斷 +緩存落盤)

工業(yè)環(huán)境注意?ESD防護(hù)? 與?TVS,貼片 SD NAND比 TF卡更抗震動(dòng)

以上文件可直接集成到現(xiàn)有 STM32工程,配合 CubeMX生成的初始化代碼即可完成?SD 2.0瀚海微SD NAND? 的穩(wěn)定驅(qū)動(dòng)與?FATFS? 文件讀寫。

審核編輯 黃宇

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

    關(guān)注

    2301

    文章

    11103

    瀏覽量

    370091
  • SD NAND
    +關(guān)注

    關(guān)注

    0

    文章

    102

    瀏覽量

    1699
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32+SD NAND(貼片SD卡)完成FATFS文件系統(tǒng)移植與測(cè)試

    這篇文章就手把手教大家,在STM32上完成FATFS文件系統(tǒng)的移植;主控芯片采用STM32F103ZET6, 存儲(chǔ)芯片我這里采用(雷龍) CS創(chuàng)世 SD NAND 。
    的頭像 發(fā)表于 07-17 17:24 ?1.1w次閱讀
    <b class='flag-5'>STM32+SD</b> <b class='flag-5'>NAND</b>(貼片<b class='flag-5'>SD</b>卡)完成FATFS文件系統(tǒng)移植與測(cè)試

    什么是SD NAND存儲(chǔ)芯片?

    標(biāo)準(zhǔn)驅(qū)動(dòng)代碼,省去了驅(qū)動(dòng)代碼編程環(huán)節(jié)。支持TF卡啟動(dòng)的SOC都可以用SD NAND,提供STM32參考例程及原廠技術(shù)支持,主流容量:128M
    發(fā)表于 01-05 17:54

    關(guān)于SD NAND 的概述

    的成本效益,特別是在需要中小容量存儲(chǔ)的應(yīng)用場(chǎng)景中。   4. 易用性與兼容性   免驅(qū)動(dòng)使用:由于SD NAND內(nèi)置了必要的控制器和固件,大多數(shù)CPU只要支持SD接口就能直接使用,無(wú)需
    發(fā)表于 12-06 11:22

    STM32系列與SD NAND 成功的經(jīng)驗(yàn)分享

    緩存、協(xié)議棧等等。這種場(chǎng)景下可以說SD NANDSTM32系列是最佳拍檔。首先從SD NAND的架構(gòu)來說,簡(jiǎn)單來說內(nèi)部采用使用壽命最長(zhǎng)、性
    發(fā)表于 07-12 10:34

    STM32SD驅(qū)動(dòng)及液晶驅(qū)動(dòng)源代碼資料

    STM32SD驅(qū)動(dòng)及液晶驅(qū)動(dòng)源代碼
    發(fā)表于 01-13 08:57 ?164次下載

    SD NAND與MCU(STM32系列)最佳拍檔

    SD NAND與MCU(STM32系列)最佳拍檔
    發(fā)表于 11-18 16:51 ?72次下載
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>與MCU(<b class='flag-5'>STM32</b>系列)最佳拍檔

    什么是SD NAND存儲(chǔ)芯片? SD NAND與TF卡的區(qū)別

    什么是SD NAND?它俗稱貼片式T卡,貼片式TF卡,貼片式SD卡,貼片式內(nèi)存卡,貼片式閃存卡,貼片式卡...等等。雖然SD NAND 和T
    的頭像 發(fā)表于 01-06 14:35 ?3043次閱讀
    什么是<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>存儲(chǔ)芯片? <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>與TF卡的區(qū)別

    SD NAND和SPI NAND的區(qū)別

    SD NAND和SPI NAND各有優(yōu)缺點(diǎn),適用于不同的應(yīng)用場(chǎng)景。SD NAND提供更高的讀寫速度和大容量存儲(chǔ),適合需要高性能和大容量存儲(chǔ)的
    的頭像 發(fā)表于 06-04 14:26 ?3354次閱讀

    瀚海SD NANDSD 協(xié)議(29)硬件接口

    SD存儲(chǔ)卡硬件接口 SD存儲(chǔ)卡有6條通信線路和3條供電線路: CMD:命令是雙向信號(hào)。主機(jī)和卡驅(qū)動(dòng)以推拉方式工作。 DAT0-3:數(shù)據(jù)線是雙向信號(hào)。主機(jī)和卡驅(qū)動(dòng)在推拉模式下運(yùn)行 CLK
    的頭像 發(fā)表于 09-24 10:19 ?994次閱讀
    <b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>之<b class='flag-5'>SD</b> 協(xié)議(29)硬件接口

    瀚海SD NANDSD 協(xié)議(32)1.8V信令的驅(qū)動(dòng)強(qiáng)度和總線時(shí)序

    輸出驅(qū)動(dòng)強(qiáng)度 4級(jí)驅(qū)動(dòng)強(qiáng)度為了保持主機(jī)系統(tǒng)的靈活設(shè)計(jì),輸出驅(qū)動(dòng)可以看到大范圍的主機(jī)負(fù)載。 4?種可選驅(qū)動(dòng)強(qiáng)度使主機(jī)系統(tǒng)能夠調(diào)整驅(qū)動(dòng)強(qiáng)度,以優(yōu)
    的頭像 發(fā)表于 09-26 10:31 ?687次閱讀
    <b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>之<b class='flag-5'>SD</b> 協(xié)議(32)1.8V信令的<b class='flag-5'>驅(qū)動(dòng)</b>強(qiáng)度和總線時(shí)序

    瀚海SD NANDSD 協(xié)議(36)SPI模式

    簡(jiǎn)介 SPI模式由基于flash的SD存儲(chǔ)卡提供的輔助通信協(xié)議組成。 這種模式是SD存儲(chǔ)卡協(xié)議的一個(gè)子集,設(shè)計(jì)用于與SPI通道通信,通常在摩托羅拉(以及最近一些其他供應(yīng)商)的微控制器中發(fā)現(xiàn)。 接口
    的頭像 發(fā)表于 10-08 10:13 ?963次閱讀
    <b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>之<b class='flag-5'>SD</b> 協(xié)議(36)SPI模式

    STM32F407 MCU使用SD NAND?不斷電初始化失效解決方案

    STM32F407微控制器單元(MCU)與SD NAND的結(jié)合提供了強(qiáng)大的存儲(chǔ)解決方案。然而,不斷電初始化失效問題可能會(huì)導(dǎo)致系統(tǒng)穩(wěn)定性和數(shù)據(jù)完整性受損。我們將STM32F407與
    的頭像 發(fā)表于 12-11 10:51 ?1340次閱讀
    <b class='flag-5'>STM32</b>F407 MCU使用<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>?不斷電初始化失效解決方案

    CS創(chuàng)世SD NAND在北京君正平臺(tái)和瑞芯RK平臺(tái)的應(yīng)用

    介紹、對(duì)SD NAND進(jìn)行讀寫操作的三大方式、SD驅(qū)動(dòng)框架介紹以及SD NAND啟動(dòng),前三個(gè)板
    的頭像 發(fā)表于 08-22 16:52 ?2307次閱讀
    CS創(chuàng)世<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>在北京君正平臺(tái)和瑞芯<b class='flag-5'>微</b>RK平臺(tái)的應(yīng)用

    瀚海SD NAND/TF卡——數(shù)據(jù)世界的全能搭檔

    當(dāng)智能設(shè)備滲透生活每個(gè)角落,從旅行時(shí)運(yùn)動(dòng)相機(jī)捕捉的山野風(fēng)光,到工作中平板存儲(chǔ)的設(shè)計(jì)方案,再到無(wú)人機(jī)航拍的城市全景,每一份數(shù)據(jù)都承載著價(jià)值與回憶。瀚海SD NAND/TF卡,以硬核性能
    的頭像 發(fā)表于 10-13 11:12 ?133次閱讀
    <b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>/TF卡——數(shù)據(jù)世界的全能搭檔

    瀚海SD NAND/TF卡:賦能全場(chǎng)景數(shù)據(jù)存儲(chǔ),定義高效安全新基準(zhǔn)

    在數(shù)字技術(shù)深度融入生產(chǎn)生活的當(dāng)下,無(wú)論是消費(fèi)端的智能設(shè)備數(shù)據(jù)記錄,還是工業(yè)領(lǐng)域的關(guān)鍵信息存儲(chǔ),都對(duì)存儲(chǔ)產(chǎn)品的性能、安全性與適配性提出更高要求。瀚海SD NAND/TF卡憑借硬核技術(shù)實(shí)
    的頭像 發(fā)表于 10-14 10:18 ?95次閱讀
    <b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>/TF卡:賦能全場(chǎng)景數(shù)據(jù)存儲(chǔ),定義高效安全新基準(zhǔn)