Browse Source

zigbee: Use LSE clock for RTC, reset unused pins

test
Andreas Berthoud 5 years ago
parent
commit
b832046354
  1. 10
      nucleo-wb55-zigbee/Core/Inc/main.h
  2. 27
      nucleo-wb55-zigbee/Core/Src/main.c
  3. 188
      nucleo-wb55-zigbee/nucleo-wb55-zigbee.ioc

10
nucleo-wb55-zigbee/Core/Inc/main.h

@ -64,22 +64,12 @@ void Error_Handler(void);
#define LED_GREEN_GPIO_Port GPIOB
#define LED_RED_Pin GPIO_PIN_1
#define LED_RED_GPIO_Port GPIOB
#define JTMS_Pin GPIO_PIN_13
#define JTMS_GPIO_Port GPIOA
#define JTCK_Pin GPIO_PIN_14
#define JTCK_GPIO_Port GPIOA
#define B2_Pin GPIO_PIN_0
#define B2_GPIO_Port GPIOD
#define B3_Pin GPIO_PIN_1
#define B3_GPIO_Port GPIOD
#define JTDO_Pin GPIO_PIN_3
#define JTDO_GPIO_Port GPIOB
#define LED_BLUE_Pin GPIO_PIN_5
#define LED_BLUE_GPIO_Port GPIOB
#define STLINK_RX_Pin GPIO_PIN_6
#define STLINK_RX_GPIO_Port GPIOB
#define STLINK_TX_Pin GPIO_PIN_7
#define STLINK_TX_GPIO_Port GPIOB
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */

27
nucleo-wb55-zigbee/Core/Src/main.c

@ -115,20 +115,24 @@ void SystemClock_Config(void)
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
/** Configure LSE Drive Capability
*/
HAL_PWR_EnableBkUpAccess();
__HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW);
/** Configure the main internal regulator output voltage
*/
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
/** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure.
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSI1
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSE
|RCC_OSCILLATORTYPE_MSI;
RCC_OscInitStruct.LSEState = RCC_LSE_ON;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
RCC_OscInitStruct.MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT;
RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_10;
RCC_OscInitStruct.LSIState = RCC_LSI_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
@ -153,7 +157,7 @@ void SystemClock_Config(void)
/** Initializes the peripherals clocks
*/
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS|RCC_PERIPHCLK_RTC;
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
PeriphClkInitStruct.SmpsClockSelection = RCC_SMPSCLKSOURCE_HSI;
PeriphClkInitStruct.SmpsDivSelection = RCC_SMPSCLKDIV_RANGE0;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
@ -212,7 +216,6 @@ static void MX_GPIO_Init(void)
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
/*Configure GPIO pin Output Level */
@ -231,28 +234,12 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pins : PA11 PA12 */
GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF10_USB;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pins : B2_Pin B3_Pin */
GPIO_InitStruct.Pin = B2_Pin|B3_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/*Configure GPIO pins : STLINK_RX_Pin STLINK_TX_Pin */
GPIO_InitStruct.Pin = STLINK_RX_Pin|STLINK_TX_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}
/* USER CODE BEGIN 4 */

188
nucleo-wb55-zigbee/nucleo-wb55-zigbee.ioc

