source: trunk/fw_g473rct/Core/Src/ucpd.c

Last change on this file was 58, checked in by f.jahn, 5 weeks ago

Added more USBPD-stack files.

File size: 3.3 KB
Line 
1/* USER CODE BEGIN Header */
2/**
3 ******************************************************************************
4 * @file ucpd.c
5 * @brief This file provides code for the configuration
6 * of the UCPD instances.
7 ******************************************************************************
8 * @attention
9 *
10 * Copyright (c) 2026 STMicroelectronics.
11 * All rights reserved.
12 *
13 * This software is licensed under terms that can be found in the LICENSE file
14 * in the root directory of this software component.
15 * If no LICENSE file comes with this software, it is provided AS-IS.
16 *
17 ******************************************************************************
18 */
19/* USER CODE END Header */
20/* Includes ------------------------------------------------------------------*/
21#include "ucpd.h"
22
23/* USER CODE BEGIN 0 */
24
25/* USER CODE END 0 */
26
27/* UCPD1 init function */
28void MX_UCPD1_Init(void)
29{
30
31 /* USER CODE BEGIN UCPD1_Init 0 */
32
33 /* USER CODE END UCPD1_Init 0 */
34
35 LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
36
37 /* Peripheral clock enable */
38 LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_UCPD1);
39
40 LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOB);
41 /**UCPD1 GPIO Configuration
42 PB4 ------> UCPD1_CC2
43 PB6 ------> UCPD1_CC1
44 */
45 GPIO_InitStruct.Pin = LL_GPIO_PIN_4;
46 GPIO_InitStruct.Mode = LL_GPIO_MODE_ANALOG;
47 GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
48 LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
49
50 GPIO_InitStruct.Pin = LL_GPIO_PIN_6;
51 GPIO_InitStruct.Mode = LL_GPIO_MODE_ANALOG;
52 GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
53 LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
54
55 /* UCPD1 DMA Init */
56
57 /* UCPD1_RX Init */
58 LL_DMA_SetPeriphRequest(DMA1, LL_DMA_CHANNEL_8, LL_DMAMUX_REQ_UCPD1_RX);
59
60 LL_DMA_SetDataTransferDirection(DMA1, LL_DMA_CHANNEL_8, LL_DMA_DIRECTION_PERIPH_TO_MEMORY);
61
62 LL_DMA_SetChannelPriorityLevel(DMA1, LL_DMA_CHANNEL_8, LL_DMA_PRIORITY_LOW);
63
64 LL_DMA_SetMode(DMA1, LL_DMA_CHANNEL_8, LL_DMA_MODE_NORMAL);
65
66 LL_DMA_SetPeriphIncMode(DMA1, LL_DMA_CHANNEL_8, LL_DMA_PERIPH_NOINCREMENT);
67
68 LL_DMA_SetMemoryIncMode(DMA1, LL_DMA_CHANNEL_8, LL_DMA_MEMORY_INCREMENT);
69
70 LL_DMA_SetPeriphSize(DMA1, LL_DMA_CHANNEL_8, LL_DMA_PDATAALIGN_BYTE);
71
72 LL_DMA_SetMemorySize(DMA1, LL_DMA_CHANNEL_8, LL_DMA_MDATAALIGN_BYTE);
73
74 /* UCPD1_TX Init */
75 LL_DMA_SetPeriphRequest(DMA2, LL_DMA_CHANNEL_1, LL_DMAMUX_REQ_UCPD1_TX);
76
77 LL_DMA_SetDataTransferDirection(DMA2, LL_DMA_CHANNEL_1, LL_DMA_DIRECTION_MEMORY_TO_PERIPH);
78
79 LL_DMA_SetChannelPriorityLevel(DMA2, LL_DMA_CHANNEL_1, LL_DMA_PRIORITY_LOW);
80
81 LL_DMA_SetMode(DMA2, LL_DMA_CHANNEL_1, LL_DMA_MODE_NORMAL);
82
83 LL_DMA_SetPeriphIncMode(DMA2, LL_DMA_CHANNEL_1, LL_DMA_PERIPH_NOINCREMENT);
84
85 LL_DMA_SetMemoryIncMode(DMA2, LL_DMA_CHANNEL_1, LL_DMA_MEMORY_INCREMENT);
86
87 LL_DMA_SetPeriphSize(DMA2, LL_DMA_CHANNEL_1, LL_DMA_PDATAALIGN_BYTE);
88
89 LL_DMA_SetMemorySize(DMA2, LL_DMA_CHANNEL_1, LL_DMA_MDATAALIGN_BYTE);
90
91 /* UCPD1 interrupt Init */
92 NVIC_SetPriority(UCPD1_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0));
93 NVIC_EnableIRQ(UCPD1_IRQn);
94
95 /* USER CODE BEGIN UCPD1_Init 1 */
96
97 /* USER CODE END UCPD1_Init 1 */
98 /* USER CODE BEGIN UCPD1_Init 2 */
99
100 /* USER CODE END UCPD1_Init 2 */
101
102}
103
104/* USER CODE BEGIN 1 */
105
106/* USER CODE END 1 */
107
Note: See TracBrowser for help on using the repository browser.