Skip to content
Snippets Groups Projects
Commit c3695466 authored by Flax's avatar Flax
Browse files

STM32L011K4 : corrected RCC startup (remove VOS test), added ENC1/ENC2...

STM32L011K4 : corrected RCC startup (remove VOS test), added ENC1/ENC2 interrupts enable, added pull-ups on ENC1, ENC2 and SW, corrected SW active state, corrected 1ms timer interrupt clear flags and enable.
parent 55015040
No related branches found
No related tags found
No related merge requests found
Showing with 131 additions and 19 deletions
eclipse.preferences.version=1
sfrviewstate={"fFavorites"\:{"fLists"\:{}},"fProperties"\:{"fNodeProperties"\:{}}}
......@@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1252834263766431401" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-326164463121486665" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
......@@ -16,7 +16,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1252834263766431401" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-326164463121486665" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
......
......@@ -72,7 +72,7 @@
#define mREGInputsENC2GetState() (bool)(LL_GPIO_IsInputPinSet(mREG_ENC2_GPIO_Port, mREG_ENC2_Pin) == mREGInputsENC2ActiveState)
#define mREGInputsSWActiveState (false)
#define mREGInputsSWGetState() (bool)(LL_GPIO_IsInputPinSet(mREG_ENC_SW_GPIO_Port, mREG_ENC_SW_Pin) == mREGInputsENC2ActiveState)
#define mREGInputsSWGetState() (bool)(LL_GPIO_IsInputPinSet(mREG_ENC_SW_GPIO_Port, mREG_ENC_SW_Pin) == mREGInputsSWActiveState)
/* Outputs --------------------------------------------------------*/
#define mREGOutputsDisplayK1SetState() (LL_GPIO_SetOutputPin(mREG_DISPLAY_K1_GPIO_Port, mREG_DISPLAY_K1_Pin))
......
......@@ -114,6 +114,7 @@ void DISPInit (void)
void DISPStart (void)
{
mREGSpi1InterruptRxEnable();
DISPEnableDisplay();
}
void DISPStop (void)
......
......@@ -40,7 +40,7 @@ typedef enum {
// ===============
#define cHMIInputEventQueueLength 8 // Event queue length
#define cHMIClicLongLength 200 // Long clic length in number of cyclic task cycles
#define cHMIClicLongLength 400 // Long clic length in number of cyclic task cycles
#define cHMIClicFilter 10 // Encoder switch debounce filter
#define cHMIDisplayParamTime 2000 // Timeout during which the parameter is shown before going back to previous mode
......
......@@ -107,7 +107,18 @@ int main(void)
MAINStart();
// Start 1ms timer interrupt
LL_TIM_EnableIT_CC1(TIM2);
LL_TIM_EnableIT_CC1(TIM21);
LL_TIM_CC_EnableChannel(TIM21, LL_TIM_CHANNEL_CH1);
LL_TIM_EnableCounter(TIM21);
// Enable EXTI interrupts
LL_EXTI_EnableEvent_0_31(EXTI0_1_IRQn);
LL_EXTI_EnableFallingTrig_0_31(EXTI0_1_IRQn);
LL_EXTI_EnableIT_0_31(EXTI0_1_IRQn);
LL_EXTI_EnableEvent_0_31(EXTI2_3_IRQn);
LL_EXTI_EnableFallingTrig_0_31(EXTI2_3_IRQn);
LL_EXTI_EnableIT_0_31(EXTI2_3_IRQn);
while (1)
{
......@@ -129,9 +140,9 @@ void SystemClock_Config(void)
{
}
LL_PWR_SetRegulVoltageScaling(LL_PWR_REGU_VOLTAGE_SCALE1);
while (LL_PWR_IsActiveFlag_VOS() == 0)
/*while (LL_PWR_IsActiveFlag_VOS() != 0)
{
}
}*/
LL_RCC_HSI_Enable();
/* Wait till HSI is ready */
......@@ -590,13 +601,13 @@ static void MX_GPIO_Init(void)
LL_SYSCFG_SetEXTISource(LL_SYSCFG_EXTI_PORTA, LL_SYSCFG_EXTI_LINE12);
/**/
LL_GPIO_SetPinPull(ENC2_GPIO_Port, ENC2_Pin, LL_GPIO_PULL_NO);
LL_GPIO_SetPinPull(ENC2_GPIO_Port, ENC2_Pin, LL_GPIO_PULL_UP);
/**/
LL_GPIO_SetPinPull(ENC1_GPIO_Port, ENC1_Pin, LL_GPIO_PULL_NO);
LL_GPIO_SetPinPull(ENC1_GPIO_Port, ENC1_Pin, LL_GPIO_PULL_UP);
/**/
LL_GPIO_SetPinPull(ENC_SW_GPIO_Port, ENC_SW_Pin, LL_GPIO_PULL_NO);
LL_GPIO_SetPinPull(ENC_SW_GPIO_Port, ENC_SW_Pin, LL_GPIO_PULL_UP);
/**/
LL_GPIO_SetPinPull(STANDBY_SW_GPIO_Port, STANDBY_SW_Pin, LL_GPIO_PULL_NO);
......
......@@ -15,9 +15,14 @@
#include "temperatureRegulation.h"
#include "save.h"
// DEBUG
#include "stm32l0xx_ll_gpio.h"
// ===============
// Local constants
// ===============
// DEBUG
static uint32_t cnt_u32;
// ==========================
// Local functions prototypes
......@@ -34,27 +39,37 @@
void MAINInit (void)
{
HMIInit();
REGInit();
//REGInit();
SAVInit();
}
void MAINStart (void)
{
HMIStart();
REGStart();
//REGStart();
SAVStart();
}
void MAINStop (void)
{
SAVStop();
REGStop();
//REGStop();
HMIStop();
}
void MAINCyclicTask (void)
{
HMICyclicTask();
REGCyclicTask();
//REGCyclicTask();
SAVCyclicTask();
if (cnt_u32 < 1000)
{
cnt_u32++;
}
else
{
cnt_u32 = 0;
LL_GPIO_TogglePin(GPIOB, LL_GPIO_PIN_1);
}
}
......@@ -193,6 +193,8 @@ void TIM21_IRQHandler(void)
/* USER CODE END TIM21_IRQn 0 */
/* USER CODE BEGIN TIM21_IRQn 1 */
MAINCyclicTask();
LL_TIM_ClearFlag_UPDATE(TIM21);
LL_TIM_ClearFlag_CC1(TIM21);
/* USER CODE END TIM21_IRQn 1 */
}
......
......@@ -54,8 +54,8 @@ Mcu.PinsNb=25
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32L011K4Tx
MxCube.Version=6.8.0
MxDb.Version=DB.6.0.80
MxCube.Version=6.8.1
MxDb.Version=DB.6.0.81
NVIC.EXTI0_1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.EXTI2_3_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.ForceEnableDMAVector=true
......@@ -101,8 +101,9 @@ PA2.GPIO_Label=VCP_TX
PA2.Locked=true
PA2.Mode=Asynchronous
PA2.Signal=USART2_TX
PA3.GPIOParameters=GPIO_Label
PA3.GPIOParameters=GPIO_PuPd,GPIO_Label
PA3.GPIO_Label=ENC2
PA3.GPIO_PuPd=GPIO_PULLUP
PA3.Locked=true
PA3.Signal=GPXTI3
PA4.Mode=I2C
......@@ -113,12 +114,14 @@ PA5.Signal=SPI1_SCK
PA8.GPIOParameters=GPIO_Label
PA8.GPIO_Label=PWM_HEATER
PA8.Signal=S_TIM2_CH1
PA9.GPIOParameters=GPIO_Label
PA9.GPIOParameters=GPIO_PuPd,GPIO_Label
PA9.GPIO_Label=ENC_SW
PA9.GPIO_PuPd=GPIO_PULLUP
PA9.Locked=true
PA9.Signal=GPXTI9
PB0.GPIOParameters=GPIO_Label
PB0.GPIOParameters=GPIO_PuPd,GPIO_Label
PB0.GPIO_Label=ENC1
PB0.GPIO_PuPd=GPIO_PULLUP
PB0.Locked=true
PB0.Signal=GPXTI0
PB1.GPIOParameters=GPIO_Label
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="com.st.stm32cube.ide.mcu.debug.launch.launchConfigurationType">
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.access_port_id" value="0"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.cubeprog_external_loaders" value="[]"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_live_expr" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_swv" value="false"/>
<intAttribute key="com.st.stm32cube.ide.mcu.debug.launch.formatVersion" value="2"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.ip_address_local" value="localhost"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.enabled" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.value" value=""/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.loadList" value="{&quot;fItems&quot;:[{&quot;fIsFromMainTab&quot;:true,&quot;fPath&quot;:&quot;Debug/SolderStationMk2_SW.elf&quot;,&quot;fProjectName&quot;:&quot;SolderStationMk2_SW&quot;,&quot;fPerformBuild&quot;:true,&quot;fDownload&quot;:true,&quot;fLoadSymbols&quot;:true}]}"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.override_start_address_mode" value="default"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.remoteCommand" value="target remote"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startServer" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.divby0" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.unaligned" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.haltonexception" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swd_mode" value="true"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_port" value="61235"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_trace_hclk" value="32000000"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.useRemoteTarget" value="true"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.vector_table" value=""/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.verify_flash_download" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_allow_halt" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_signal_halt" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_logging" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_max_halt_delay" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_shared_stlink" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.frequency" value="0"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.halt_all_on_reset" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.log_file" value="G:\documents\dev\dev\electrolab\solderstationmk2_sw\SolderStationMk2_NucleoSTM32L011K4\Debug\st-link_gdbserver_log.txt"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.low_power_debug" value="enable"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.max_halt_delay" value="2"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.reset_strategy" value="connect_under_reset"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_check_serial_number" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_txt_serial_number" value=""/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.watchdog_config" value="none"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkenable_rtos" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkrestart_configurations" value="{&quot;fVersion&quot;:1,&quot;fItems&quot;:[{&quot;fDisplayName&quot;:&quot;Reset&quot;,&quot;fIsSuppressible&quot;:false,&quot;fResetAttribute&quot;:&quot;Software system reset&quot;,&quot;fResetStrategies&quot;:[{&quot;fDisplayName&quot;:&quot;Software system reset&quot;,&quot;fLaunchAttribute&quot;:&quot;system_reset&quot;,&quot;fGdbCommands&quot;:[&quot;monitor reset\r\n&quot;],&quot;fCmdOptions&quot;:[&quot;-g&quot;]},{&quot;fDisplayName&quot;:&quot;Hardware reset&quot;,&quot;fLaunchAttribute&quot;:&quot;hardware_reset&quot;,&quot;fGdbCommands&quot;:[&quot;monitor reset hardware\r\n&quot;],&quot;fCmdOptions&quot;:[&quot;-g&quot;]},{&quot;fDisplayName&quot;:&quot;Core reset&quot;,&quot;fLaunchAttribute&quot;:&quot;core_reset&quot;,&quot;fGdbCommands&quot;:[&quot;monitor reset core\r\n&quot;],&quot;fCmdOptions&quot;:[&quot;-g&quot;]},{&quot;fDisplayName&quot;:&quot;None&quot;,&quot;fLaunchAttribute&quot;:&quot;no_reset&quot;,&quot;fGdbCommands&quot;:[],&quot;fCmdOptions&quot;:[&quot;-g&quot;]}],&quot;fGdbCommandGroup&quot;:{&quot;name&quot;:&quot;Additional commands&quot;,&quot;commands&quot;:[]},&quot;fStartApplication&quot;:true}]}"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.enableRtosProxy" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyCustomProperties" value=""/>
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriver" value="threadx"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverAuto" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverPort" value="cortex_m0"/>
<intAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyPort" value="60000"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value=""/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="com.st.stm32cube.ide.mcu.debug.stlink"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="61234"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/>
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/>
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/>
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/SolderStationMk2_SW.elf"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="SolderStationMk2_SW"/>
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.656826350"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/SolderStationMk2_SW"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;"/>
<stringAttribute key="process_factory_id" value="com.st.stm32cube.ide.mcu.debug.launch.HardwareDebugProcessFactory"/>
</launchConfiguration>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment