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