From b6122a2dd85f69ec84b1e69b49fe4af08623a950 Mon Sep 17 00:00:00 2001 From: dario Date: Sat, 13 Apr 2024 17:53:22 +0200 Subject: [PATCH] Some driver updates to work for the W25Q128 --- include/sta/{sensors => drivers}/w25qxx.hpp | 2 +- .../sta/{sensors => drivers}/w25qxx_defs.hpp | 0 src/w25qxx.cpp | 25 ++++++++++--------- 3 files changed, 14 insertions(+), 13 deletions(-) rename include/sta/{sensors => drivers}/w25qxx.hpp (99%) rename include/sta/{sensors => drivers}/w25qxx_defs.hpp (100%) diff --git a/include/sta/sensors/w25qxx.hpp b/include/sta/drivers/w25qxx.hpp similarity index 99% rename from include/sta/sensors/w25qxx.hpp rename to include/sta/drivers/w25qxx.hpp index 35162b6..f11d64c 100644 --- a/include/sta/sensors/w25qxx.hpp +++ b/include/sta/drivers/w25qxx.hpp @@ -2,7 +2,7 @@ #define STA_SENSORS_W25Q128_HPP #include -#include +#include namespace sta diff --git a/include/sta/sensors/w25qxx_defs.hpp b/include/sta/drivers/w25qxx_defs.hpp similarity index 100% rename from include/sta/sensors/w25qxx_defs.hpp rename to include/sta/drivers/w25qxx_defs.hpp diff --git a/src/w25qxx.cpp b/src/w25qxx.cpp index b2eec16..dd67842 100644 --- a/src/w25qxx.cpp +++ b/src/w25qxx.cpp @@ -1,9 +1,8 @@ -#include - #include #include #include +#include namespace sta @@ -18,6 +17,13 @@ namespace sta uint8_t W25Qxx::init() { + powerDown(); + + if (!releasePowerDown()) + { + return 0; + } + // Check if the chip returns the correct device id. if (getManufacturerID() != W25QXX_DEVICE_ID_RESULT) { @@ -33,11 +39,6 @@ namespace sta } } - if (!releasePowerDown()) - { - return 0; - } - return 1; } @@ -69,11 +70,11 @@ namespace sta uint8_t W25Qxx::getManufacturerID() { uint8_t dummy[3] = {0, 0, 0}; - uint8_t id; + uint8_t id[2] = {0, 0}; - busRead(W25QXX_DEVICE_ID, &id, 1, dummy, 3); + busRead(W25QXX_DEVICE_ID, id, 2, dummy, 3); - return id; + return id[0]; } uint64_t W25Qxx::getUniqueID() @@ -98,7 +99,7 @@ namespace sta uint8_t status = 0; readStatusRegister(1, &status); - return (0x01 && status) == 0x01; + return (0x01 & status) == 0x01; } uint8_t W25Qxx::readData(uint32_t address, uint8_t * buffer, size_t length, bool fast /* = true */) @@ -293,7 +294,7 @@ namespace sta uint8_t status = 0; readStatusRegister(1, &status); - return (0x02 && status) == 0x02; + return (0x02 & status) == 0x02; } uint8_t W25Qxx::sectorErase(uint32_t address)