文章目录
前言
1 sd nand概述
2 代码说明
3 记录log
前言
本文基于 esp32 芯片作为主控制器,测试 sd nand 记录飞控 log 功能。
关于 mcu 的存储方面,以前基本上用内置的 e2prom,或者是外置的 nor flash 就可以。随着物联网的兴起,mcu 的应用越来越广泛,逐渐的 mcu 会涉及到大容量的存储需求,用来存储音频,图片(gui)、视频缓存、协议栈等等。传统的 e2prom 和 nor flash 就不够用了。这个时候 mcu 可能就需要用到 nand flash。
针对 mcu 需要使用大容量的存储需求,推荐一款简单易用、稳定可靠的 nand flash —— sd nand。
1 sd nand概述
sd nand 的架构,内部采用使用寿命最长、性能最稳定的 nand flash(slc nand flash)晶圆,它的擦写寿命可以达到 5~10 万次。内置了 flash 控制器和针对 nand flash 管理的 firmware。对外采用通用性最强的 sd 接口(几乎所有 mcu 都带有 sd 接口)。
本文选择的是 csnp32gcr01-aow 芯片。
不用编写驱动程序,自带坏块管理的 nand flash(贴片式 tf 卡),尺寸小巧,简单易用,兼容性强,稳定可靠,固件可定制,lga-8 封装,标准 sdio 接口,兼容 spi,兼容拔插式 tf卡/sd卡,可替代普通 tf卡/sd卡,尺寸 6.2x8mm。
内置平均读写算法,通过 1 万次随机掉电测试耐高低温,机贴手贴都非常方便,速度级别 class10(读取速度 23.5mb/s,写入速度 12.3mb/s)。标准的 sd 2.0 协议使得用户可以直接移植标准驱动代码,省去了驱动代码编程环节。支持 tf 卡启动的 soc 都可以用 sd nand,提供 stm32 参考例程及原厂技术支持,容量:4gb,比 tf 卡稳定,比 emmc 便宜。
2 代码说明
1. 宏定义使能 sd 卡功能
#define hal_esp32_sdcard
2. 挂载 sd 卡
bool sdcard_retry(void)
{
if(!card)
return mount_sdcard();
return true;
}
bool mount_sdcard()
{
printf(............try mount.\n);
sdmmc_host_t host = sdmmc_host_default();
host.max_freq_khz = sdmmc_freq_highspeed;
sdmmc_slot_config_t slot_config = sdmmc_slot_config_default();
slot_config.flags = sdmmc_slot_flag_internal_pullup;
esp_vfs_fat_sdmmc_mount_config_t mount_config = {
.format_if_mount_failed = false,
.max_files = 5,
.allocation_unit_size = 4 * 1024
};
esp_err_t ret = esp_vfs_fat_sdmmc_mount(/sdcard, &host, &slot_config, &mount_config, &card);
if (ret == esp_ok) {
mkdir(/sdcard/apm, 0777);
printf(sdcard is mounted\n);
update_fw();
return true;
} else {
printf(sdcard is not mounted.\n);
return false;
}
}
3. 卸载 sd 卡
void sdcard_stop(void)
{
unmount_sdcard();
}
void unmount_sdcard()
{
if (card != nullptr) {
esp_vfs_fat_sdmmc_unmount();
}
}
3 记录log
1. log目录建立
可以看到飞控已经在 sd nand 中成功建立 log 目录。
2. log分析
飞机通电,翻滚机身,记录飞机的姿态角。
下载日志,加载到 mission planner 软件。选中 att 字段中的 roll 和 pitch。可以看到曲线跟随飞机姿态变化。
至此,使用 sd nand 替代 sd 卡,测试飞控 log 记录功能完成。
TDK推出用于导电粘接安装的新型贴片NTC热敏电阻
STM32入门学习笔记之电容触摸实验(下)
特斯拉再创记录:不怕BBA,不虚布加迪
欧美日“领衔” 全球高端市场OLED占有率持续上升
ADI与伍兹霍尔海洋研究所成立海洋与气候创新加速器
ESP32应用教程— SD NAND(记录飞控LOG)
微液滴中组装出缤纷色彩:一种新型显示技术
CadenceLIVE China 2023丨Tempus Timing Solution 专题介绍
甲类分立元件功率放大器电路图
10.2.7 非易失性逻辑集成电路∈《集成电路产业全书》
使用智能手环测血压到底靠不靠谱?
Kneron发表集成影音辨识的终端人工智能解决方案
SiC MOSFET的实时结温监控电路及其影响因素
刻录机规格
如何在节能建筑中进行照明设计
嵌入式系统的前瞻 前后台系统
智能网联汽车刺激芯片需求爆发,“汽车大脑”成为智能车最核心部件
振镜扫描平场聚焦加工原理
9月20日直播|Vector常用硬件接口卡的实际应用
理解和运用ADS127L11EVM GUI中的Histogram Analysis