chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

基于Zynq FPGA對雷龍SD NAND的測試

深圳市雷龍發(fā)展有限公司 ? 2023-12-22 17:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

文章目錄

一、SD NAND特征

1.1 SD卡簡介

1.2 SD卡Block圖

二、SD卡樣片

三、Zynq測試平臺搭建

3.1 測試流程

3.2 SOC搭建

四、軟件搭建

五、測試結(jié)果

六、總結(jié)

一、SD NAND特征

1.1 SD卡簡介

??雷龍的SD NAND有很多型號,在測試中使用的是CSNP4GCR01-AWM與CSNP32GCR01-AOW。芯片是基于NAND FLASH和 SD控制器實現(xiàn)的SD卡。具有強大的壞塊管理和糾錯功能,并且在意外掉電的情況下同樣能保證數(shù)據(jù)的安全。

??其特點如下:

接口支持SD2.0 2線或4線;

電壓支持:2.7V-3.6V;

默認(rèn)模式:可變時鐘速率0 - 25MHz,高達(dá)12.5 MB/s的接口速度(使用4條并行數(shù)據(jù)線)

高速模式:可變時鐘速率0 - 50MHz,高達(dá)25 MB/s的接口速度(使用4條并行數(shù)據(jù)線)

工作溫度:-40°C ~ +85°C

存儲溫度:-55°C ~ +125°C

待機電流小于250uA

修正內(nèi)存字段錯誤;

內(nèi)容保護機制——符合SDMI最高安全標(biāo)準(zhǔn)

SDNAND密碼保護(CMD42 - LOCK_UNLOCK)

采用機械開關(guān)的寫保護功能

內(nèi)置寫保護功能(永久和臨時)

應(yīng)用程序特定命令

舒適擦除機制

??該SD卡支持SDIO讀寫和SPI讀寫,最高讀寫速度可達(dá)25MB/s,實際讀寫速度要結(jié)合MCU和接口情況實測獲得。通常在簡單嵌入式系統(tǒng)并對讀寫速度要求不高的情況下,會使用SPI協(xié)議進行讀寫。但不管使用SDIO還是SPI都需要符合相關(guān)的協(xié)議規(guī)范,才能建立相應(yīng)的文件系統(tǒng);

1.2 SD卡Block圖

get?code=M2U4NTY5ODk0YTZkMjFkOWI3MWVlZmU4OTM3M2VjNTcsMTcwMzIzNzI1Mzg3NQ==

?該SD卡封裝為LGA-8;引腳分配與定義如下;在這里插入圖片描述:

get?code=YmQxZTRmYjU0ZGI5OTNhOTVlZDQzOWYxNDQwMmUyM2EsMTcwMzIzNzI1Mzg3NQ==

二、SD卡樣片

??與樣片同時寄來的還有轉(zhuǎn)接板,轉(zhuǎn)接板將LGA-8封裝的芯片轉(zhuǎn)接至SD卡封裝,這樣只需將轉(zhuǎn)接板插入SD卡卡槽即可使用。

在這里插入圖片描述:

get?code=ZmQ3NzUyZGU3MDdmZmExNTQ4ODkyN2U0NzEzNmNjMDEsMTcwMzIzNzI1Mzg3NQ==

三、Zynq測試平臺搭建

  • ??測試平臺為 Xilinx 的Zynq 7020 FPGA芯片;
  • ??板卡:Digilent Zybo Z7
  • ??Vivado版本:2018.3
  • ??文件系統(tǒng):FATFS
  • ??SD卡接口:SD2.0

3.1 測試流程

??本次測試主要針對4G和32G兩個不同容量的SD卡,在Zynq FPGA上搭建SD卡讀寫回路,從而對SD卡讀寫速度進行測試,并檢驗讀寫一致性;

測試流程:

??進入測試程序前,首先會對SD卡初始化并初始化建立FATFS文件系統(tǒng),隨后進入測試SD卡測試程序,在測試程序中,會寫入一定大小的文件,然后對寫入文件的時間進行測量,得到寫入時間;然后再將寫入的文件讀出,測量獲得讀出時間,并將讀出數(shù)據(jù)與寫入數(shù)據(jù)相比較,檢測是否讀寫出錯。

??通過寫入時間、讀出時間可計算得到寫入速度、讀出速度;將以上過程重復(fù)100次并打印報告。

get?code=NGM4YzJlOGY1ZTdmODFjZjQxMDFjNDkxNGFjYjA2NDcsMTcwMzIzNzI1Mzg3NQ==

3.2 SOC搭建

??硬件搭建框圖如下,我們在本次系統(tǒng)中使用PS端的SDIO接口來驅(qū)動SD NAND芯片,并通過UART向PC打印報告;

??PL端的硬件搭建也很簡單,只需一個Timer定時器來做時間測量;

get?code=NTNhNTBkNzkxMzE2MGRhMGNkYTczNjFkYTVjMGUxZjgsMTcwMzIzNzI1Mzg3NQ==

我們直接使用Zybo板卡文件創(chuàng)建一個工程,工程會將Zybo具有的硬件資源配置好;

get?code=MzY0MWQ4ZjBlNTY2NWUxNTA4OGIwOWExM2RjYTg5YTMsMTcwMzIzNzI1Mzg3Ng==

首先點擊setting->IP->Repository->+;添加Timer IP核的路徑,Timer IP核會在工程中給出;

get?code=Yjk1ZDk5ZGJiNWMyMmIyZjdiMDE4YmU0MWE2N2FiNGMsMTcwMzIzNzI1Mzg3Ng==

?點擊Create Block Design創(chuàng)建BD工程

get?code=YmNmZGY0OGY4YTBlYTkwZjE0ODE3NzI2ZjUzYWM3ODEsMTcwMzIzNzI1Mzg3Ng==

?在創(chuàng)建的過程中添加Zynq 內(nèi)核;

get?code=ZjkzYzQ0YjM4OTJmMjcxMGZkMTJhYWE0MDMyNDY0NzcsMTcwMzIzNzI1Mzg3Ng==

由于我們使用了板卡文件,所以內(nèi)核IP是配置好的,我們只需稍作修改即可,如果是其他板卡,則需要自行配置DDR等配置;

??雙擊內(nèi)核IP,點擊Clock Configuration->PL Fabric Clocks,將FCLK_CLK0的時鐘頻率修改為100Mhz

get?code=NTg0ZjhkMjEwOGMxZmI1NTMwY2E4Njc5NTM0MDZiYmYsMTcwMzIzNzI1Mzg3Ng==

?添加TimerA IP;

get?code=NGJlZTQ3NjFkZTExMDc1NjI0OGZlY2U2YTE3MjllNGEsMTcwMzIzNzI1Mzg3Ng==

依次點擊上方的自動設(shè)計,完成SOC搭建;

get?code=NDQ5MzRhMDljYjk1YTA4OTlkZGM5MjkxMDRiMmEyNzQsMTcwMzIzNzI1Mzg3Ng==

?點擊BD設(shè)計,并創(chuàng)建頂層文件

get?code=YWVkNzhjMzJjYjUzZTNhNTNiYTUzZTU5MjdjNjljMmQsMTcwMzIzNzI1Mzg3Ng==

生成比特流文件;

get?code=ODVjNDU5NDdjYWEyNzEwZTFiNmJlNmYzYWM0ZDcwZWIsMTcwMzIzNzI1Mzg3Ng==

在生成比特流文件后,將其導(dǎo)入SDK;

??點擊Export->Export Hardware,導(dǎo)出硬件;然后點擊Launch SDK打開SDK進行軟件設(shè)計;

get?code=M2Y0YmE2NjhiODE4NjUwMzA5NjBlM2M5MTlhOGEwNzcsMTcwMzIzNzI1Mzg3Ng==get?code=YzQyM2RjMWY1ZjZkYWJkMDQzMmI0NzQ2MDdiYjYzOTAsMTcwMzIzNzI1Mzg3Ng==

四、軟件搭建

??在SDK中新建一個空白工程;

??點擊file -> new -> Application project;

get?code=OTFiMjQxZmRmOTZiY2ZhMjRjYzA3MTUwNjM4ZDkzMzQsMTcwMzIzNzI1Mzg3Ng==

在新建的過程中創(chuàng)建一個main.c文件,并在里面編寫測試程序如下:

??在每次讀寫開始前,通過TimerA0_start()函數(shù)開始計時,在讀寫結(jié)束后可以通過TimerA0_stop()結(jié)束計時,從而測得消耗時間。

