NFC: application + rfal + driver.

This commit is contained in:
Aleksandr Kutuzov
2020-10-19 01:09:48 +03:00
parent 13608cee9e
commit 4c9eb4928d
72 changed files with 42732 additions and 24 deletions

View File

@@ -94,6 +94,7 @@ void Error_Handler(void);
#define LED_GREEN_GPIO_Port GPIOB
#define RFID_PULL_Pin GPIO_PIN_15
#define RFID_PULL_GPIO_Port GPIOB
#define RFID_PULL_EXTI_IRQn EXTI15_10_IRQn
#define VIBRO_Pin GPIO_PIN_6
#define VIBRO_GPIO_Port GPIOC
#define iButton_Pin GPIO_PIN_7

View File

@@ -50,10 +50,10 @@ void MX_GPIO_Init(void)
__HAL_RCC_GPIOD_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, DISPLAY_DI_Pin|CC1101_CS_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(DISPLAY_DI_GPIO_Port, DISPLAY_DI_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOC, NFC_CS_Pin|VIBRO_Pin|DISPLAY_CS_Pin|SD_CS_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOC, NFC_CS_Pin|SD_CS_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, LED_BLUE_Pin|LED_GREEN_Pin, GPIO_PIN_SET);
@@ -62,7 +62,10 @@ void MX_GPIO_Init(void)
HAL_GPIO_WritePin(GPIOB, DISPLAY_RST_Pin|IR_TX_Pin|DISPLAY_BACKLIGHT_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(LED_RED_GPIO_Port, LED_RED_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOC, VIBRO_Pin|DISPLAY_CS_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, LED_RED_Pin|CC1101_CS_Pin, GPIO_PIN_SET);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = BUTTON_BACK_Pin;
@@ -134,6 +137,12 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = RFID_PULL_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
HAL_GPIO_Init(RFID_PULL_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = LED_RED_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;

View File

@@ -60,7 +60,7 @@ void MX_SPI3_Init(void)
hspi3.Init.Direction = SPI_DIRECTION_2LINES;
hspi3.Init.DataSize = SPI_DATASIZE_8BIT;
hspi3.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi3.Init.CLKPhase = SPI_PHASE_1EDGE;
hspi3.Init.CLKPhase = SPI_PHASE_2EDGE;
hspi3.Init.NSS = SPI_NSS_SOFT;
hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_64;
hspi3.Init.FirstBit = SPI_FIRSTBIT_MSB;
@@ -68,7 +68,7 @@ void MX_SPI3_Init(void)
hspi3.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
hspi3.Init.CRCPolynomial = 7;
hspi3.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
hspi3.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
hspi3.Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
if (HAL_SPI_Init(&hspi3) != HAL_OK)
{
Error_Handler();
@@ -120,7 +120,7 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
*/
GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

View File

@@ -256,6 +256,7 @@ void EXTI15_10_IRQHandler(void)
/* USER CODE END EXTI15_10_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_15);
/* USER CODE BEGIN EXTI15_10_IRQn 1 */
/* USER CODE END EXTI15_10_IRQn 1 */

View File

@@ -140,10 +140,6 @@ void MX_TIM15_Init(void)
{
Error_Handler();
}
if (HAL_TIM_OC_ConfigChannel(&htim15, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
{
Error_Handler();
}
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
@@ -255,14 +251,13 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
__HAL_RCC_GPIOB_CLK_ENABLE();
/**TIM15 GPIO Configuration
PB13 ------> TIM15_CH1N
PB15 ------> TIM15_CH2
*/
GPIO_InitStruct.Pin = RFID_OUT_Pin|RFID_PULL_Pin;
GPIO_InitStruct.Pin = RFID_OUT_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF14_TIM15;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
HAL_GPIO_Init(RFID_OUT_GPIO_Port, &GPIO_InitStruct);
/* USER CODE BEGIN TIM15_MspPostInit 1 */

View File

@@ -1,10 +1,11 @@
#MicroXplorer Configuration settings - do not modify
PB13.GPIOParameters=GPIO_Label
PC7.GPIOParameters=GPIO_ModeDefaultPP,GPIO_Speed,GPIO_PuPd,GPIO_Label
PA15\ (JTDI).GPIOParameters=GPIO_Label
PA15\ (JTDI).GPIOParameters=PinState,GPIO_Label
RCC.USART1Freq_Value=64000000
TIM8.ICPolarity_CH2=TIM_INPUTCHANNELPOLARITY_BOTHEDGE
SPI3.Direction=SPI_DIRECTION_2LINES
PC10.GPIO_PuPd=GPIO_PULLDOWN
SPI3.VirtualType=VM_MASTER
SPI1.VirtualType=VM_MASTER
VP_ADC1_TempSens_Input.Mode=IN-TempSens
@@ -103,12 +104,13 @@ RCC.LPUART1Freq_Value=64000000
USB_OTG_FS.IPParameters=VirtualMode
PB13.Mode=Output Compare1 CH1N
PB10.GPIOParameters=GPIO_Label
PC12.GPIO_PuPd=GPIO_PULLDOWN
PA13\ (JTMS-SWDIO).Signal=SYS_JTMS-SWDIO
PA13\ (JTMS-SWDIO).GPIOParameters=GPIO_Label
PH0-OSC_IN\ (PH0).Mode=HSE-External-Oscillator
PA8.GPIO_Speed=GPIO_SPEED_FREQ_HIGH
ProjectManager.CustomerFirmwarePackage=../../../lib/STM32CubeL4
PC4.GPIOParameters=GPIO_Label
PC4.GPIOParameters=PinState,GPIO_Label
PC2.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
NVIC.EXTI4_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
RCC.PLLQoutputFreq_Value=64000000
@@ -117,6 +119,7 @@ FREERTOS.Tasks01=defaultTask,24,1024,StartDefaultTask,Default,NULL,Dynamic,NULL,
ADC1.Rank-0\#ChannelRegularConversion=1
TIM5.IPParameters=Prescaler,Period,Channel-PWM Generation4 CH4,Pulse-PWM Generation4 CH4
Mcu.PinsNb=58
PC4.PinState=GPIO_PIN_SET
PC11.Locked=true
VP_SYS_VS_tim17.Mode=TIM17
ADC1.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,NbrOfConversionFlag,master,NbrOfConversion
@@ -129,10 +132,12 @@ PB8.GPIO_PuPd=GPIO_PULLDOWN
PC6.Signal=GPIO_Output
PC2.Signal=GPXTI2
PB11.GPIO_Label=IR_TX
PC9.PinState=GPIO_PIN_SET
SH.GPXTI0.ConfNb=1
SPI1.CLKPhase=SPI_PHASE_1EDGE
PC0.Signal=GPIO_Analog
PB14.Locked=true
PC11.GPIOParameters=GPIO_PuPd
SH.S_TIM8_CH2.0=TIM8_CH2,Input_Capture2_from_TI2
PC3.GPIOParameters=GPIO_Label
PB8.GPIO_Label=BUTTON_RIGHT
@@ -160,7 +165,6 @@ Mcu.Pin49=PB8
RCC.PLLSAI1PoutputFreq_Value=13714285.714285715
Mcu.Pin46=PB5
Mcu.Pin47=PB6
TIM15.Channel-Output\ Compare2\ CH2=TIM_CHANNEL_2
PB10.Signal=GPIO_Output
PB14.Signal=GPIO_Output
RCC.PLLSAI2RoutputFreq_Value=32000000
@@ -173,7 +177,6 @@ Mcu.Pin45=PB4 (NJTRST)
Mcu.Pin42=PC12
Mcu.Pin43=PD2
ProjectManager.LastFirmware=true
SH.S_TIM15_CH2.ConfNb=1
Mcu.Pin37=PA13 (JTMS-SWDIO)
Mcu.Pin38=PA14 (JTCK-SWCLK)
PB15.GPIO_Label=RFID_PULL
@@ -195,9 +198,10 @@ SH.ADCx_IN4.0=ADC1_IN4,IN4-Single-Ended
Mcu.Pin32=PA8
PA9.Locked=true
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
PC10.GPIOParameters=GPIO_PuPd
SH.S_TIM5_CH4.ConfNb=1
ProjectManager.FreePins=false
PC9.GPIOParameters=GPIO_Label
PC9.GPIOParameters=PinState,GPIO_Label
RCC.LPTIM2Freq_Value=64000000
Mcu.Pin26=PB14
Mcu.Pin27=PB15
@@ -231,6 +235,7 @@ Mcu.Pin16=PA7
Mcu.Pin13=PA4
Mcu.Pin14=PA5
Mcu.Pin19=PB0
SH.GPXTI15.ConfNb=1
ProjectManager.ComputerToolchain=false
Mcu.Pin17=PC4
Mcu.Pin18=PC5
@@ -241,6 +246,7 @@ Mcu.Pin12=PA3
Mcu.Pin10=PA1
PC3.GPIO_Label=BATT_V
RCC.PWRFreq_Value=64000000
PA15\ (JTDI).PinState=GPIO_PIN_SET
SH.ADCx_IN5.ConfNb=1
PB4\ (NJTRST).GPIO_Label=BUTTON_LEFT
PB1.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
@@ -278,18 +284,18 @@ PC13.GPIO_Label=BUTTON_BACK
PC1.Locked=true
PB13.GPIO_Label=RFID_OUT
PB11.Signal=GPIO_Output
PB15.Signal=S_TIM15_CH2
PB15.Signal=GPXTI15
ProjectManager.StackSize=0x400
PB3\ (JTDO-TRACESWO).Signal=SPI1_SCK
VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2
SH.GPXTI2.0=GPIO_EXTI2
SH.S_TIM15_CH2.0=TIM15_CH2,Output Compare2 CH2
RCC.I2C3Freq_Value=64000000
Mcu.IP4=RCC
RCC.FCLKCortexFreq_Value=64000000
Mcu.IP5=SPI1
Mcu.IP2=FREERTOS
Mcu.IP3=NVIC
PC11.GPIO_PuPd=GPIO_PULLDOWN
Mcu.IP0=ADC1
Mcu.IP1=COMP1
PA12.Locked=true
@@ -352,6 +358,7 @@ PB7.GPIO_Label=CC1101_G0
PB4\ (NJTRST).Locked=true
PA6.Signal=GPIO_Analog
PA7.Locked=true
PB15.GPIO_PuPd=GPIO_PULLDOWN
NVIC.OTG_FS_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true
ProjectManager.ToolChainLocation=
PA2.GPIO_Label=DISPLAY_DI
@@ -362,7 +369,7 @@ VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Signal=USB_DEVICE_VS_USB_DEVICE_CDC_FS
PC14-OSC32_IN\ (PC14).Locked=true
TIM8.Prescaler=64-1
PC4.Locked=true
SPI3.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler,CLKPolarity
SPI3.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler,CLKPolarity,CLKPhase
PC5.Signal=COMP1_INP
SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_16
PA1.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
@@ -401,6 +408,7 @@ RCC.FamilyName=M
PH1-OSC_OUT\ (PH1).Signal=RCC_OSC_OUT
PB9.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
PC8.GPIO_Label=DISPLAY_CS
PC12.GPIOParameters=GPIO_PuPd
USART1.VirtualMode-Asynchronous=VM_ASYNC
FREERTOS.configUSE_IDLE_HOOK=1
PA9.Mode=Asynchronous
@@ -417,12 +425,14 @@ PC2.Locked=true
ProjectManager.RegisterCallBack=
PC15-OSC32_OUT\ (PC15).Locked=true
RCC.USBFreq_Value=48000000
TIM15.IPParameters=Channel-Output Compare1 CH1N,Channel-Output Compare2 CH2
TIM15.IPParameters=Channel-Output Compare1 CH1N
PB14.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PA1.Signal=GPXTI1
PB1.Locked=true
PB15.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING
PH1-OSC_OUT\ (PH1).Locked=true
board=NUCLEO-L476RG
SPI3.CLKPhase=SPI_PHASE_2EDGE
PC7.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
RCC.VCOOutputFreq_Value=128000000
NVIC.SavedSystickIrqHandlerGenerated=true
@@ -439,7 +449,7 @@ VP_ADC1_Vref_Input.Signal=ADC1_Vref_Input
SH.S_TIM5_CH4.0=TIM5_CH4,PWM Generation4 CH4
PC2.GPIO_PuPd=GPIO_PULLUP
RCC.UART5Freq_Value=64000000
PB15.GPIOParameters=GPIO_Label
PB15.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
ADC1.NbrOfConversion=1
PA15\ (JTDI).GPIO_Label=CC1101_CS
RCC.IPParameters=ADCCLockSelection,ADCFreq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,DFSDMFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,MSI_VALUE,PLLM,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1N,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PLLSAI2PoutputFreq_Value,PLLSAI2RoutputFreq_Value,PLLSourceVirtual,PREFETCH_ENABLE,PWRFreq_Value,RNGFreq_Value,SAI1Freq_Value,SAI2Freq_Value,SDMMCFreq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,UART5Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value,VCOSAI2OutputFreq_Value
@@ -471,6 +481,7 @@ SH.GPXTI4.ConfNb=1
PC6.GPIOParameters=GPIO_Label
RCC.HSI_VALUE=16000000
ADC1.NbrOfConversionFlag=1
SH.GPXTI15.0=GPIO_EXTI15
RCC.PLLM=2
RCC.PLLN=16
TIM8.Channel-Input_Capture2_from_TI2=TIM_CHANNEL_2