From ff5e2531b728d0e423a1611ebf0e15e3ea3b8810 Mon Sep 17 00:00:00 2001 From: Cameron Goddard <camerongoddard@me.com> Date: Fri, 22 Nov 2024 17:56:11 -0500 Subject: [PATCH] add FRAM clear tool --- tools/fram_clear/CMakeLists.txt | 41 ++++++++++++++++++++++++++++ tools/fram_clear/fram_clear.cpp | 48 +++++++++++++++++++++++++++++++++ tools/fram_read/fram_read.cpp | 3 --- tools/perf/CMakeLists.txt | 10 ------- 4 files changed, 89 insertions(+), 13 deletions(-) create mode 100644 tools/fram_clear/CMakeLists.txt create mode 100644 tools/fram_clear/fram_clear.cpp diff --git a/tools/fram_clear/CMakeLists.txt b/tools/fram_clear/CMakeLists.txt new file mode 100644 index 0000000..d35b056 --- /dev/null +++ b/tools/fram_clear/CMakeLists.txt @@ -0,0 +1,41 @@ +cmake_minimum_required(VERSION 3.22) + +# Pull in SDK (must be before project) +include(../../lib/pico-sdk/pico_sdk_init.cmake) + +project(fram_clear C CXX ASM) +set(CMAKE_C_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) + +# Initialize the SDK +pico_sdk_init() + +add_compile_options( + -Wall + -Wno-format + -Wno-unused-function +) + +add_executable(${PROJECT_NAME} + ${PROJECT_NAME}.cpp +) + +add_subdirectory(${PROJECT_SOURCE_DIR}/../../lib/MB85RS-Pico ${CMAKE_BINARY_DIR}/MB85RS-Pico) + +# Include project and library headers +target_include_directories(${PROJECT_NAME} + PRIVATE + ${PROJECT_SOURCE_DIR}/../../lib/MB85RS-Pico +) + +# Pull in common dependencies +target_link_libraries(${PROJECT_NAME} + pico_stdlib + MB85RS-Pico +) + +pico_enable_stdio_usb(${PROJECT_NAME} 1) +pico_enable_stdio_uart(${PROJECT_NAME} 0) + +# Create uf2 file +pico_add_uf2_output(${PROJECT_NAME}) \ No newline at end of file diff --git a/tools/fram_clear/fram_clear.cpp b/tools/fram_clear/fram_clear.cpp new file mode 100644 index 0000000..a3bd46c --- /dev/null +++ b/tools/fram_clear/fram_clear.cpp @@ -0,0 +1,48 @@ +/** + * @file fram_clear.cpp + * @author csg83 + * + * @brief Clears the contents of FRAM + */ + +#include "pico/stdlib.h" +#include "mb85rs.hpp" +#include "../../src/pins.hpp" +#include "tusb.h" +#include <cstdio> + +#define BYTES_TO_CLEAR 20 + +MB85RS fram(SPI_PORT, FRAM_CS); + +int main() { + stdio_init_all(); + + gpio_init(FRAM_CS); + gpio_set_dir(FRAM_CS, GPIO_OUT); + + spi_init(SPI_PORT, 125 * 1000000 / 6); + gpio_set_function(SPI_MISO, GPIO_FUNC_SPI); + gpio_set_function(SPI_MOSI, GPIO_FUNC_SPI); + gpio_set_function(SPI_SCK, GPIO_FUNC_SPI); + gpio_put(FRAM_CS, 1); + + while (!tud_cdc_connected()) { + sleep_ms(500); + } + printf("Connected\n"); + + if (!fram.begin()) { + printf("Error: FRAM begin unsuccessful\n"); + } + + uint8_t clear[BYTES_TO_CLEAR] = {0}; + + if (fram.write_bytes(0, clear, BYTES_TO_CLEAR)) { + printf("FRAM clear successful!\n"); + } else { + printf("Error: FRAM clear unsuccessful\n"); + } + + return 0; +} \ No newline at end of file diff --git a/tools/fram_read/fram_read.cpp b/tools/fram_read/fram_read.cpp index 0e39150..d0f4e78 100644 --- a/tools/fram_read/fram_read.cpp +++ b/tools/fram_read/fram_read.cpp @@ -37,9 +37,6 @@ int main() { } uint8_t data[BYTES_TO_READ] = {0}; - uint8_t temp = 42; - - fram.write_bytes(0, &temp, 1); if (fram.read_bytes(0, data, BYTES_TO_READ)) { for (int i = 0; i < BYTES_TO_READ; i++) { diff --git a/tools/perf/CMakeLists.txt b/tools/perf/CMakeLists.txt index 148613e..9e6224b 100644 --- a/tools/perf/CMakeLists.txt +++ b/tools/perf/CMakeLists.txt @@ -27,16 +27,6 @@ add_subdirectory(${PROJECT_SOURCE_DIR}/../../lib/LIS3DH-Pico ${CMAKE_BINARY_DIR} add_subdirectory(${PROJECT_SOURCE_DIR}/../../lib/Si7021-Pico ${CMAKE_BINARY_DIR}/Si7021-Pico) add_subdirectory(${PROJECT_SOURCE_DIR}/../../lib/MB85RS-Pico ${CMAKE_BINARY_DIR}/MB85RS-Pico) - -# Link library directories -target_link_directories(${PROJECT_NAME} - PRIVATE - ${PROJECT_SOURCE_DIR}/../../lib/BMP388-Pico - ${PROJECT_SOURCE_DIR}/../../lib/BNO055-Pico - ${PROJECT_SOURCE_DIR}/../../lib/LIS3DH-Pico - ${PROJECT_SOURCE_DIR}/../../lib/Si7021-Pico -) - # Include project and library headers target_include_directories(${PROJECT_NAME} PRIVATE