那曲檬骨新材料有限公司

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

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

3天內不再提示

CS創世SD NAND的存儲芯片應用方案

深圳市雷龍發展有限公司 ? 2023-11-15 18:09 ? 次閱讀

前言:

很感謝深圳雷龍發展有限公司為博主提供的兩片SD NAND的存儲芯片,在這里博主記錄一下自己的使用過程以及部分設計。

深入了解該產品

拿到這個產品之后,我大致了解了下兩款芯片的性能。CSNP4GCR01-AMW是一種基于NAND閃存和SD控制器的4Gb密度嵌入式存儲;而CSNP32GCR01-AOW是一種基于NAND閃存和SD控制器的32Gb密度嵌入式存儲。與原始NAND相比其具有嵌入式壞塊管理和更強的嵌入式ECC。即使在異常斷電,它仍然可以安全地保存數據。作為一個存儲芯片,它確實做到了小巧,LGA-8的封裝對比我之前用到過的TF卡,只占到了其面積的三分之一,這樣對于一些嵌入式的設計就方便了很多。

image.php?url=YD_cnt_100_01S74cotZJkP

雷龍官方還很貼心的提供了樣品的測試板,在這款測試板上,我焊接了4GB的CSNP4GCR01-AMW上去,并且跑了一下分,對于一款小的存儲芯片而言,實在難得。

image.php?url=YD_cnt_100_01S74cwNmGXa

(上圖為測試板焊接圖)

博主日前在設計基于H616與NB-IOT的嵌入式智能儲物柜的時候考慮過存儲方面的問題,當時在SD NAND和EMMC與TF卡中徘徊,以下是幾個存儲類型的對比。

image.php?url=YD_cnt_100_01S74ct8xcnT

image.php?url=YD_cnt_100_01S74cuFWRNL

經過多方對比,本著不需要頻繁更換的原則,同時也為了更好的防水和成本考慮,最終決定使用雷龍公司的SD NAND 作為設計樣品的存儲部分。

此外,SD NAND還具有不用寫驅動程序自帶壞塊管理的NAND FLASH(貼片式TF卡),不標準的SDIO接口,也同時兼容SPI/SD接口,10萬次的SLC晶圓擦寫壽命,通過一萬次的隨機掉電測試耐高低溫,經過跑分測得,速度級別Class10。標準的SD2.0協議,普通的SD卡可以直接驅動,支持TF卡啟動的SOC都可以用SD NAND,而且雷龍官方還貼心的提供了STM32參考例程和原廠技術支持,這對于剛上手的小白而言,十分友好。

設計理念:

使用H616作為主控CPU并搭配NB-IOT來向申請下來的云端傳輸數據,當WIFI正常時,儲物數據每擱兩小時向云端傳輸一次,當有人取出物品時再次向云端發送一次數據(不保留在SD NAND中);一旦系統檢測到WIFI出現問題,儲物數據轉而存儲到SD NAND中,取物時輸入的物品ID和取出時間一并放入SD NAND中(我也是看中了SD NAND與原始NAND相比其具有嵌入式壞塊管理和更強的嵌入式ECC。即使在異常斷電,它仍然可以安全地保存數據這一點)。

部分SD NAND的參考設計

根據官方數據手冊提供的SD NAND參考設計,只占用8個GPIO,對于H616來說,確實很友好

image.php?url=YD_cnt_100_01S74csjjIkc

這里為了不泄露他人的勞動成果,我也就不粘PCB設計了。

image.php?url=YD_cnt_100_01S74cvEChCC

采用H616驅動SD NAND的示例代碼

