登录
加入联盟
找回密码
航空人生
新一代连飞客户端下载
空管人生
中国航空运动协会推荐
WEFLY
模拟飞行玩家聊天工具
门户
文章
商城
二手市场
外包服务
模飞软件
硬件设备
飞行体验
学院
云课堂
问答
资料下载
论坛
模拟飞行
低空飞行
太空探索
航圈
资源
素材
下载
企业
无人机论坛
»
论坛
›
无人机DIY专区
›
地面站
›
MissionPlanner
›
ESP32应用教程— SD NAND(记录飞控LOG)
返回列表
发新帖
查看:
123
|
回复:
0
ESP32应用教程— SD NAND(记录飞控LOG)
[复制链接]
trilobite
trilobite
当前离线
积分
1061
窥视卡
雷达卡
339
主题
382
帖子
1061
积分
金牌飞友
金牌飞友, 积分 1061, 距离下一级还需 1939 积分
金牌飞友, 积分 1061, 距离下一级还需 1939 积分
积分
1061
飞币
677
注册时间
2017-7-26
发消息
发表于 2024-11-23 20:04:36
|
显示全部楼层
|
阅读模式
文章目录
前言
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 记录
功能完成。
esp32idf教程
,
esp32 foc
,
esp32视频教程
,
esp32使用教程
,
esp32使用手册
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
加入联盟
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表