improve sd-card MMC handling
This commit is contained in:
parent
59d468bb1e
commit
7c056bdea9
@ -11,17 +11,8 @@
|
|||||||
|
|
||||||
#define MOUNT_POINT "/sdcard"
|
#define MOUNT_POINT "/sdcard"
|
||||||
|
|
||||||
#if HAS_SDCARD == 1
|
#if HAS_SDCARD == 1 // SPI interface
|
||||||
#include "driver/sdspi_host.h"
|
#include "driver/sdspi_host.h"
|
||||||
#elif HAS_SDCARD == 2
|
|
||||||
#include "driver/sdmmc_host.h"
|
|
||||||
#else
|
|
||||||
#error HAS_SDCARD unknown card reader value, must be either 1 or 2
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAS_SDS011
|
|
||||||
#include "sds011read.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef SDCARD_CS
|
#ifndef SDCARD_CS
|
||||||
#define SDCARD_CS SS
|
#define SDCARD_CS SS
|
||||||
@ -39,6 +30,25 @@
|
|||||||
#define SDCARD_SCLK SCK
|
#define SDCARD_SCLK SCK
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#elif HAS_SDCARD == 2 // MMC interface
|
||||||
|
#include "driver/sdmmc_host.h"
|
||||||
|
|
||||||
|
#ifndef SDCARD_SLOTWIDTH
|
||||||
|
#define SDCARD_SLOTWIDTH 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SDCARD_PULLUP
|
||||||
|
#define SDCARD_PULLUP SDMMC_SLOT_FLAG_INTERNAL_PULLUP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
#error HAS_SDCARD unknown card reader value, must be either 1 or 2
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAS_SDS011
|
||||||
|
#include "sds011read.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#define SDCARD_FILE_NAME clientId
|
#define SDCARD_FILE_NAME clientId
|
||||||
#define SDCARD_FILE_HEADER "timestamp,wifi,ble"
|
#define SDCARD_FILE_HEADER "timestamp,wifi,ble"
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
/* Hardware related definitions for TTGO V2.1 Board
|
/* Hardware related definitions for TTGO V2.1 Board
|
||||||
// ATTENTION: check your board version!
|
// ATTENTION: check your board version!
|
||||||
// This settings are for boards labeled v1.6 on pcb, NOT for v1.5 or older
|
// This settings are for boards labeled v1.6 or v1.6.1 on pcb, NOT for v1.5 or older
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define HAS_LORA 1 // comment out if device shall not send data via LoRa
|
#define HAS_LORA 1 // comment out if device shall not send data via LoRa
|
||||||
@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
// enable only if you want to store a local paxcount table on the device
|
// enable only if you want to store a local paxcount table on the device
|
||||||
#define HAS_SDCARD 2 // this board has a SD MMC card-reader/writer
|
#define HAS_SDCARD 2 // this board has a SD MMC card-reader/writer
|
||||||
|
#define SDCARD_SLOTWIDTH 4 // 4-line interface
|
||||||
|
|
||||||
#define HAS_DISPLAY 1
|
#define HAS_DISPLAY 1
|
||||||
#define HAS_LED (25) // green on board LED
|
#define HAS_LED (25) // green on board LED
|
||||||
|
@ -140,13 +140,13 @@ bool sdcard_init(bool create) {
|
|||||||
// https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sdmmc_host.html
|
// https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sdmmc_host.html
|
||||||
sdmmc_slot_config_t slot_config = SDMMC_SLOT_CONFIG_DEFAULT();
|
sdmmc_slot_config_t slot_config = SDMMC_SLOT_CONFIG_DEFAULT();
|
||||||
|
|
||||||
// To use 4-line SD mode, change this to 4:
|
// Set 1-line or 4-line SD mode (default is 1-line)
|
||||||
slot_config.width = 1;
|
slot_config.width = SDCARD_SLOTWIDTH;
|
||||||
|
|
||||||
// Enable internal pullups on enabled pins. The internal pullups
|
// Enable internal pullups on enabled pins. The internal pullups
|
||||||
// are insufficient however, please make sure 10k external pullups are
|
// are insufficient however, please make sure 10k external pullups are
|
||||||
// connected on the bus. This is for debug / example purpose only.
|
// connected on the bus. This is for debug / example purpose only.
|
||||||
slot_config.flags |= SDMMC_SLOT_FLAG_INTERNAL_PULLUP;
|
slot_config.flags |= SDCARD_PULLUP;
|
||||||
|
|
||||||
// Use settings defined above to initialize SD card and mount FAT filesystem.
|
// Use settings defined above to initialize SD card and mount FAT filesystem.
|
||||||
esp_err_t ret = esp_vfs_fat_sdmmc_mount(mount_point, &host, &slot_config,
|
esp_err_t ret = esp_vfs_fat_sdmmc_mount(mount_point, &host, &slot_config,
|
||||||
@ -180,7 +180,7 @@ bool sdcard_init(bool create) {
|
|||||||
fgetpos(data_file, &position);
|
fgetpos(data_file, &position);
|
||||||
|
|
||||||
// empty file? then we write a header line
|
// empty file? then we write a header line
|
||||||
if (position = 0) {
|
if (position == 0) {
|
||||||
fprintf(data_file, "%s", SDCARD_FILE_HEADER);
|
fprintf(data_file, "%s", SDCARD_FILE_HEADER);
|
||||||
#if (defined BAT_MEASURE_ADC || defined HAS_PMU)
|
#if (defined BAT_MEASURE_ADC || defined HAS_PMU)
|
||||||
fprintf(data_file, "%s", SDCARD_FILE_HEADER_VOLTAGE);
|
fprintf(data_file, "%s", SDCARD_FILE_HEADER_VOLTAGE);
|
||||||
@ -188,8 +188,8 @@ bool sdcard_init(bool create) {
|
|||||||
#if (HAS_SDS011)
|
#if (HAS_SDS011)
|
||||||
fprintf(data_file, "%s", SDCARD_FILE_HEADER_SDS011);
|
fprintf(data_file, "%s", SDCARD_FILE_HEADER_SDS011);
|
||||||
#endif
|
#endif
|
||||||
fprintf(data_file, "\n");
|
|
||||||
}
|
}
|
||||||
|
fprintf(data_file, "\n");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
useSDCard = false;
|
useSDCard = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user