下面是關于H616驅動SD NAND的示例代碼,這里記錄一下自己當初的學習過程(注:這個代碼不能直接拿過來就用,而是要根據自己的需求修改)

  1. #include
  2. #include
  3. #include
  4. #include
  5. #include "h616_sdio.h"
  6. // 定義SDIO引腳
  7. #define SDIO_CMD_PIN 0
  8. #define SDIO_CLK_PIN 1
  9. #define SDIO_D0_PIN 2
  10. #define SDIO_D1_PIN 3
  11. #define SDIO_D2_PIN 4
  12. #define SDIO_D3_PIN 5
  13. // 定義NAND芯片命令
  14. #define CMD_READ 0x00
  15. #define CMD_WRITE 0x80
  16. #define CMD_ERASE 0x60
  17. #define CMD_STATUS 0x70
  18. #define CMD_RESET 0xff
  19. // 定義NAND芯片狀態
  20. #define STATUS_READY 0x40
  21. #define STATUS_ERROR 0x01
  22. // 初始化SDIO控制器
  23. void sdio_init()
  24. {
  25. // 設置SDIO引腳模式和速率
  26. h616_sdio_set_pin_mode(SDIO_CMD_PIN, H616_SDIO_PIN_MODE_SDIO);
  27. h616_sdio_set_pin_mode(SDIO_CLK_PIN, H616_SDIO_PIN_MODE_SDIO);
  28. h616_sdio_set_pin_mode(SDIO_D0_PIN, H616_SDIO_PIN_MODE_SDIO);
  29. h616_sdio_set_pin_mode(SDIO_D1_PIN, H616_SDIO_PIN_MODE_SDIO);
  30. h616_sdio_set_pin_mode(SDIO_D2_PIN, H616_SDIO_PIN_MODE_SDIO);
  31. h616_sdio_set_pin_mode(SDIO_D3_PIN, H616_SDIO_PIN_MODE_SDIO);
  32. h616_sdio_set_clock(H616_SDIO_CLOCK_FREQ_25MHZ);
  33. // 初始化SDIO控制器
  34. h616_sdio_init();
  35. }
  36. // 發送NAND芯片命令
  37. void nand_send_cmd(uint8_t cmd)
  38. {
  39. // 設置SDIO控制器傳輸模式和命令碼
  40. h616_sdio_set_transfer_mode(H616_SDIO_TRANSFER_MODE_WRITE);
  41. h616_sdio_set_command_code(cmd);
  42. // 發送命令
  43. h616_sdio_send_command();
  44. }
  45. // 發送NAND芯片地址
  46. void nand_send_addr(uint32_t addr)
  47. {
  48. // 設置SDIO控制器傳輸模式和地址
  49. h616_sdio_set_transfer_mode(H616_SDIO_TRANSFER_MODE_WRITE);
  50. h616_sdio_set_address(addr);
  51. // 發送地址
  52. h616_sdio_send_address();
  53. }
  54. // 讀取NAND芯片數據
  55. void nand_read_data(uint8_t *data, uint32_t size)
  56. {
  57. // 設置SDIO控制器傳輸模式
  58. h616_sdio_set_transfer_mode(H616_SDIO_TRANSFER_MODE_READ);
  59. // 讀取數據
  60. h616_sdio_read_data(data, size);
  61. }
  62. // 寫入NAND芯片數據
  63. void nand_write_data(const uint8_t *data, uint32_t size)
  64. {
  65. // 設置SDIO控制器傳輸模式
  66. h616_sdio_set_transfer_mode(H616_SDIO_TRANSFER_MODE_WRITE);
  67. // 寫入數據
  68. h616_sdio_write_data(data, size);
  69. }
  70. // 讀取NAND芯片狀態
  71. uint8_t nand_read_status()
  72. {
  73. uint8_t status;
  74. // 發送讀取狀態命令
  75. nand_send_cmd(CMD_STATUS);
  76. // 讀取狀態
  77. nand_read_data(&status, 1);
  78. return status;
  79. }
  80. // 等待NAND芯片準備就緒
  81. void nand_wait_ready()
  82. {
  83. uint8_t status;
  84. // 循環讀取狀態,直到NAND芯片準備就緒
  85. do {
  86. status = nand_read_status();
  87. } while ((status & STATUS_READY) == 0);
  88. }
  89. // 讀取NAND芯片數據
  90. void nand_read(uint32_t page, uint32_t column, uint8_t *data, uint32_t size)
  91. {
  92. // 發送讀取命令和地址
  93. nand_send_cmd(CMD_READ);
  94. nand_send_addr(column | (page << 8));
  95. // 等待NAND芯片準備就緒
  96. nand_wait_ready();
  97. // 讀取數據
  98. nand_read_data(data, size);
  99. }
  100. // 寫入NAND芯片數據
  101. void nand_write(uint32_t page, uint32_t column, const uint8_t *data, uint32_t size)
  102. {
  103. // 發送寫入命令和地址
  104. nand_send_cmd(CMD_WRITE);
  105. nand_send_addr(column | (page << 8));
  106. // 寫入數據
  107. nand_write_data(data, size);
  108. // 等待NAND芯片準備就緒
  109. nand_wait_ready();
  110. }
  111. // 擦除NAND芯片塊
  112. void nand_erase(uint32_t block)
  113. {
  114. // 發送擦除命令和地址
  115. nand_send_cmd(CMD_ERASE);
  116. nand_send_addr(block << 8);
  117. // 等待NAND芯片準備就緒
  118. nand_wait_ready();
  119. }
  120. // 復位NAND芯片
  121. void nand_reset()
  122. {
  123. // 發送復位命令
  124. nand_send_cmd(CMD_RESET);
  125. // 等待NAND芯片準備就緒
  126. nand_wait_ready();
  127. }
  128. // 示例程序入口
  129. int main()
  130. {
  131. uint8_t data[2048];
  132. memset(data, 0x5a, sizeof(data));
  133. // 初始化SDIO控制器
  134. sdio_init();
  135. // 復位NAND芯片
  136. nand_reset();
  137. // 擦除第0塊
  138. nand_erase(0);
  139. // 寫入第0頁
  140. nand_write(0, 0, data, sizeof(data));
  141. // 讀取第0頁
  142. nand_read(0, 0, data, sizeof(data));
  143. return 0;
  144. }
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    51170

    瀏覽量

    427222
  • 存儲
    +關注

    關注

    13

    文章

    4353

    瀏覽量

    86165
  • 內存卡
    +關注

    關注

    0

    文章

    62

    瀏覽量

    14831
