From 1c910fbd7ab2ea76ccad20a6a6bf7882c5a5ea7e Mon Sep 17 00:00:00 2001
From: Alberto Nidasio <alberto.nidasio@skywarder.eu>
Date: Sat, 1 Jul 2023 17:14:15 +0200
Subject: [PATCH] [ADS131] Fixed self test and updated ads131m08 test
 entrypoint

---
 CMakeLists.txt                             |  3 +++
 src/shared/sensors/ADS131M04/ADS131M04.cpp |  6 ++++++
 src/shared/sensors/ADS131M08/ADS131M08.cpp |  6 ++++++
 src/tests/sensors/test-ads131m08.cpp       | 14 +++++++-------
 4 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 723e2f947..56309e4d6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -329,6 +329,9 @@ sbs_target(test-ads1118 stm32f407vg_stm32f4discovery)
 add_executable(test-ads131m04 src/tests/sensors/test-ads131m04.cpp)
 sbs_target(test-ads131m04 stm32f429zi_stm32f4discovery)
 
+add_executable(test-ads131m08 src/tests/sensors/test-ads131m08.cpp)
+sbs_target(test-ads131m08 stm32f767zi_compute_unit)
+
 add_executable(test-analog-pressure-sensors src/tests/sensors/analog/test-analog-pressure-sensors.cpp)
 sbs_target(test-analog-pressure-sensors stm32f429zi_stm32f4discovery)
 
diff --git a/src/shared/sensors/ADS131M04/ADS131M04.cpp b/src/shared/sensors/ADS131M04/ADS131M04.cpp
index 797d9ba46..646466586 100644
--- a/src/shared/sensors/ADS131M04/ADS131M04.cpp
+++ b/src/shared/sensors/ADS131M04/ADS131M04.cpp
@@ -334,6 +334,12 @@ bool ADS131M04::selfTest()
             return false;
     }
 
+    // Reset channel connections
+    for (int i = 0; i < 8; i++)
+    {
+        setChannelInput(static_cast<Channel>(i), Input::POSITIVE_DC_TEST);
+    }
+
     return true;
 }
 
diff --git a/src/shared/sensors/ADS131M08/ADS131M08.cpp b/src/shared/sensors/ADS131M08/ADS131M08.cpp
index 21c30d1e3..9db582e2c 100644
--- a/src/shared/sensors/ADS131M08/ADS131M08.cpp
+++ b/src/shared/sensors/ADS131M08/ADS131M08.cpp
@@ -392,6 +392,12 @@ bool ADS131M08::selfTest()
             return false;
     }
 
+    // Reset channel connections
+    for (int i = 0; i < 8; i++)
+    {
+        setChannelInput(static_cast<Channel>(i), Input::POSITIVE_DC_TEST);
+    }
+
     return true;
 }
 
diff --git a/src/tests/sensors/test-ads131m08.cpp b/src/tests/sensors/test-ads131m08.cpp
index cd4dd482d..377284440 100644
--- a/src/tests/sensors/test-ads131m08.cpp
+++ b/src/tests/sensors/test-ads131m08.cpp
@@ -28,22 +28,22 @@
 using namespace miosix;
 using namespace Boardcore;
 
-GpioPin sckPin  = GpioPin(GPIOA_BASE, 5);
-GpioPin misoPin = GpioPin(GPIOA_BASE, 6);
-GpioPin mosiPin = GpioPin(GPIOA_BASE, 7);
-GpioPin csPin   = GpioPin(GPIOA_BASE, 3);
+GpioPin sckPin  = GpioPin(GPIOE_BASE, 2);
+GpioPin misoPin = GpioPin(GPIOE_BASE, 5);
+GpioPin mosiPin = GpioPin(GPIOE_BASE, 6);
+GpioPin csPin   = GpioPin(GPIOG_BASE, 10);
 
 void initBoard()
 {
     // Setup gpio pins
-    csPin.mode(Mode::OUTPUT);
-    csPin.high();
     sckPin.mode(Mode::ALTERNATE);
     sckPin.alternateFunction(5);
     misoPin.mode(Mode::ALTERNATE);
     misoPin.alternateFunction(5);
     mosiPin.mode(Mode::ALTERNATE);
     mosiPin.alternateFunction(5);
+    csPin.mode(Mode::OUTPUT);
+    csPin.high();
 }
 
 int main()
@@ -52,7 +52,7 @@ int main()
     initBoard();
 
     // SPI configuration setup
-    SPIBus spiBus(SPI1);
+    SPIBus spiBus(SPI4);
     SPISlave spiSlave(spiBus, csPin, ADS131M08::getDefaultSPIConfig());
 
     // Device initialization
-- 
GitLab