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
發布評論請先 登錄
相關推薦
USB-PD適配器中常見的拓撲
應用指南—如何使用DSLogic分析USB-PD信號?
![應用指南—如何使用DSLogic分析<b class='flag-5'>USB-PD</b>信號?](https://file1.elecfans.com//web2/M00/A2/ED/wKgaomT1fDKAJtWsAACeOVytPUE836.png)
USB-Pd Type-C連接器是改變游戲規則的嗎?
USB-PD實現中大功率USB充電應用
PD 快充是什么?一篇文章帶你了解USB-PD快充協議
目前主流的快充協議USB-PD介紹
基于USB Type-C的一種電源供電標準USB-PD
請問從USB-PD端口請求更高電壓最簡單最快的方法是什么
致遠電子發布 USB-PD 快充測試方案
![致遠電子發布 <b class='flag-5'>USB-PD</b> 快充測試方案](https://file1.elecfans.com//web2/M00/A6/C0/wKgZomUMQCGAAiAZAACkPpEvxlA553.jpg)
什么是USB-PD?
![什么是<b class='flag-5'>USB-PD</b>?](https://file.elecfans.com/web1/M00/C9/DB/pIYBAF-CYvuABkxjAAAQxb5MlkA515.jpg)
AN5418_使用STM32CubeMX構建一個簡單的USB-PD接收器應用程序
![AN5418_使用STM32CubeMX構建一個簡單的<b class='flag-5'>USB-PD</b><b class='flag-5'>接收</b>器應用程序](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
如何使用DSLogic分析USB-PD信號?
![如何使用DSLogic分析<b class='flag-5'>USB-PD</b>信號?](https://file1.elecfans.com/web2/M00/BC/48/wKgZomWg15CAAVz_AAD0Ux13RMc233.png)
USB Type-C與USB-PD技術對比
![<b class='flag-5'>USB</b> Type-C與<b class='flag-5'>USB-PD</b>技術對比](https://file1.elecfans.com/web2/M00/BE/85/wKgZomWzNEOAb9V3AAAchb4pWGQ333.png)
評論