收藏 人收藏

    評論

    相關推薦

    SD NAND、SPI NAND 和 Raw NAND 的定義與比較

    問題,再也不用為SD卡的接觸穩定性操心! SD nandSD 卡、SPI Nor flash、 nand flash、eeprom一樣
    的頭像 發表于 01-15 18:16 ?139次閱讀
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>、SPI <b class='flag-5'>NAND</b> 和 Raw <b class='flag-5'>NAND</b> 的定義與比較

    SD NAND、SPI NAND 和 Raw NAND 的定義與比較

    問題,再也不用為SD卡的接觸穩定性操心!   SD nandSD 卡、SPI Nor flash、 nand flash、eeprom
    發表于 01-15 18:15

    【半導體存儲】關于NAND Flash的一些小知識

      前言   作為一名電子專業的學生,半導體存儲顯然是繞不過去的一個坎,今天聊一聊關于Nand Flash的一些小知識。   這里十分感謝深圳雷龍發展有限公司為博主提供的兩片CS創世
    發表于 12-17 17:34

    關于NAND Flash的一些小知識

    前言 作為一名電子專業的學生,半導體存儲顯然是繞不過去的一個坎,今天聊一聊關于Nand Flash的一些小知識。 這里十分感謝深圳雷龍發展有限公司為博主提供的兩片CS創世
    的頭像 發表于 12-17 17:33 ?250次閱讀

    關于SD NAND 的概述

    。   雷龍科技旗下的CS創世品牌自2016年成立以來,一直專注于采用國際先進的芯片設計和技術,結合本地化的生產和制造優勢,為客戶提供高品質的產品和服務。在眾多產品中,CS
    發表于 12-06 11:22

    如何格式化貼片式SD卡/貼片式TF卡(SD NAND)#電路知識 #pcb設計 #芯片 #存儲芯片 #嵌入式

    存儲芯片
    深圳市雷龍發展有限公司
    發布于 :2024年11月19日 15:13:14

    一文帶你了解什么是SD NAND存儲芯片

    的市場份額,有著不可取代的地位。   隨著芯片的發展存儲芯片的趨勢也開始不甘落后,有著越來越多的新型的芯片問世,這里就要提起SD NAND
    發表于 11-13 15:20

    一文帶你了解什么是SD NAND存儲芯片

    的市場份額,有著不可取代的地位。 隨著芯片的發展存儲芯片的趨勢也開始不甘落后,有著越來越多的新型的芯片問世,這里就要提起SD NAND
    的頭像 發表于 11-13 15:17 ?1106次閱讀
    一文帶你了解什么是<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>存儲芯片</b>

    國產安路FPGA SD NAND FLASH 初步描述

    等優點。這一節我們主要是介紹一下SD NAND FLASH,該應用實例的SD NAND FLASH采用深圳市雷龍發展有限公司的CSNP1GCR01-AOW型號的
    發表于 10-16 18:12

    ESP32應用教程—SD NAND如何記錄飛控LOG#SDNAND #硬件 #存儲芯片

    存儲芯片
    深圳市雷龍發展有限公司
    發布于 :2024年10月09日 16:51:51

    SD NAND在智能眼鏡上的怎么應用

    隨著智能時代的到來,智能眼鏡的產品不斷的更新迭代,越來越接近我們大眾的生活,翻譯、音頻、視頻、導航等功能也日益完善。同時也越來越考驗存儲芯片的容量和存儲芯片的大小。 SD NAND是一
    的頭像 發表于 09-14 09:55 ?410次閱讀
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>在智能眼鏡上的怎么應用

    SD NAND測試套件:提升存儲芯片驗證效率

    SD NAND轉接板和燒錄座是一種專為工程師設計的輔助工具,它能夠將不同尺寸的SD NAND芯片轉換為通用TF接口封裝,從而方便地進行性能測
    的頭像 發表于 08-13 09:44 ?434次閱讀
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>測試套件:提升<b class='flag-5'>存儲芯片</b>驗證效率

    CS創世 SD NANDSD NAND芯片的測評與使用(基于卷積神經網絡的數字識別)

    時常會影響系統的穩定性,因此一個可以反復擦拭的穩定存儲芯片顯得十分重要。 通過將測試板和芯片進行簡單的焊接,我們可以像使用SD卡一樣對SD NAND
    發表于 07-24 18:24

    Flash閃存簡介及“SD NAND Flash”產品測試#存儲芯片 #sd卡? #NAND #TF卡

    存儲芯片
    深圳市雷龍發展有限公司
    發布于 :2024年06月26日 18:11:03

    SD NAND 簡介

    SD NAND是一種創新的存儲芯片,可直接貼片,又名貼片式TF卡、貼片式T卡、貼片式SD卡、貼片式內存卡、SD Flash、
    的頭像 發表于 05-29 16:34 ?1306次閱讀
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b> 簡介
    大发888亚洲城娱乐城| 百家乐官网注册下注平台| 百家乐官网微笑打法| 中国百家乐技巧| 在线扎金花| 百家乐历史路单| 德州扑克过牌| 百家乐官网赌场怎么玩| 百家乐赢钱面面观| 黎平县| 百家乐赌博出千| 六合彩150期开奖结果| 乐天堂百家乐官网赌场娱乐网规则 | 大发888娱乐场下载 df888ylc3403| 真人百家乐官网平台下载| 现金百家乐技巧| 汝南县| 澳门百家乐娱乐城开户| 百家乐公式| 菲律宾百家乐太阳城| 金冠娱乐城网站| 百家乐稳一点的押法| 优博国际娱乐城| 新葡京百家乐现金网| 皇冠网 全讯通| 百家乐隐者博客| 四会市| 百家乐真钱游戏下载| 上犹县| 百家乐庄家抽水的秘密| 百家乐官网专家赢钱打法| 新濠百家乐的玩法技巧和规则| 代理百家乐官网免费试玩| 威尼斯人娱乐城总部| 百家乐官网tt娱乐场开户注册 | 百家乐官网免佣台| 全讯网图库| 万宝路百家乐官网的玩法技巧和规则| 香港六合彩论坛| 太阳城百家乐客户端| 百家乐官网视频无法显示|