diff --git a/.settings/stm32cubeide.project.prefs b/.settings/stm32cubeide.project.prefs
index 4cfd287..6c9e87f 100644
--- a/.settings/stm32cubeide.project.prefs
+++ b/.settings/stm32cubeide.project.prefs
@@ -1,4 +1,5 @@
+2F62501ED4689FB349E356AB974DBE57=DAEBCB59B6A9C8F02BB774C81C53DE27
66BE74F758C12D739921AEA421D593D3=4
-8DF89ED150041C4CBC7CB9A9CAA90856=E865512A8728EAFAAFCAEC43A97E0BA4
-DC22A860405A8BF2F2C095E5B6529F12=E865512A8728EAFAAFCAEC43A97E0BA4
+8DF89ED150041C4CBC7CB9A9CAA90856=DAEBCB59B6A9C8F02BB774C81C53DE27
+DC22A860405A8BF2F2C095E5B6529F12=6E3170594736B6A8C2809AF37BE21851
eclipse.preferences.version=1
diff --git a/Core/Application/INIT_Initialization.c b/Core/Application/INIT_Initialization.c
index a22e8ce..2089ce9 100644
--- a/Core/Application/INIT_Initialization.c
+++ b/Core/Application/INIT_Initialization.c
@@ -46,6 +46,7 @@
// Drivers
//#include "../Drivers/IRQH_IntRequestHandler.h"
//#include "../Drivers/MRAM_MRam.h"
+#include "../Drivers/USFL_UserFlash.h"
#include "../Drivers/ANPI_AnalogPortsIn.h"
#include "../Drivers/ANPO_AnalogPortsOut.h"
#include "../Drivers/SPID_SpiDriver.h"
@@ -166,6 +167,7 @@ PRIVATE VOID vInitTask( PVOID arg )
BOOL boInitConfig = TRUE;
// boOK &= RTOS_boInitializeModule();
+ boOK &= USFL_boInitializeModule();
boOK &= DIPO_boInitializeModule();
boOK &= ANPI_boInitializeModule();
diff --git a/Core/Drivers/ADCD_AdcDriver.c b/Core/Drivers/ADCD_AdcDriver.c
index 6310ed4..8b17172 100644
--- a/Core/Drivers/ADCD_AdcDriver.c
+++ b/Core/Drivers/ADCD_AdcDriver.c
@@ -88,7 +88,7 @@
#define FAULT_RTDINLOW 0x08
#define FAULT_OVUV 0x04
-#define CONFIG (U8)(CONFIG_VBIAS_ON | CONFIG_MODE_OFF | CONFIG_24WIRE | CONFIG_FAULTCYCLE_AUTO | CONFIG_FILT60HZ) // enable Vbias; autoconvert off; 4-wire; Fault detection auto 60Hz;
+#define CONFIG (U8)(CONFIG_VBIAS_ON | CONFIG_MODE_OFF | CONFIG_24WIRE | CONFIG_FILT60HZ) // enable Vbias; autoconvert off; 4-wire; 60Hz;
#define EVENT_ENABLE ((U32)(1<<0))
#define EVENT_DISABLE ((U32)(1<<1))
@@ -134,7 +134,7 @@
LOCAL CONST osMutexAttr_t m_stMutexAttr =
{
- "ADCD_Mutex", // human readable mutex name
+ "ADCD_Mutex", // human readable mutex name
osMutexRecursive | osMutexPrioInherit, // attr_bits
NULL, // memory for control block
0U // size for control block
@@ -156,7 +156,7 @@ LOCAL osMutexId_t m_pstMutexID = NULL;
LOCAL SPID_StHandle m_stSPIHandle =
{
SPID_eADC, // enSPI;
- 0xFF, // enCS (0xFF = hardware chip select)
+ 0xFF, // enCS (0xFF = hardware chip select)
m_au8TxData, // pu8TxBuf;
m_au8RxData, // pu8RxBuf;
0, // u16TransferSize;
@@ -210,13 +210,21 @@ BOOL ADCD_boInitializeModule( VOID )
DIPO_vSetOutput(DIPO_eCS_C);
boOK &= boWriteReg(REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE);
+ DIPO_vResetOutput(DIPO_eCS_C);
+ DIPO_vSetOutput(DIPO_eCS_C);
boOK &= boWriteReg(REG_HIGH_FAULT_MSB, (U16) 0x5b12 , TRUE);
+ DIPO_vResetOutput(DIPO_eCS_C);
+ DIPO_vSetOutput(DIPO_eCS_C);
boOK &= boWriteReg(REG_LOW_FAULT_MSB, (U16) 0x2690 , TRUE);
DIPO_vResetOutput(DIPO_eCS_C);
DIPO_vSetOutput(DIPO_eCS_H);
boOK &= boWriteReg(REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE);
+ DIPO_vResetOutput(DIPO_eCS_H);
+ DIPO_vSetOutput(DIPO_eCS_H);
boOK &= boWriteReg(REG_HIGH_FAULT_MSB, (U16) 0x5b12 , TRUE);
+ DIPO_vResetOutput(DIPO_eCS_H);
+ DIPO_vSetOutput(DIPO_eCS_H);
boOK &= boWriteReg(REG_LOW_FAULT_MSB, (U16) 0x2690 , TRUE);
DIPO_vResetOutput(DIPO_eCS_H);
@@ -278,7 +286,12 @@ BOOL ADCD_dReadData(ADCD_EnTemps eChannel, PU8 pu8Error, PU16 pu16Data)
osMutexAcquire( m_pstMutexID, osWaitForever );
DIPO_vSetOutput(CS);
boOK &= boReadReg(REG_FAULT_STATUS, &u16Data, FALSE);
- boWriteReg(REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE);
+ DIPO_vResetOutput(CS);
+ DIPO_vSetOutput(CS);
+ boOK &= boWriteReg(REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE);
+ DIPO_vResetOutput(CS);
+ DIPO_vSetOutput(CS);
+ boOK &= boReadReg(REG_HIGH_FAULT_MSB, &u16Data, TRUE);
DIPO_vResetOutput(CS);
osMutexRelease( m_pstMutexID );
@@ -290,6 +303,16 @@ BOOL ADCD_dReadData(ADCD_EnTemps eChannel, PU8 pu8Error, PU16 pu16Data)
*pu16Data = u16Data;
+ osMutexAcquire( m_pstMutexID, osWaitForever );
+
+ DIPO_vSetOutput(CS);
+
+ boOK &= boWriteReg(REG_CONFIG, CONFIG | CONFIG_FAULTCYCLE_AUTO , FALSE);
+
+ DIPO_vResetOutput(CS);
+
+ osMutexRelease( m_pstMutexID );
+
return( boOK );
}
diff --git a/Core/Drivers/ANPI_AnalogPortsIn.c b/Core/Drivers/ANPI_AnalogPortsIn.c
index f3d0f7f..9a3b744 100644
--- a/Core/Drivers/ANPI_AnalogPortsIn.c
+++ b/Core/Drivers/ANPI_AnalogPortsIn.c
@@ -145,10 +145,10 @@ LOCAL CONST FLOAT m_aflOffset1[ANPI_eInNumberOfInputs] =
// Order must fit enumeration "ANPI_EnAnalogInput"
LOCAL CONST FLOAT m_aflOffset2[ANPI_eInNumberOfInputs] =
{
- 18.788f, // 00 ANPI_eControlVoltage
+ 20.088f, // 00 ANPI_eControlVoltage
0.0f, // 01 ANPI_eSupplyVoltage24V
0.0f, // 02 ANPI_eSupplyCurrent24V
- 18.788f, // 03 ANPI_eOutputVoltage
+ 20.088f, // 03 ANPI_eOutputVoltage
0.0f, // 04 ANPI_eOutputCurrent
};
diff --git a/Core/Drivers/PECO_PeltierController.h b/Core/Drivers/PECO_PeltierController.h
index edde52c..81e7210 100644
--- a/Core/Drivers/PECO_PeltierController.h
+++ b/Core/Drivers/PECO_PeltierController.h
@@ -7,7 +7,7 @@
//-------------------------------------------------------------------------------------------------
//
// Project: Peltier Controller V2
-// Author: Noah Piqué (noah.pique@psi.ch)
+// Author: Noah Piqu� (noah.pique@psi.ch)
//
//-------------------------------------------------------------------------------------------------
//
@@ -87,6 +87,7 @@ extern "C" {
BOOL PECO_boInitializeModule( VOID );
BOOL PECO_boSetTemperature( S16 Temperature );
VOID PECO_Enable( BOOL Enable );
+BOOL PECO_isEnabled( VOID );
#ifdef __cplusplus
}
diff --git a/PeltierControllerV3 Debug.launch b/PeltierControllerV3 Debug.launch
index 89cfb76..69b54b6 100644
--- a/PeltierControllerV3 Debug.launch
+++ b/PeltierControllerV3 Debug.launch
@@ -89,6 +89,6 @@
-
+
diff --git a/STM32L432KBUX_FLASH.ld b/STM32L432KBUX_FLASH.ld
index 269d2e2..d767154 100644
--- a/STM32L432KBUX_FLASH.ld
+++ b/STM32L432KBUX_FLASH.ld
@@ -48,12 +48,20 @@ MEMORY
{
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 48K
RAM2 (xrw) : ORIGIN = 0x10000000, LENGTH = 16K
- FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 128K
+ FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 128K-2K
+ DATA (rwx) : ORIGIN = 0x801F800, LENGTH = 2K
}
/* Sections */
SECTIONS
{
+ /* NOLOAD is required for not ereasing this block */
+ .user_data (NOLOAD) :
+ {
+ . = ALIGN(4);
+ *(.user_data)
+ . = ALIGN(4);
+ } > DATA
/* The startup code into "FLASH" Rom type memory */
.isr_vector :
{