ESP32应用教程(2)— SD NAND(记录飞控LOG)

文章目录

前言

1 SD NAND概述

2 代码说明

3 记录Log


前言

本文基于 ESP32 芯片作为主控制器,测试 SD NAND 记录飞控 Log 功能。


关于 MCU 的存储方面,以前基本上用内置的 E2PROM,或者是外置的 NOR Flash 就可以。随着物联网的兴起,MCU 的应用越来越广泛,逐渐的 MCU 会涉及到大容量的存储需求,用来存储音频,图片(GUI)、视频缓存、协议栈等等。传统的 E2PROMNOR Flash 就不够用了。这个时候 MCU 可能就需要用到 NAND Flash

针对 MCU 需要使用大容量的存储需求,推荐一款简单易用、稳定可靠的 NAND Flash —— SD NAND

1 SD NAND概述

SD NAND 的架构,内部采用使用寿命最长、性能最稳定的 NAND FlashSLC NAND Flash)晶圆,它的擦写寿命可以达到 5~10 万次。内置了 Flash 控制器和针对 NAND Flash 管理的 Firmware。对外采用通用性最强的 SD 接口(几乎所有 MCU 都带有 SD 接口)。

SD NAND,贴片式TF卡,贴片式SD卡,北京君正,nor flash,存储,芯片,主控,小容量emmc,大容量SLC Nand

本文选择的是 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 便宜

SD NAND,贴片式TF卡,贴片式SD卡,北京君正,nor flash,存储,芯片,主控,小容量emmc,大容量SLC Nand

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 字段中的 RollPitch。可以看到曲线跟随飞机姿态变化。

至此,使用 SD NAND 替代 SD 卡,测试飞控 LOG 记录功能完成。

猜你喜欢

转载自blog.csdn.net/qq_20016593/article/details/132558173
sd