1創建項目
打開 STM32CubeIDE 并創建一個新的 STM32 項目。作為目標選擇,從MCU/MPU 選擇器選項卡中選擇 STM32G071RB
單擊“下一步”,然后輸入您的項目名稱。將其他字段保留為默認值,然后單擊“完成”。
2配置系統
15分鐘
此時,您的項目已創建,您只剩下 STM32CubeMX 視圖。在接下來的步驟中,我們配置項目所需的外圍設備和選項。
2.1配置UCPD外設↑
在Connectivity選項卡中,選擇UCPD1外設并在接收模式下啟用它。在NVIC 設置選項卡下,啟用 UCPD 全局中斷。
您不需要在配置中包含“Dead Battery Signals”,因為它由 X-NUCLEO-SNK1M1 擴展板上的 TCPP01 保護設備管理。
在DMA 設置選項卡下,添加 UCPD1_RX 和 UCPD1_TX DMA 請求。
2.2配置FreeRTOS中間件↑
在中間件部分,使用CMSIS_V1接口啟用FreeRTOS 。在Config Parameters選項卡下,將“TOTAL_HEAP_SIZE”更改為 7000 字節。
然后,在Include Parameters選項卡下,啟用eTaskGetState包含定義。
信息
如果G0 使用STM32G4 ,則需要將 LIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 設置為 3而不是 STM32CubeMX 的默認值 5。在某些情況下,使用 STM32G4,將其設置為 5 會使代碼執行卡在 vPortValidateInterruptPriority 函數中。
2.3配置USBPD中間件↑
在中間件部分,使用以下配置 啟用USBPD :
端口配置:端口 0:UCPD1
堆棧配置:PD3 全棧
定時器服務來源:TIM1
在PDO General Definitions選項卡下,驗證以下配置:
端口 0 的接收器 PDO 數量:1
Port 0 Sink PDO 10x26019096(對應一個5V/1.5A,雙重角色數據sink)
下表摘自USB 供電規范,表 6-14 固定電源 PDO - 接收器。該項目的使用值和相關解碼已添加到表中。
位描述使用價值解碼
B31..30固定供應00b固定的
B29雙重角色權力0b不
B28更高的能力0b不
B27不受約束的權力0b不
B26USB 通信能力0b不
B25雙重角色數據1b是的
B24..23快速角色交換支持00b不
B22..20保留 - 必須設置為零0b不
B19..10以 50mV 為單位的電壓0001100100b5V
B9..0以 10mA 為單位的最大電流0010010110b1.5A
2.4配置ADC外設↑
為使供電堆棧正常工作,必須監控 VBUS。為此,需要配置一個 ADC 來測量 VBUS 電壓。
在模擬部分,啟用ADC1外設通道 9(連接到引腳 PB1)。使用以下配置配置 ADC:
時鐘預分頻器:同步/4
連續轉換模式:啟用
溢出行為:溢出數據被覆蓋
采樣時間公共 1 和 2:160.5 個周期
然后,在GPIO 設置選項卡下,將 PB1 引腳重命名為VSENSE,這是該引腳的更具描述性的名稱,用于 VBUS 監控:
在User Constants選項卡下,添加名為VDDA_APPLI且值為3300的常量。
2.5配置GPIOs↑
對于 X-NUCLEO-SNK1M1 shield,需要兩個額外的 GPIO 設置(在 X-NUCLEO-USBPDM1 中沒有,因為設置是通過跳線強制設置的)。
PB6(DB_OUT用于禁用電池沒電)GPIO 輸出為高電平
PC10(為 TCPP01?M12 供電的VCC_OUT引腳)GPIO 輸出為高電平
要設置此配置,請在 Pinout視圖中左鍵單擊 PB6 和 PC10引腳,然后將引腳設置為GPIO_Output。在System Core部分的GPIO下,將兩個引腳的 GPIO 輸出電平更改為高電平,并為 PB6設置用戶標簽 DB_OUT ,為PC10設置 VCC_OUT。
對于實際應用,這些 GPIO 設置必須在 UCPD 初始化之后執行。
2.6配置時鐘↑
在Clock Configuration主選項卡下,將系統時鐘 mux 更改為PLLCLK。它將HCLK時鐘設置為 64 MHz。
信息
簡單 USB-PD 接收器應用程序的強制設置已完成。
強烈建議使用以下部分進行調試
-
usb
+關注
關注
60文章
7981瀏覽量
266112 -
STM32
+關注
關注
2272文章
10924瀏覽量
357599 -
PD
+關注
關注
4文章
484瀏覽量
44134
發布評論請先 登錄
相關推薦
評論