1創(chuàng)建項(xiàng)目
打開(kāi) STM32CubeIDE 并創(chuàng)建一個(gè)新的 STM32 項(xiàng)目。作為目標(biāo)選擇,從Board Selector選項(xiàng)卡中選擇 NUCLEO-G0B1RE
單擊“下一步”,然后輸入您的項(xiàng)目名稱。將其他字段保留為默認(rèn)值,然后單擊“完成”。
當(dāng)提示使用默認(rèn)模式初始化外圍設(shè)備時(shí),單擊否。
2配置系統(tǒng)↑
此時(shí),您的項(xiàng)目已創(chuàng)建,您只剩下 STM32CubeMX 視圖。在接下來(lái)的步驟中,我們將配置項(xiàng)目所需的外圍設(shè)備和選項(xiàng)。
2.1清除引出線↑
要從空白配置開(kāi)始,請(qǐng)單擊Pinout菜單并選擇Clear Pinouts。這將重置引腳布局視圖中的引腳布局。
2.2配置系統(tǒng)時(shí)基↑
對(duì)于這個(gè)簡(jiǎn)單的例子,我們將使用 SysTick 作為系統(tǒng)時(shí)基。在 System Core 部分,選擇SYS并將Timebase Source更改為SysTick。
2.3配置UCPD外設(shè)↑
在Connectivity選項(xiàng)卡中,選擇UCPD1外圍設(shè)備并在源模式下啟用它。在NVIC 設(shè)置選項(xiàng)卡下,啟用 UCPD 全局中斷。
在DMA 設(shè)置選項(xiàng)卡下,添加 UCPD1_RX 和 UCPD1_TX DMA 請(qǐng)求。為 RX選擇DMA1 通道 4,為TX 選擇 DMA1 通道 2。
信息
您可以使用任何您想要的 DMA 通道,但 DMA1_Channel1 除外,它稍后將由 BSP 驅(qū)動(dòng)程序使用。
2.4配置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而不是 CubeMX 的默認(rèn)值 5。在某些使用 STM32G4 的情況下,將其設(shè)置為 5 會(huì)使代碼執(zhí)行卡在 vPortValidateInterruptPriority 函數(shù)中。
2.5配置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 10x0001912C(對(duì)應(yīng)簡(jiǎn)單的5V/3A source)
下表摘自USB 供電規(guī)范,表 6-9 固定電源 PDO - 源。該項(xiàng)目的使用值和相關(guān)解碼已添加到表中。
位描述使用價(jià)值解碼
B31..30固定供應(yīng)00b固定的
B29雙重角色權(quán)力0b不
B28支持 USB 掛起0b不
B27不受約束的權(quán)力0b不
B26USB 通信能力0b不
B25雙重角色數(shù)據(jù)0b不
B24..22保留 - 應(yīng)取消設(shè)置為零000b不
B21..20峰值電流00b峰值等于
B19..10以 50mV 為單位的電壓0001100100b5V
B9..0以 10mA 為單位的最大電流0100101100b3A
2.6配置ADC外設(shè)↑
為使供電堆棧正常工作,需要監(jiān)控 VBUS。為此,需要配置一個(gè) ADC 來(lái)測(cè)量 VBUS 電壓和電流。
由于我們將使用 X-NUCLEO-SRC1M1 BSP,因此不需要在 CubeMX 中完成 ADC 配置。
由于我們需要 ADC LL 驅(qū)動(dòng)程序才能正常工作,因此我們?nèi)匀恍枰?CubeMX 中配置 ADC 以使其包含驅(qū)動(dòng)程序文件,但實(shí)際配置和初始化函數(shù)不會(huì)在我們的項(xiàng)目中調(diào)用。
在模擬部分,啟用ADC1外設(shè)通道 0。保留默認(rèn)配置,因?yàn)?X-NUCLEO-SRC1M1 BSP 將重新配置它。
2.7配置I2C外設(shè)↑
由于 X-NUCLEO-SRC1M1 擴(kuò)展板包含一個(gè)通過(guò) I2C 通信的 TCPP02-M18,我們需要在我們的項(xiàng)目中啟用 I2C 外設(shè)。
在連接部分,在I2C模式下啟用I2C2外設(shè)。保留默認(rèn)配置,因?yàn)?X-NUCLEO-SRC1M1 BSP 將重新配置它。
注意:我們需要在 CubeMX 視圖中啟用 I2C2 外設(shè)以生成代碼以包括 I2C 驅(qū)動(dòng)程序,就像我們?yōu)?ADC 所做的那樣。
2.8配置時(shí)鐘↑
在Clock Configuration主選項(xiàng)卡下,將系統(tǒng)時(shí)鐘 mux 更改為PLLCLK。它將HCLK時(shí)鐘設(shè)置為 64MHz。
信息
簡(jiǎn)單 USB-PD 接收器應(yīng)用程序的強(qiáng)制設(shè)置已完成。
強(qiáng)烈建議使用以下部分進(jìn)行調(diào)試
2.9 [可選] 配置 Tracer 進(jìn)行調(diào)試↑
2.9.1配置LPUART↑
在STM32G0 Nucleo-64板子上,連接ST-LINK的Virtual COM口是LPUART1。
警告
必須更改 LPUART1 使用的默認(rèn) STM32CubeMX 引腳以匹配 STM32G0 Nucleo-64 硬件:
TX 的 PA2
用于接收的 PA3。
在連接部分,在異步模式下啟用LPUART1,波特率為921600 波特。其余保持默認(rèn)。
在引腳布局視圖中,左鍵單擊 PA2 和 PA3 以將它們重新映射到LPUART1_TX和LPUART1_RX。
在DMA 配置選項(xiàng)卡下,添加對(duì)LPUART1_TX的請(qǐng)求。使用DMA1 通道 3。
最后,在NVIC 設(shè)置選項(xiàng)卡下,啟用 LPUART1 全局中斷。
2.9.2配置嵌入式tracer↑
在Utilities部分,選擇TRACER_EMB并使用LPUART1作為跟蹤源。
然后,返回USBPD中間件配置并選中 Tracer Source 復(fù)選框。
2.9.3配置UCPD監(jiān)控固件響應(yīng)器調(diào)試↑
如果需要與 USB-PD 堆棧交互,可以使用 UCPD 監(jiān)控工具STM32CubeMonUCPD激活固件交互式堆棧響應(yīng)器。在 Utilities 部分,啟用 GUI_INTERFACE,然后輸入自由文本來(lái)描述電路板。
-
usb
+關(guān)注
關(guān)注
60文章
8149瀏覽量
271096 -
PD
+關(guān)注
關(guān)注
4文章
511瀏覽量
44723
發(fā)布評(píng)論請(qǐng)先 登錄
USB-PD適配器中常見(jiàn)的拓?fù)?/a>
應(yīng)用指南—如何使用DSLogic分析USB-PD信號(hào)?

為什么 USB-PD 需要 TDS 保護(hù)
USB-PD實(shí)現(xiàn)中大功率USB充電應(yīng)用
PD 快充是什么?一篇文章帶你了解USB-PD快充協(xié)議
目前主流的快充協(xié)議USB-PD介紹
基于USB Type-C的一種電源供電標(biāo)準(zhǔn)USB-PD
創(chuàng)建和配置數(shù)據(jù)源
致遠(yuǎn)電子發(fā)布USB-PD快充測(cè)試方案
致遠(yuǎn)電子發(fā)布 USB-PD 快充測(cè)試方案

什么是USB-PD?

如何創(chuàng)建 USB-PD 接收設(shè)備(上)

如何創(chuàng)建 USB-PD 接收設(shè)備(中)

創(chuàng)建 USB-PD 源設(shè)備編譯運(yùn)行

如何使用DSLogic分析USB-PD信號(hào)?

評(píng)論