0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

麥辣雞腿堡 ? 來源:村田制作所 ? 作者:村田制作所 ? 2023-01-31 16:05 ? 次閱讀

2.7 [可選] 配置 Tracer 進行調試↑

2.7.1配置LPUART

STM32G0 Nucleo-64板子上,連接ST-LINK的Virtual COM口是LPUART1。

必須更改 LPUART1 使用的默認 STM32CubeMX 引腳以匹配 STM32G0 Nucleo-64 硬件

TX 的 PA2

用于接收的 PA3。

在Connectivity部分,在 Asynchronous 模式下啟用LPUART1,波特率為921600 bauds。其余保持默認。

poYBAGPYy9eAPq47AAEVgBuFdGs078.png

在引腳布局視圖中,左鍵單擊 PA2 和 PA3 以將它們重新映射到LPUART1_TX和LPUART1_RX。

pYYBAGPYy9iAUMozAADv_wJIMWU441.png

DMA 配置選項卡下,添加對LPUART1_TX的請求。使用DMA1 通道 3。

poYBAGPYy9iAX92PAAAuyXQDUVY814.png

最后,在NVIC 設置選項卡下,啟用 LPUART1 全局中斷。

pYYBAGPYy9mAWsjlAAAzf2Fllxk506.png

2.7.2配置嵌入式tracer ↑

在Utilities部分,選擇TRACER_EMB并使用LPUART1作為跟蹤源。

poYBAGPYy9mARMMLAABqoei-3ew715.png

然后,返回USBPD中間件配置并選中 Tracer Source 復選框。

pYYBAGPYy9qAHHQPAABA7iGpoWw512.png

2.7.3配置UCPD監(jiān)控固件響應器調試↑

如果需要與 USB-PD 堆棧交互,可以使用 UCPD 監(jiān)控工具STM32CubeMonUCPD激活固件交互式堆棧響應器。在“實用程序”部分,啟用 GUI_INTERFACE,然后輸入自由文本來描述電路板。

poYBAGPYy9qAVM3qAABnPp2h03E255.png

3配置項目

40px-Clock.png

5min

在Project Manager主選項卡下,將Project選項卡下的最小堆棧大小配置為0xC00。這是第一個值,以后可以根據(jù)應用需要進行調整。

pYYBAGPYy92AL13WAAClLV1QLXo455.png

Advanced Settings選項卡下,將 LPUART 驅動程序更改為 LL。

poYBAGPYy96AbucWAACLHJiI0lM022.png

4生成代碼

40px-Clock.png

5分鐘

使用 Ctrl+S 保存文件,并在出現(xiàn)提示時選擇生成代碼。您還可以通過單擊項目/生成代碼或按 Alt+K 從 STM32CubeIDE 菜單生成代碼。

pYYBAGPYy96AVyeOAAAvxx-Cqwo902.png

出現(xiàn)一條警告,通知未定義正確的 HAL 時基。使用專用定時器作為 HAL 時基源更安全。

對于此演示,可以通過單擊是忽略以下警告。

poYBAGPYy9-AKALPAAA_ongVZyc927.png

25px-Info_white.png

信息

這成為在即將發(fā)布的固件包交付中推薦的標準工作方式,尤其是在使用 CMSIS OS V2 時,它將 Systick 定義為 FreeRTOS? 時基。

對于此演示,可以通過單擊是忽略警告。

5簡單的USB-PD應用

現(xiàn)在外設已由 STM32CubeMX 初始化,需要添加一些最低級別的應用程序:

ADC 需要校準,轉換需要開始。

中斷處理程序需要完成,以喚醒 UCPD 外設。

BSP_USBPD_PWR_VBUSGetVoltage函數(shù)需要根據(jù) VBUS 分壓橋使用正確的系數(shù)來完成。

需要完成USBPD_DPM_SNK_EvaluateCapabilities函數(shù)以回答一個源能力消息。

需要禁用 TCPP01?M12 沒電電池引腳并將 GPIO 驅動為高電平以查看源 Rp,或者必須在屏蔽上設置跳線。

25px-Warning_white.png

警告

此應用程序是一個非?;镜氖纠?,它請求第一個默認 5V PDO。如果要從源請求特定電壓,則需要添加一些與接收器和源 PDO 匹配的用戶代碼。完成此基本示例后,請參閱高級 USB-PD 應用部分以獲得更完整的應用。

5.1 main.c中的修改↑

25px-Info_white.png

信息

您可以雙擊代碼區(qū)域將其全部選中,然后使用 Ctrl+C 進行復制。

在/* USER CODE BEGIN-END ADC1_Init 2 */標簽之間添加以下代碼:

/* 用戶代碼開始 ADC1_Init 2 */ HAL_ADCEx_Calibration_Start ( & hadc1 ); HAL_ADC_Start ( & hadc1 ); /* 用戶代碼結束 ADC1_Init 2 */

5.2 usbpd_dpm_user.c中的修改↑

在USBPD_DPM_GetDataInfo函數(shù)中添加如下代碼:

case USBPD_CORE_DATATYPE_SNK_PDO : /*!《 端口 Sink PDO 的處理,由 get sink capa 請求*/ USBPD_PWR_IF_GetPortPDOs ( PortNum , DataId , Ptr , Size ); *大小 *= 4 ; 打破;

在/* USER CODE BEGIN-END USBPD_DPM_SNK_EvaluateCapabilities */標簽 之間添加以下代碼:

/* 用戶代碼開始 USBPD_DPM_SNK_EvaluateCapabilities */ USBPD_SNKRDO_TypeDef rdo ; /* 初始化 RDO */ rdo 。 d32 = 0 ; /* 準備請求的 pdo */ rdo 。 固定變量 RDO 。對象位置 = 1 ; rdo 。固定變量 RDO 。OperatingCurrentIn10mAunits = 50 ; rdo 。固定變量 RDO 。MaxOperatingCurrent10mAunits = 50 ; rdo 。固定變量 RDO 。能力不匹配 = 0 ; * PtrPowerObjectType = USBPD_CORE_PDO_TYPE_FIXED ; * PtrRequestData = rdo 。d32 ; /* 用戶代碼結束 USBPD_DPM_SNK_EvaluateCapabilities */

5.3 usbpd_pwr_user.c中的修改↑

在/* USER CODE BEGIN-END include */標簽之間添加以下代碼:

/* 用戶代碼開始包括 */ #include “main.h” /* 用戶代碼結束包括 */

在/* USER CODE BEGIN-END BSP_USBPD_PWR_VBUSGetVoltage */標簽之間添加以下代碼:

/* USER CODE BEGIN BSP_USBPD_PWR_VBUSGetVoltage */ /* 檢查實例是否有效 */ int32_t ret = BSP_ERROR_NONE ; if (( Instance 》= USBPD_PWR_INSTANCES_NBR ) || ( NULL == pVoltage )) { ret = BSP_ERROR_WRONG_PARAM ; * p電壓 = 0 ; } else { uint32_t val ; val = __LL_ADC_CALC_DATA_TO_VOLTAGE ( VDDA_APPLI , LL_ADC_REG_ReadConversionData12( ADC1 ), LL_ADC_RESOLUTION_12B ); /* mV */ /* 使用 X-NUCLEO-USBPDM 板 */ /* 值乘以 5.97(VSENSE 的分壓器 R6/R7 (40.2K/200K))*/ val *= 597 ; val /= 100 ; * pVoltage = val ; } 返回 ret ; /* 用戶代碼結束 BSP_USBPD_PWR_VBUSGetVoltage */

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • usb
    usb
    +關注

    關注

    60

    文章

    7773

    瀏覽量

    262390
  • STM32
    +關注

    關注

    2258

    文章

    10828

    瀏覽量

    352492
  • PD
    PD
    +關注

    關注

    4

    文章

    433

    瀏覽量

    43682