@ -1,22 +1,37 @@
#MicroXplorer Configuration settings - do not modify
Mcu.Family=STM32WB
VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
ProjectManager.MainLocation=Core/Src
PCC.Ble.Mode=NOT_SELECTED
PC15-OSC32_OUT.Mode=LSE-External-Oscillator
RCC.PLLQoutputFreq_Value=128000000
RCC.USART1Freq_Value=32000000
ProjectManager.ProjectFileName=nucleo-wb55-zigbee.ioc
RCC.SAI1Freq_Value=128000000
RCC.CortexFreq_Value=32000000
ProjectManager.KeepUserCode=true
Mcu.UserName=STM32WB55RGVx
Mcu.PinsNb=10
ProjectManager.NoMain=false
RCC.RFWKPFreq_Value=976.5625
RCC.SMPSCLockSelectionVirtualVirtual=RCC_SMPSCLKSOURCE_HSI
RCC.HCLK3Freq_Value=32000000
RCC.PLLSAI1RoutputFreq_Value=128000000
PA14.GPIO_Label=JTCK
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_RTC_Init-RTC-false-HAL-true
PC4.Signal=GPIO_Input
PD0.GPIO_Label=B2 [Push Button]
VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
PD1.Signal=GPIO_Input
RCC.RTCFreq_Value=32768
ProjectManager.DefaultFWLocation=true
PB0.GPIO_Label=LED_GREEN
PB6.GPIO_Label=STLINK_RX
PD0.Locked=true
ProjectManager.DeletePrevious=true
RCC.HCLK2Freq_Value=32000000
PC14-OSC32_IN.Signal=RCC_OSC32_IN
boardIOC=true
PinOutPanel.RotationAngle=0
RCC.FamilyName=M
RCC.MCO1PinFreq_Value=32000000
ProjectManager.StackSize=0x400
PB5.GPIOParameters=GPIO_Label
@ -27,170 +42,117 @@ NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
Mcu.IP2=RTC
Mcu.IP3=SYS
Mcu.IP0=NVIC
PA12.Locked=true
Mcu.IP1=RCC
PA12.Signal=USB_DP
Mcu.UserConstants=
RCC.VCOSAI1OutputFreq_Value=256000000
ProjectManager.TargetToolchain=STM32CubeIDE
Mcu.ThirdPartyNb=0
RCC.HCLKFreq_Value=32000000
Mcu.IPNb=4
RCC.HCLKRFFreq_Value=16000000
ProjectManager.PreviousToolchain=
RCC.APB2TimFreq_Value=32000000
PCC.Ble.PowerLevel=Min
PB6.Signal=USART1_TX
Mcu.Pin6=PB0
PD0.Signal=GPIO_Input
Mcu.Pin7=PB1
Mcu.Pin8=PA11
Mcu.Pin9=PA12
OSC_OUT.Signal=RCC_OSC_OUT
RCC.AHBFreq_Value=32000000
Mcu.Pin0=PC13
Mcu.Pin1=PC14-OSC32_IN
Mcu.Pin2=PC15-OSC32_OUT
Mcu.Pin3=PC4
Mcu.Pin4=OSC_OUT
Mcu.Pin5=OSC_IN
ProjectManager.ProjectBuild=false
RCC.HSE_VALUE=32000000
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
RCC.FCLK2Freq_Value=32000000
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
PD1.GPIOParameters=GPIO_Label
PD1.GPIO_Label=B3 [Push Button]
ProjectManager.FirmwarePackage=STM32Cube FW_WB V1.11.1
MxDb.Version=DB.6.0.21
PB0.GPIOParameters=GPIO_Label
ProjectManager.BackupPrevious=false
RCC.VCOInputFreq_Value=32000000
PC4.GPIO_Label=B1 [Push Button]
PB1.GPIO_Label=LED_RED
File.Version=6
PB3.GPIOParameters=GPIO_Label
PB7.Signal=USART1_RX
RCC.PLLRCLKFreq_Value=128000000
PB6.Locked=true
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
PB6.GPIOParameters=GPIO_Label
ProjectManager.HalAssertFull=false
PB0.Locked=true
ProjectManager.ProjectName=nucleo-wb55-zigbee
RCC.APB3Freq_Value=16000000
PA13.GPIOParameters=GPIO_Label
PB7.GPIO_Label=STLINK_TX
Mcu.Package=VFQFPN68
PB1.Signal=GPIO_Output
PA14.Locked=true
ProjectManager.ToolChainLocation=
RCC.LSI_VALUE=32000
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
RCC.LSCOPinFreq_Value=32000
PB5.GPIO_Label=LED_BLUE
RCC.PLLPoutputFreq_Value=128000000
RCC.APB1TimFreq_Value=32000000
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
PC4.Locked=true
RCC.LPUART1Freq_Value=32000000
RCC.SMPSDivider=1
ProjectManager.CustomerFirmwarePackage=
PC4.GPIOParameters=GPIO_Label
PC14-OSC32_IN.Locked=true
RCC.MSIClockRange=RCC_MSIRANGE_10
RCC.HSI48_VALUE=48000000
PB3.Locked=true
PB3.GPIO_Label=JTDO
VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
PCC.Ble.Mode=NOT_SELECTED
RCC.PLLQoutputFreq_Value=128000000
ProjectManager.ProjectFileName=nucleo-wb55-zigbee.ioc
Mcu.PinsNb=20
ProjectManager.NoMain=false
PC13.Locked=true
RCC.HCLK3Freq_Value=32000000
PC13.Signal=SYS_WKUP2
PC4.Signal=GPIO_Input
PD1.Signal=GPIO_Input
ProjectManager.DefaultFWLocation=true
OSC_IN.Locked=true
ProjectManager.DeletePrevious=true
RCC.HCLK2Freq_Value=32000000
PC14-OSC32_IN.Signal=RCC_OSC32_IN
boardIOC=true
RCC.FamilyName=M
PA13.Signal=SYS_JTMS-SWDIO
PA11.Locked=true
PC15-OSC32_OUT.Locked=true
ProjectManager.TargetToolchain=STM32CubeIDE
PB7.GPIOParameters=GPIO_Label
RCC.HCLKRFFreq_Value=16000000
PB5.Locked=true
PD0.Signal=GPIO_Input
Mcu.Pin6=PD1
Mcu.Pin7=PB5
ProjectManager.RegisterCallBack=
OSC_IN.Signal=RCC_OSC_IN
Mcu.Pin8=VP_RTC_VS_RTC_Activate
RCC.USBFreq_Value=128000000
RCC.LSE_VALUE=32768
Mcu.Pin9=VP_SYS_VS_Systick
PC15-OSC32_OUT.Signal=RCC_OSC32_OUT
RCC.AHBFreq_Value=32000000
RCC.PLLSAI1PoutputFreq_Value=128000000
Mcu.Pin0=PC14-OSC32_IN
PB1.Locked=true
Mcu.Pin1=PC15-OSC32_OUT
Mcu.Pin2=PC4
Mcu.Pin3=PB0
Mcu.Pin4=PB1
Mcu.Pin5=PD0
RCC.SMPSCLockSelectionVirtual=RCC_SMPSCLKSOURCE_HSI
ProjectManager.ProjectBuild=false
RCC.HSE_VALUE=32000000
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
RCC.FCLK2Freq_Value=32000000
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
board=P-NUCLEO-WB55-Nucleo
RCC.Cortex2Freq_Value=32000000
RCC.VCOOutputFreq_Value=256000000
PD1.GPIOParameters=GPIO_Label
NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
RCC.RTCClockSelection=RCC_RTCCLKSOURCE_LSE
ProjectManager.LastFirmware=true
RCC.SMPS1Freq_Value=16000000
PD1.GPIO_Label=B3 [Push Button]
ProjectManager.FirmwarePackage=STM32Cube FW_WB V1.11.1
MxDb.Version=DB.6.0.21
PB0.GPIOParameters=GPIO_Label
RCC.APB2Freq_Value=32000000
ProjectManager.BackupPrevious=false
MxCube.Version=6.2.1
PC14-OSC32_IN.Mode=LSE-External-Oscillator
RCC.VCOInputFreq_Value=32000000
PCC.Ble.DataLength=6
PC4.GPIO_Label=B1 [Push Button]
RCC.I2C1Freq_Value=32000000
RCC.RNGFreq_Value=32000
RCC.LCDFreq_Value=32768
PB1.GPIO_Label=LED_RED
RCC.PLLSAI1QoutputFreq_Value=128000000
RCC.ADCFreq_Value=128000000
File.Version=6
VP_SYS_VS_Systick.Mode=SysTick
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
OSC_OUT.Locked=true
RCC.PLLRCLKFreq_Value=128000000
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
ProjectManager.FreePins=false
RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,APB3Freq_Value,Cortex2Freq_Value,CortexFreq_Value,FCLK2Freq_Value,FCLKCortexFreq_Value,FamilyName,HCLK2Freq_Value,HCLK3Freq_Value,HCLKFreq_Value,HCLKRFFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C3Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSE_VALUE,LSI_VALUE,MCO1PinFreq_Value,MSIClockRange,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PWRFreq_Value,RFWKPFreq_Value,RNGFreq_Value,SAI1Freq_Value,SMPS1Freq_Value,SMPSCLockSelectionVirtual,SMPSCLockSelectionVirtualVirtual,SMPSDivider,SYSCLKFreq_VALUE,USART1Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value
RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,APB3Freq_Value,Cortex2Freq_Value,CortexFreq_Value,FCLK2Freq_Value,FCLKCortexFreq_Value,FamilyName,HCLK2Freq_Value,HCLK3Freq_Value,HCLKFreq_Value,HCLKRFFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C3Freq_Value,LCDFreq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,MSIClockRange,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PWRFreq_Value,RFWKPFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SMPS1Freq_Value,SMPSCLockSelectionVirtual,SMPSCLockSelectionVirtualVirtual,SMPSDivider,SYSCLKFreq_VALUE,USART1Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value
ProjectManager.AskForMigrate=true
Mcu.Name=STM32WB55RGVx
RCC.LPTIM2Freq_Value=32000000
PA13.GPIO_Label=JTMS
ProjectManager.HalAssertFull=false
PB0.Locked=true
ProjectManager.ProjectName=nucleo-wb55-zigbee
ProjectManager.UnderRoot=true
RCC.APB3Freq_Value=16000000
ProjectManager.CoupleFile=false
PB3.Signal=SYS_JTDO-SWO
RCC.SYSCLKFreq_VALUE=32000000
Mcu.Package=VFQFPN68
PB5.Signal=GPIO_Output
PB1.Signal=GPIO_Output
PCC.Ble.ConnectionInterval=1000.0
NVIC.ForceEnableDMAVector=true
KeepUserPlacement=false
PA14.GPIOParameters=GPIO_Label
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
PA13.Locked=true
ProjectManager.CompilerOptimize=6
PA11.Signal=USB_DM
PA14.Signal=SYS_JTCK-SWCLK
ProjectManager.ToolChainLocation=
RCC.LSI_VALUE=32000
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
RCC.LSCOPinFreq_Value=32000
ProjectManager.HeapSize=0x200
Mcu.Pin15=PB5
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
Mcu.Pin16=PB6
Mcu.Pin13=PD1
Mcu.Pin14=PB3
Mcu.Pin19=VP_SYS_VS_Systick
ProjectManager.ComputerToolchain=false
Mcu.Pin17=PB7
RCC.HSI_VALUE=16000000
Mcu.Pin18=VP_RTC_VS_RTC_Activate
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
Mcu.Pin11=PA14
Mcu.Pin12=PD0
PB5.GPIO_Label=LED_BLUE
PD0.GPIOParameters=GPIO_Label
Mcu.Pin10=PA13
PB7.Locked=true
RCC.PLLPoutputFreq_Value=128000000
RCC.APB1TimFreq_Value=32000000
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
RCC.PWRFreq_Value=32000000
PC4.Locked=true
RCC.LPUART1Freq_Value=32000000
RCC.APB1Freq_Value=32000000
PD1.Locked=true
RCC.SMPSDivider=1
PB0.Signal=GPIO_Output
ProjectManager.CustomerFirmwarePackage=
PC4.GPIOParameters=GPIO_Label
ProjectManager.DeviceId=STM32WB55RGVx
RCC.MSIClockRange=RCC_MSIRANGE_10
ProjectManager.LibraryCopy=1
RCC.HSI48_VALUE=48000000
PB1.GPIOParameters=GPIO_Label
isbadioc=false

Loading…
Cancel
Save