前言
嵌入式项目中,比较常见的存储扩展方案是使用TF/SD卡或者EMMC或者RAW NAND,各种方案都有其优缺点,而SD NAND相对于上述方案具备很多优势,是目前嵌入式项目中存储扩展方案的一个非常不错的选择,正好一个项目在选择NAND存储方案, 恰巧论坛中联系到雷龙公司申请到了两片SD NAND,所以就进行一下测试评估。
SD NAND是什么? 为什么选择SD NAND? 其与TF/SD卡,EMMC,RAW NAND比有什么优势, 我们可以从深圳市雷龙发展有限公司的官网找到答案http://www.longsto.com/news/。
该公司SD NAND 二代产品介绍可以参考如下地址http://longsto.com/product/list-39.html,有1Gb,4Gb,32Gb,64Gb的容量可选,我这里申请到的是两片32Gb的芯片和测试板.
焊接后如下:




测试过程
申请样品时官方提供了野火版的STM32测试程序,但是手里只有精英STM32F103开发板 V2开发板, 稍微改以下即可使用。
使用工程SDIO模式SD测试例程\\SDIO-HAL库代码\\36-SDIO—SD卡读写测试\\Project\\Fire_F103VE.uvprojx
修改下芯片型号


修改下编译器,我这里使用的是新版本的MDK所以是AC6


选择下对应的仿真器


User\\key\\bsp_key.h中修改下按键,按照开发板原理图改为PE3
#define KEY1_PIN GPIO_PIN_3
#define KEY1_GPIO_PORT GPIOE
#define KEY1_GPIO_CLK_ENABLE __HAL_RCC_GPIOE_CLK_ENABLE
由于AC6只能使用UTF-8编码,而原来的文件使用GB2312编码,所以需要修改下main.c的编码,用VSCODE打开main.c
右下角点击 显示编码的地方->Reopen with Encodeing选择GB2312,然后再次点击编码的地方->Save with Encodeing选择UTF8,这样就改为UTF-8格式了。
编译下载按Key1按键, 串口打印测试结果如下


实际上CS SD NAND是完全兼容SD/TF卡的,所以直接使用精英STM32F103开发板 V2开发板的SD卡测试程序也是可以的
使用工程
【正点原子】精英STM32F103开发板 V2-资料盘(A盘)\\4,程序源码\\2,标准例程-HAL库版本.zip\\2,标准例程-HAL库版本\\实验34 SD卡实验
编译下载运行,可以看到串口打印如下


以上测试可以看出,用SD卡的程序完全可以不做任何修改应用于CS SD NAND, 软件可以无缝切换。
总结:
CS创世SD NAND相对于TF卡的优势
焊接在PCB稳定,LGA-8封装容易焊接
尺寸小
结构更容易做到防水
内置SLC 擦写寿命长 一致性好
SD NAND与eMMC比具备以下优劣
尺寸小
方便焊接
容量可选多,适合实际应用
PIN脚少
功耗低
擦写寿命长
性能稳定
使用SLC/MLC
CS创世 SD NAND相对于Raw NAND具有以下优势
免驱动使用
性能更稳定。
尺寸更小。
SD NAND可选容量更多
SD NAND的读写速度更快
在使用上程序完全兼容TF/SD卡,原来的程序无需任何修改即可使用,无缝切换.
而SD NAND又相对于其他方案具备上述诸多优势,所以是一个非常不错的选择.
综上,还在使用TF卡吗,是时候考虑用SD NAND替换了。