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 : {