收藏 人收藏

    評論

    相關推薦

    USB-PD適配器中常見的拓撲

    本文首先回顧了USB-PD適配器的發(fā)展,并和大家聊一聊USB-PD適配器中常見的拓撲。接著著重介紹ST在快充領域的最新產品和技術路線。最后我們會以demo板為例,跟大家探討一下USB-PD適配器的技術細節(jié)和設計時的注意事項。
    發(fā)表于 08-18 14:18 ?2676次閱讀

    應用指南—如何使用DSLogic分析USB-PD信號?

    ,兩設備協(xié)商后 VBUS 的電壓會有所改變。 VBUS 電壓是 USB 總線上的電源電壓,通常為5V。在 USB-PD ,它可以在5V、9V、12V、15V或20V之間變化,以提供不
    的頭像 發(fā)表于 09-04 14:42 ?1138次閱讀
    應用指南—如何使用DSLogic分析<b class='flag-5'>USB-PD</b>信號?

    USB-PD實現(xiàn)中大功率USB充電應用

    伏特VBus電源線,提高支援電壓等級至12或20伏特。 無庸置疑,USB-PD產品能否問世的關鍵,就在于負責電源訊號通訊的USB VBus設計。新控制方案須達到夠高的頻率,以免影響傳統(tǒng)USB
    發(fā)表于 06-04 05:00

    PD 快充是什么?一篇文章帶你了解USB-PD快充協(xié)議

    前言  說起 USB-PD 協(xié)議,全名 USB Power Delivery ,可能對于很多人來說還很陌生,但是目前越來越多的手機已經(jīng)開始支持這一協(xié)議并用來做為設備快速充電的功能?! ∩杂辛私獾娜?/div>
    發(fā)表于 08-27 09:50

    目前主流的快充協(xié)議USB-PD介紹

    USB-PD 是由 USB-IF 組織制定的一種快速充電規(guī)范,是目前主流的快充協(xié)議之一。 USB-PD 快充協(xié)議是以 Type-C 接口輸出的,但不能說有 Type-C 接口就一定支持 USB
    發(fā)表于 10-28 08:55

    基于USB Type-C的一種電源供電標準USB-PD

    USB-PD(Power Delivery)是基于USB Type-C的一種電源供電標準,最大供電功率可達100瓦(W);隨著USB Type-C的普及,越來越多的設備(手機、平板、顯
    發(fā)表于 09-14 07:24

    請問從USB-PD端口請求更高電壓最簡單最快的方法是什么

    你好,我正在將 STM32G0B1RE 處理器用作 USB-PD SINK。請問從USB-PD端口請求更高電壓(例如9V或12V)最簡單最快的方法是什么(最好使用CubeMX)?任何人都可以分享最簡單的代碼來從 USB-PD
    發(fā)表于 12-23 06:45

    致遠電子發(fā)布USB-PD快充測試方案

    USB-PD(Power Delivery)是基于USB Type-C的供電標準,最大功率可達100W。
    發(fā)表于 05-17 09:47 ?16次下載

    致遠電子發(fā)布 USB-PD 快充測試方案

    USB-PD(Power Delivery)是基于USB Type-C的供電標準,最大功率可達100W。雖然USB-PD快充越來越熱,但行業(yè)內并沒有針對快充的測試工具,ZLG致遠電子正式發(fā)布U
    發(fā)表于 05-17 18:10 ?4436次閱讀
    致遠電子發(fā)布 <b class='flag-5'>USB-PD</b> 快充測試方案

    什么是USB-PD?

    10P0R,VIVONEX 3S等新出的機型,快充應用迎來爆發(fā)。如果您還不熟悉這項技術,并且想了解更多信息,請閱讀以下的使用信息 什么是USB-PD?USB-PDUSB部分代表通用串行總線。您應該熟悉它,因為它定義了相同的技術
    的頭像 發(fā)表于 10-11 09:40 ?3.6w次閱讀
    什么是<b class='flag-5'>USB-PD</b>?

    AN5418_使用STM32CubeMX構建一個簡單的USB-PD接收器應用程序

    AN5418_使用STM32CubeMX構建一個簡單的USB-PD接收器應用程序
    發(fā)表于 11-21 08:11 ?0次下載
    AN5418_使用STM32CubeMX構建一個簡單的<b class='flag-5'>USB-PD</b><b class='flag-5'>接收</b>器應用程序

    如何使用STM32CubeMX構建簡單的USB-PD接收器應用程序

    如何使用STM32CubeMX構建簡單的USB-PD接收器應用程序
    發(fā)表于 11-21 17:07 ?8次下載
    如何使用STM32CubeMX構建簡單的<b class='flag-5'>USB-PD</b><b class='flag-5'>接收</b>器應用程序

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

    。將其他字段保留為默認值,然后單擊“完成”。 2配置系統(tǒng) 15分鐘 此時,您的項目已創(chuàng)建,您只剩下 STM32CubeMX 視圖。在接下來的步驟,我們配置項目所需的外圍設備和選項。 2.1配置UCPD
    的頭像 發(fā)表于 01-31 16:02 ?2070次閱讀
    如何<b class='flag-5'>創(chuàng)建</b> <b class='flag-5'>USB-PD</b> <b class='flag-5'>接收</b><b class='flag-5'>設備</b>(上)

    如何使用DSLogic分析USB-PD信號?

    一文檔介紹本文將一步步介紹如何使用DSLogic邏輯分析儀采集和分析USB-PD信號。此次將演示使用快充充電器給一臺安卓手機充電。二需要測量哪幾個信號邏輯分析儀需要測量CC1信號,兩設備協(xié)商后
    的頭像 發(fā)表于 01-12 14:09 ?791次閱讀
    如何使用DSLogic分析<b class='flag-5'>USB-PD</b>信號?

    USB Type-C與USB-PD技術對比

    本篇文章主要詳述 24P、16P 與 6P USB-TypeC接口的引腳定義,以及USB-PD、USB接口類型,以便廣大讀者在進行硬件設計時提供參考依據(jù)。
    發(fā)表于 01-26 12:23 ?2007次閱讀
    <b class='flag-5'>USB</b> Type-C與<b class='flag-5'>USB-PD</b>技術對比