??相應(yīng)的Timer驅(qū)動函數(shù)在user/TimerA_user.c中定義;

  1. #include "xparameters.h" /* SDK generated parameters */
  2. #include "xsdps.h" /* SD device driver */
  3. #include "xil_printf.h"
  4. #include "ff.h"
  5. #include "xil_cache.h"
  6. #include "xplatform_info.h"
  7. #include "time.h"
  8. #include "../user/headfile.h"
  9. #define PACK_LEN 32764
  10. static FIL fil; /* File object */
  11. static FATFS fatfs;
  12. static char FileName[32] = "Test.txt";
  13. static char *SD_File;
  14. char DestinationAddress[PACK_LEN] ;
  15. char txt[1024];
  16. char test_buffer[PACK_LEN];
  17. void TimerA0_init()
  18. {
  19. TimerA_reset(TimerA0);//reset timerA device
  20. TimerA_Set_Clock_Division(TimerA0,100);//divide clock as 100000000/100 = 1Mhz
  21. TimerA_Stop_Counter(TimerA0);//stop timerA
  22. }
  23. void TimerA0_start()
  24. {
  25. TimerA_SetAs_CONTINUS_Mode(TimerA0);
  26. }
  27. void TimerA0_stop()
  28. {
  29. TimerA_Stop_Counter(TimerA0);
  30. }
  31. uint32 SDCard_test()
  32. {
  33. uint8 Res;
  34. uint32 NumBytesRead;
  35. uint32 NumBytesWritten;
  36. uint32 BuffCnt;
  37. uint8 work[FF_MAX_SS];
  38. uint32 take_time=0;
  39. uint32 speed = 0;
  40. uint32 test_time = 0;
  41. uint32 w_t=0;
  42. uint32 r_t=0;
  43. float wsum = 0;
  44. float rsum = 0;
  45. TCHAR *Path = "0:/";
  46. for(int i=0;i
  47. {
  48. test_buffer[i] = 'a';
  49. }
  50. Res = f_mount(&fatfs, Path, 0);
  51. if (Res != FR_OK) {
  52. return XST_FAILURE;
  53. }
  54. Res = f_mkfs(Path, FM_FAT32, 0, work, sizeof work);
  55. if (Res != FR_OK) {
  56. return XST_FAILURE;
  57. }
  58. SD_File = (char *)FileName;
  59. Res = f_open(&fil, SD_File, FA_CREATE_ALWAYS | FA_WRITE | FA_READ);
  60. if (Res) {
  61. return XST_FAILURE;
  62. }
  63. Res = f_lseek(&fil, 0);
  64. if (Res) {
  65. return XST_FAILURE;
  66. }
  67. while(1)
  68. {
  69. TimerA_reset(TimerA0);
  70. TimerA0_start();
  71. Res = f_write(&fil, (const void*)test_buffer, PACK_LEN,
  72. &NumBytesWritten);
  73. TimerA0_stop();
  74. take_time = TimerA_Read_Counter_Register(TimerA0);
  75. w_t+=take_time;
  76. xil_printf("--------------------------------\n");
  77. xil_printf("take time:%d us\n",take_time);
  78. speed = PACK_LEN*(1000000/((float)(take_time)));
  79. sprintf(txt,"write speed:%.2f MB/s\n",(float)(speed)/1024/1024);
  80. wsum = wsum+speed;
  81. xil_printf(txt);
  82. xil_printf("--------------------------------\n");
  83. if (Res) {
  84. return XST_FAILURE;
  85. }
  86. Res = f_lseek(&fil, 0);
  87. if (Res) {
  88. return XST_FAILURE;
  89. }
  90. TimerA_reset(TimerA0);
  91. TimerA0_start();
  92. Res = f_read(&fil, (void*)DestinationAddress, PACK_LEN,
  93. &NumBytesRead);
  94. TimerA0_stop();
  95. take_time = TimerA_Read_Counter_Register(TimerA0);
  96. r_t+=take_time;
  97. xil_printf("--------------------------------\n");
  98. xil_printf("take time:%d us\n",take_time);
  99. speed = PACK_LEN*(1000000/((float)(take_time)));
  100. sprintf(txt,"read speed:%.2f MB/s\n",(float)(speed)/1024/1024);
  101. rsum = rsum+speed;
  102. xil_printf(txt);
  103. xil_printf("--------------------------------\n");
  104. if (Res) {
  105. return XST_FAILURE;
  106. }
  107. for(BuffCnt = 0; BuffCnt < PACK_LEN; BuffCnt++){
  108. if(test_buffer[BuffCnt] != DestinationAddress[BuffCnt]){
  109. xil_printf("%dno",BuffCnt);
  110. return XST_FAILURE;
  111. }
  112. }
  113. xil_printf("test num:%d data check right!\n",test_time+1);
  114. test_time++;
  115. if(test_time==100)
  116. {
  117. sprintf(txt,"Total write: %.2f KB,Take time:%.2f ms, Write speed:%.2f MB/s\n",PACK_LEN*100/1024.0,w_t/100.0/1000.0,wsum/100/1024/1024);
  118. xil_printf(txt);
  119. sprintf(txt,"Total read: %.2f KB,Take time:%.2f ms, Read speed:%.2f MB/s\n",PACK_LEN*100/1024.0,r_t/100.0/1000.0,rsum/100/1024/1024);
  120. xil_printf(txt);
  121. Res = f_close(&fil);
  122. if (Res) {
  123. return XST_FAILURE;
  124. }
  125. return 0;
  126. }
  127. }
  128. }
  129. int main(void)
  130. {
  131. TimerA0_init();
  132. SDCard_test();
  133. xil_printf("finish");
  134. return 0;
  135. }

五、測試結(jié)果

??經(jīng)測試,兩種型號的芯片讀寫速度如下圖表所示。

??其SD NAND的讀寫速度隨著讀寫數(shù)據(jù)量的增加而增加,并且讀速率大于寫速率,這符合SD卡的特性;

??對比兩種型號SD NAND芯片,發(fā)現(xiàn)CSNP32GCR01-AOW型號具有更高的讀寫速度;

get?code=YmIxMzU2YjU2MDJjMWVmYzViMmVmYzczNjlmNmU5ODYsMTcwMzIzNzI1Mzg3Ng==get?code=NGNlMzk5Zjc5NTEzYWM5MzM4N2QxZGNmNWRkMjEzNjYsMTcwMzIzNzI1Mzg3Ng==get?code=NjJmYWI2MDE4YTFhYWY3YmY2ZjY0MjA2Yzc5MWIyYmUsMTcwMzIzNzI1Mzg3Ng==

六、總結(jié)

??本來打算拿這些樣片去試試信息安全領(lǐng)域是否有所應(yīng)用,但發(fā)現(xiàn)其似乎內(nèi)置了復(fù)位或初始化,導(dǎo)致無法提取上電時的不確定值,故無法提取該SD NAND的物理不可克隆特性,所以這方面的測試無法進行;

??對于芯片正常讀寫的測試結(jié)果,還是很讓人滿意的,芯片的價格也很合理。并且LGA-8封裝更適合無卡槽的嵌入式開發(fā)板設(shè)計,在一定的應(yīng)用領(lǐng)域有著簡化硬件設(shè)計、減小硬件面積的功能。

————————————————

【本文轉(zhuǎn)載自CSDN,作者:PPRAM】

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

    關(guān)注

    1655

    文章

    22286

    瀏覽量

    630296
  • 測試
    +關(guān)注

    關(guān)注

    8

    文章

    6028

    瀏覽量

    130720
  • NAND
    +關(guān)注

    關(guān)注

    16

    文章

    1747

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    解鎖SD NAND、TF卡、SD卡的應(yīng)用密碼

    在科技飛速發(fā)展的今天,數(shù)據(jù)存儲的需求滲透到生活與工作的每一個角落——從手腕上的智能手表,到專業(yè)攝影師的相機,再到工廠里的工業(yè)路由器,都離不開高效可靠的存儲介質(zhì)。SD NAND、TF卡和SD卡作為其中
    的頭像 發(fā)表于 11-24 11:04 ?239次閱讀
    解鎖<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>、TF卡、<b class='flag-5'>SD</b>卡的應(yīng)用密碼

    一文秒懂XTX SD NAND

    :原理、性能與應(yīng)用 隨著消費電子、工業(yè)控制、汽車電子和安防監(jiān)控等領(lǐng)域?qū)Ω呙芏?、低成本存儲需求的不斷攀升?b class='flag-5'>SD NAND閃存因其體積小、集成度高、易于部署的特點,成為SD卡(SD、SDH
    的頭像 發(fā)表于 10-30 08:38 ?410次閱讀
    一文秒懂XTX <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>

    解鎖存儲密碼:SD NAND、TF卡、SD卡的應(yīng)用全景

    在數(shù)據(jù)洪流的時代,存儲介質(zhì)就如同數(shù)字世界的基石,支撐著各類設(shè)備的正常運轉(zhuǎn)。SD NAND、TF卡和SD卡,雖同屬NAND Flash存儲介質(zhì)家族,卻因各自獨特的“個性”,在不同領(lǐng)域綻放
    的頭像 發(fā)表于 10-29 14:24 ?214次閱讀

    基于ZYNQ的創(chuàng)世SD NAND卡讀寫TXT文本實驗

    在之前的介紹中,我們介紹了雷龍SDNAND卡的焊接以及用途。由于SDNAND卡具有容量大,操作簡單,可插拔等的特點,經(jīng)常作為大容量的存儲介質(zhì)用來保存數(shù)據(jù)。本實驗我們來使用FPGA雷龍SDNAND
    的頭像 發(fā)表于 09-22 14:30 ?323次閱讀
    基于<b class='flag-5'>ZYNQ</b>的創(chuàng)世<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>卡讀寫TXT文本實驗

    SD卡—雷龍 SD NAND

    一、SD卡介紹 1.基本介紹 本質(zhì):nand flash + 控制芯片 1.SD卡 ,Secure Digital Card,稱為安全數(shù)字卡(安全數(shù)碼卡)。SD卡系列主要有三種:
    的頭像 發(fā)表于 07-21 17:59 ?3238次閱讀
    <b class='flag-5'>SD</b>卡—<b class='flag-5'>雷龍</b> <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>

    【嵌入式開發(fā)】SD卡—雷龍 SD NAND

    、R7。 R1響應(yīng)格式: 2.SD卡操作步驟介紹 SPI模式下 SD卡初始化 SD卡單塊數(shù)據(jù)塊讀取流程 五、雷龍 SD
    發(fā)表于 07-21 17:56

    NAND Flash與SD NAND的存儲扇區(qū)架構(gòu)差異

    NAND Flash?和?SD卡(SD NAND)的存儲扇區(qū)分配表都是用于管理存儲設(shè)備中扇區(qū)的分配信息。它們記錄了哪些扇區(qū)已被使用、哪些是空閑的,以及文件或數(shù)據(jù)與扇區(qū)的對應(yīng)關(guān)系,以便實
    的頭像 發(fā)表于 03-13 15:20 ?1563次閱讀
    <b class='flag-5'>NAND</b> Flash與<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>的存儲扇區(qū)架構(gòu)差異

    [上手體驗]雷龍SD NAND:比TF卡更小更耐用

    前幾天,有幸得到了深圳雷龍發(fā)展公司送來的SD NAND樣品。他們給了兩顆32Gbit的SD NAND以及一塊轉(zhuǎn)接板,并且已經(jīng)將
    發(fā)表于 03-08 14:28

    CS創(chuàng)世SD NAND【貼片式sd卡】的測試使用說明

    今天收到了來自深圳市雷龍發(fā)展有限公司寄來的存儲卡,它是一款自帶壞塊管理的貼片式NAND Flash,適用于嵌入式系統(tǒng)。SD NAND尺寸小巧,支持SPI/
    的頭像 發(fā)表于 02-17 15:45 ?757次閱讀
    CS創(chuàng)世<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>【貼片式<b class='flag-5'>sd</b>卡】的<b class='flag-5'>測試</b>使用說明

    CS創(chuàng)世SD NAND【貼片式sd卡】的測試使用說明

      今天收到了來自深圳市雷龍發(fā)展有限公司寄來的存儲卡,它是一款自帶壞塊管理的貼片式NAND Flash,適用于嵌入式系統(tǒng)。SD NAND尺寸小巧,支持SPI/
    發(fā)表于 02-12 15:05

    雷龍SD NAND測試報告

    本帖最后由 xxkj2010 于 2025-2-8 14:23 編輯 雷龍SD NAND測試報告一次偶然的機會,很幸運得到深圳市雷龍發(fā)
    發(fā)表于 02-08 14:12

    雷龍 SD NAND 簡單使用

    前段時間收到了雷龍廠家郵寄的兩個 SD NAND 樣片,說要發(fā)文章的,一直擱置了,今天測試 esp32 的開發(fā)板的時候,發(fā)現(xiàn)之前的 SD
    發(fā)表于 01-31 15:41

    雷龍SD NAND試用

    、CSNP32GCR01-AOW分別為8GB、4GB雷龍二代SD NAND.前者樣片幫焊接在轉(zhuǎn)接板上,后者單芯片可以在需要SD NAND的開
    發(fā)表于 01-19 13:26

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

    SD nand,貼片式SD卡,使用起來和SD卡一致,不同的是采用,通常采用LGA-8封裝,尺寸為8mm x 6mm x 0.75mm,重點是采用貼片封裝,可以直接貼在板卡上,直接解決了
    的頭像 發(fā)表于 01-15 18:16 ?1401次閱讀
    <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 nand,貼片式SD卡,使用起來和SD卡一致,不同的是采用,通常采用LGA-8封裝,尺寸為8mm x 6mm x 0.75mm,重點是采用貼片封裝,可以直接貼在板卡上,直接解決了
    發(fā)表于 01-15 18:15