fixup! feat(core): add support for T3B1

tychovrahe/t3b1/hw_support
tychovrahe 4 weeks ago
parent 13e79d0d2e
commit f73c2775da

@ -48,21 +48,21 @@ void consumption_mask_init(void) {
GPIO_InitTypeDef GPIO_InitStructure = {0};
GPIO_InitStructure.Mode = GPIO_MODE_AF_PP;
GPIO_InitStructure.Pull = GPIO_PULLUP;
GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitStructure.Alternate = GPIO_AF3_TIM8;
GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStructure.Alternate = GPIO_AF1_TIM2;
GPIO_InitStructure.Pin = GPIO_PIN_5;
HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);
__HAL_RCC_TIM8_CLK_ENABLE();
TIM_HandleTypeDef TIM8_Handle = {0};
TIM8_Handle.State = HAL_TIM_STATE_RESET;
TIM8_Handle.Instance = TIM8;
TIM8_Handle.Init.Period = TIMER_PERIOD;
TIM8_Handle.Init.Prescaler = 0;
TIM8_Handle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
TIM8_Handle.Init.CounterMode = TIM_COUNTERMODE_UP;
TIM8_Handle.Init.RepetitionCounter = 0;
HAL_TIM_PWM_Init(&TIM8_Handle);
__HAL_RCC_TIM2_CLK_ENABLE();
TIM_HandleTypeDef TIM2_Handle = {0};
TIM2_Handle.State = HAL_TIM_STATE_RESET;
TIM2_Handle.Instance = TIM2;
TIM2_Handle.Init.Period = TIMER_PERIOD;
TIM2_Handle.Init.Prescaler = 0;
TIM2_Handle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
TIM2_Handle.Init.CounterMode = TIM_COUNTERMODE_UP;
TIM2_Handle.Init.RepetitionCounter = 0;
HAL_TIM_PWM_Init(&TIM2_Handle);
TIM_OC_InitTypeDef TIM_OC_InitStructure = {0};
TIM_OC_InitStructure.Pulse = 0;
@ -72,7 +72,7 @@ void consumption_mask_init(void) {
TIM_OC_InitStructure.OCNPolarity = TIM_OCNPOLARITY_HIGH;
TIM_OC_InitStructure.OCIdleState = TIM_OCIDLESTATE_SET;
TIM_OC_InitStructure.OCNIdleState = TIM_OCNIDLESTATE_SET;
HAL_TIM_PWM_ConfigChannel(&TIM8_Handle, &TIM_OC_InitStructure, TIM_CHANNEL_1);
HAL_TIM_PWM_ConfigChannel(&TIM2_Handle, &TIM_OC_InitStructure, TIM_CHANNEL_1);
__HAL_RCC_GPDMA1_CLK_ENABLE();
DMA_HandleTypeDef dma_handle = {0};
@ -95,7 +95,7 @@ void consumption_mask_init(void) {
/* Set node configuration ################################################*/
pNodeConfig.NodeType = DMA_GPDMA_LINEAR_NODE;
pNodeConfig.Init.Request = GPDMA1_REQUEST_TIM8_UP;
pNodeConfig.Init.Request = GPDMA1_REQUEST_TIM2_UP;
pNodeConfig.Init.BlkHWRequest = DMA_BREQ_SINGLE_BURST;
pNodeConfig.Init.Direction = DMA_MEMORY_TO_PERIPH;
pNodeConfig.Init.SrcInc = DMA_SINC_INCREMENTED;
@ -116,7 +116,7 @@ void consumption_mask_init(void) {
pNodeConfig.DataHandlingConfig.DataExchange = DMA_EXCHANGE_NONE;
pNodeConfig.DataHandlingConfig.DataAlignment = DMA_DATA_RIGHTALIGN_ZEROPADDED;
pNodeConfig.SrcAddress = (uint32_t)pwm_data;
pNodeConfig.DstAddress = (uint32_t)&TIM8->CCR1;
pNodeConfig.DstAddress = (uint32_t)&TIM2->CCR1;
pNodeConfig.DataSize = SAMPLES * sizeof(uint32_t);
pNodeConfig.DestSecure = DMA_CHANNEL_DEST_SEC;
pNodeConfig.SrcSecure = DMA_CHANNEL_SRC_SEC;
@ -133,16 +133,15 @@ void consumption_mask_init(void) {
/* Link created queue to DMA channel #######################################*/
HAL_DMAEx_List_LinkQ(&dma_handle, &Queue);
TIM4->CR2 |= TIM_CR2_MMS_1; // update event as TRGO
TIM8->CR2 |= TIM_CR2_CCPC; // preloading CCR register
TIM8->CR2 |= TIM_CR2_CCUS; // preload when TRGI
TIM8->DIER |= TIM_DMA_UPDATE; // allow DMA request from update event
TIM8->CCR1 = 0;
TIM2->CR2 |= TIM_CR2_CCPC; // preloading CCR register
TIM2->CR2 |= TIM_CR2_CCUS; // preload when TRGI
TIM2->DIER |= TIM_DMA_UPDATE; // allow DMA request from update event
TIM2->CCR1 = 0;
HAL_Delay(1);
HAL_TIM_Base_Start(&TIM8_Handle);
HAL_TIM_PWM_Start(&TIM8_Handle, TIM_CHANNEL_1);
HAL_TIM_Base_Start(&TIM2_Handle);
HAL_TIM_PWM_Start(&TIM2_Handle, TIM_CHANNEL_1);
HAL_DMAEx_List_Start(&dma_handle);
}

Loading…
Cancel
Save