API GUIDE / USB_PHY / LL

USB PHY LL 接口

1. USB PHY LL 接口规范

头文件:

#include "ll_usb_phy.h"

1.1 LL 层实现边界

  • 所有公开 ll_usb_phy_* 接口均为 static inline。
  • 首参数统一为 usb_phy_regs_t *usb_phyx;只读接口使用 const usb_phy_regs_t *。
  • LL 层不校验 usb_phyx、字段值或调用上下文。
  • 置位/清位接口使用 read-modify-write;ll_usb_phy_write_bc_detect_control() 使用 32 bit 全寄存器写。
  • LL 层不提供延时、互斥、状态检查、错误恢复或时钟管理。
  • 未封装字段应通过 usb_phy_regs_t 成员直接访问;字段级操作可使用 im_mmio_* 辅助接口。

1.2 RX squelch 控制

1.2.1 ll_usb_phy_get_rx_squelch_trigger

static inline uint32_t
ll_usb_phy_get_rx_squelch_trigger(const usb_phy_regs_t *usb_phyx);

功能说明:读取 RX_SQUELCH_TRIGGER[6:3] 字段。

参数表:

参数 类型 方向 说明
usb_phyx const usb_phy_regs_t * 输入 PHY 寄存器基地址,通常为 USB_PHY。

返回值:字段值 0..0xF。

1.2.2 ll_usb_phy_set_rx_squelch_trigger

static inline void
ll_usb_phy_set_rx_squelch_trigger(usb_phy_regs_t *usb_phyx,
                                  uint32_t trigger);

功能说明:写 RX_SQUELCH_TRIGGER[6:3] 字段,其他位保持不变。

参数表:

参数 类型 方向 说明
usb_phyx usb_phy_regs_t * 输入 PHY 寄存器基地址。
trigger uint32_t 输入 4 bit 编码,使用 USB_PHY_RX_SQUELCH_TRIGGER_*。

返回值:无。

1.3 OTG session 与 IO 高阻

1.3.1 ll_usb_phy_enable_io_high_z

static inline void ll_usb_phy_enable_io_high_z(usb_phy_regs_t *usb_phyx);

功能说明:置位 OTG_SESSION.IO_HIGH_Z[5]。

参数:usb_phyx 为 PHY 寄存器基地址。

返回值:无。

1.3.2 ll_usb_phy_disable_io_high_z

static inline void ll_usb_phy_disable_io_high_z(usb_phy_regs_t *usb_phyx);

功能说明:清除 OTG_SESSION.IO_HIGH_Z[5]。

参数:usb_phyx 为 PHY 寄存器基地址。

返回值:无。

1.4 Legacy detect 控制

1.4.1 ll_usb_phy_clear_legacy_detect_config

static inline void
ll_usb_phy_clear_legacy_detect_config(usb_phy_regs_t *usb_phyx);

功能说明:清除 PHY_DETECT.LEGACY_CONFIG[3]。

参数:usb_phyx 为 PHY 寄存器基地址。

返回值:无。

补充说明:当前没有对应的 set 接口;需要置位时直接更新该 bit。

1.5 VBUS detect 掉电控制

1.5.1 ll_usb_phy_enable_vbus_detect_power_down

static inline void
ll_usb_phy_enable_vbus_detect_power_down(usb_phy_regs_t *usb_phyx);

功能说明:置位 VBUS_CONTROL.DETECT_POWERDOWN[3],使 VBUS detect 进入低功耗状态。

参数:usb_phyx 为 PHY 寄存器基地址。

返回值:无。

1.5.2 ll_usb_phy_disable_vbus_detect_power_down

static inline void
ll_usb_phy_disable_vbus_detect_power_down(usb_phy_regs_t *usb_phyx);

功能说明:清除 VBUS_CONTROL.DETECT_POWERDOWN[3],恢复 VBUS detect。

参数:usb_phyx 为 PHY 寄存器基地址。

返回值:无。

1.6 Legacy receiver driver 控制

1.6.1 ll_usb_phy_enable_legacy_receiver_driver

static inline void
ll_usb_phy_enable_legacy_receiver_driver(usb_phy_regs_t *usb_phyx);

功能说明:置位 PLL_CONTROL0.LEGACY_RECEIVER_DRIVER[6]。

参数:usb_phyx 为 PHY 寄存器基地址。

返回值:无。

1.6.2 ll_usb_phy_disable_legacy_receiver_driver

static inline void
ll_usb_phy_disable_legacy_receiver_driver(usb_phy_regs_t *usb_phyx);

功能说明:清除 PLL_CONTROL0.LEGACY_RECEIVER_DRIVER[6]。

参数:usb_phyx 为 PHY 寄存器基地址。

返回值:无。

1.7 BC1.1 检测控制

1.7.1 ll_usb_phy_write_bc_detect_control

static inline void
ll_usb_phy_write_bc_detect_control(usb_phy_regs_t *usb_phyx,
                                   uint32_t value);

功能说明:

将 value 完整写入 PLL_CONTROL1 (0x104)。

参数表:

参数 类型 方向 说明
usb_phyx usb_phy_regs_t * 输入 PHY 寄存器基地址。
value uint32_t 输入 使用 USB_PHY_BC_DETECT_CONTROL_*。

返回值:无。

BC detect 编码:

阶段 宏 写入值
Idle USB_PHY_BC_DETECT_CONTROL_IDLE 0x00
Data contact USB_PHY_BC_DETECT_CONTROL_DATA_CONTACT 0x60
Primary USB_PHY_BC_DETECT_CONTROL_PRIMARY 0x90
Secondary USB_PHY_BC_DETECT_CONTROL_SECONDARY 0x0C

注意:该接口不是 read-modify-write,会覆盖 PLL_CONTROL1 其他字段。

1.7.2 ll_usb_phy_bc_data_contact_detected

static inline bool
ll_usb_phy_bc_data_contact_detected(const usb_phy_regs_t *usb_phyx);

功能说明:读取 VBUS_VALID_CONTROL.BC_DATA_CONTACT_STATUS[5]。

参数:usb_phyx 为 PHY 寄存器基地址。

返回值:bit 为 1 时返回 true。

1.7.3 ll_usb_phy_bc_primary_detected

static inline bool
ll_usb_phy_bc_primary_detected(const usb_phy_regs_t *usb_phyx);

功能说明:读取 SESSION_VALID_CONTROL.BC_PRIMARY_STATUS[1]。

参数:usb_phyx 为 PHY 寄存器基地址。

返回值:bit 为 1 时返回 true。

1.7.4 ll_usb_phy_bc_secondary_detected

static inline bool
ll_usb_phy_bc_secondary_detected(const usb_phy_regs_t *usb_phyx);

功能说明:读取 SESSION_VALID_CONTROL.BC_SECONDARY_STATUS[0]。

参数:usb_phyx 为 PHY 寄存器基地址。

返回值:bit 为 1 时返回 true。

1.8 DP/DM pull-down 控制

1.8.1 ll_usb_phy_disable_dpdm_pulldown

static inline void
ll_usb_phy_disable_dpdm_pulldown(usb_phy_regs_t *usb_phyx);

功能说明:置位 DPDM_PULLDOWN_CONTROL.PULLDOWN_DISABLE[7]。

参数:usb_phyx 为 PHY 寄存器基地址。

返回值:无。

注意:字段是 disable 极性,置 1 表示禁用 pull-down。

1.8.2 ll_usb_phy_enable_dpdm_pulldown

static inline void
ll_usb_phy_enable_dpdm_pulldown(usb_phy_regs_t *usb_phyx);

功能说明:清除 DPDM_PULLDOWN_CONTROL.PULLDOWN_DISABLE[7],允许 DP/DM pull-down。

参数:usb_phyx 为 PHY 寄存器基地址。

返回值:无。

2. 寄存器映射与位域

2.1 USB PHY 寄存器映射

偏移 成员 名称 当前 HAL/LL 使用情况
0x000-0x02C reserved_0[12] 保留 不得访问。
0x030 tx_pre_emphasis TX pre-emphasis 仅定义和 dump。
0x034-0x03C reserved_1[3] 保留 不得访问。
0x040 tx_hs_pre_emphasis HS TX pre-emphasis 仅定义和 dump。
0x044 rx_clock_phase RX clock phase 仅定义和 dump。
0x048 tx_clock_phase TX clock phase 仅定义和 dump。
0x04C-0x05C reserved_2[5] 保留 不得访问。
0x060 disconnect_trigger 断开阈值低位 定义和 dump;无专用 LL。
0x064 rx_squelch_trigger RX squelch 阈值 ll_usb_phy_*_rx_squelch_trigger()
0x068 disconnect_trigger_ext 断开阈值扩展位 定义和 dump;无专用 LL。
0x06C reserved_3[1] 保留 不得访问。
0x070 phy_detect Legacy detect ll_usb_phy_clear_legacy_detect_config()
0x074 reserved_4[1] 保留 不得访问。
0x078 otg_session OTG session / IO high-Z ll_usb_phy_*_io_high_z()
0x07C-0x09C reserved_5[9] 保留 不得访问。
0x0A0 bg_control Bandgap 仅定义和 dump。
0x0A4-0x0FC reserved_6[23] 保留 不得访问。
0x100 pll_control0 PLL control 0 ll_usb_phy_*_legacy_receiver_driver()
0x104 pll_control1 PLL/BC detect control 1 ll_usb_phy_write_bc_detect_control()
0x108 vbus_control VBUS detect ll_usb_phy_*_vbus_detect_power_down()
0x10C session_valid_control A/B session valid、BC 状态 BC primary/secondary LL 读取
0x110 vbus_valid_control VBUS valid、BC 状态 BC data contact LL 读取
0x114 clock_enable PHY clock enable 仅定义和 dump。
0x118 reserved_7[1] 保留 不得访问。
0x11C hs_odt_fsls_strength HS ODT / FS-LS drive 仅定义和 dump。
0x120 squelch_slew_tuning Squelch / slew tuning 仅定义和 dump。
0x124 hs_eye_height HS eye height 仅定义和 dump。
0x128-0x1BC reserved_8[38] 保留 不得访问。
0x1C0 dpdm_pulldown_control DP/DM pull-down ll_usb_phy_*_dpdm_pulldown()
0x1C4 pll_wave_filter PLL wave filter 仅定义和 dump。
0x1C8 reserved_9[1] 保留 不得访问。
0x1CC sof_disconnect_control SOF disconnect counter 仅定义和 dump。

2.2 相关 CPM 寄存器

偏移 寄存器 与 USB PHY 相关字段
0x024 OPCR SPENDN0[7]、GATE_USBPHY_CLK[23]
0x03C USBPCR POR[22]
0x040 USBRDT IDDIG_REG[0]、IDDIG_EN[1]、UTMI_RST[27]
0x048 USBPCR1 DMPD_EN[28]、DPPD_EN[29]

USB PHY 常用 CPM 位操作:

宏 位 语义
OPCR_SPENDN0_BIT 7 0 强制 suspend,1 释放。
OPCR_GATE_USBPHY_CLK_BIT 23 0 ungated 24 MHz refclk,1 gate。
USBPCR_POR_BIT 22 1 assert PHY POR。
USBRDT_UTMI_RST_BIT 27 0 assert UTMI reset,1 release。
USBRDT_IDDIG_EN_BIT 1 1 使用 software IDDIG override。
USBRDT_IDDIG_REG_BIT 0 override 值:0 mini-A,1 mini-B。
USBPCR1_DMPD_EN_BIT 28 允许控制器控制 D- pull-down。
USBPCR1_DPPD_EN_BIT 29 允许控制器控制 D+ pull-down。

2.3 通用宏

宏 说明 约束
USB_PHY PHY 寄存器基地址指针。 固定 USB_PHY_IOBASE=0x10012000。
USB_PHY_REG_OFFSET(member) 获取寄存器成员字节偏移。 仅用于 usb_phy_regs_t 成员。
USB_PHY_FIELD_MASK(width, shift) 生成连续字段 mask。 width 必须为 1..31,且 width + shift <= 32。

USB_PHY_FIELD_MASK() 没有运行时保护。width >= 32 会触发未定义移位,调用方必须保证参数满足头文件约束。

2.4 TX/RX 时钟与预加重

2.4.1 TX_PRE_EMPHASIS

寄存器:0x030。

宏 值/字段 说明
USB_PHY_TX_PRE_EMPHASIS_SHIFT 0 字段最低位。
USB_PHY_TX_PRE_EMPHASIS_MASK 0x00000007 [2:0]。
USB_PHY_TX_PRE_EMPHASIS_DEFAULT 0x1 字段默认值。
USB_PHY_TX_PRE_EMPHASIS_SOF_EOP bit0 SOF/EOP 使用预加重。
USB_PHY_TX_PRE_EMPHASIS_CHIRP bit1 Chirp 使用预加重。
USB_PHY_TX_PRE_EMPHASIS_NON_CHIRP bit2 非 Chirp 使用预加重。
USB_PHY_TX_PRE_EMPHASIS_ALWAYS 0x7 所有选择位均置位。

2.4.2 TX_HS_PRE_EMPHASIS

寄存器:0x040。

宏 值/字段 说明
USB_PHY_TX_HS_PRE_EMPHASIS_STRENGTH_SHIFT 3 字段最低位。
USB_PHY_TX_HS_PRE_EMPHASIS_STRENGTH_MASK 0x00000038 [5:3]。
USB_PHY_TX_HS_PRE_EMPHASIS_STRENGTH_DEFAULT 0x1 字段默认值。
USB_PHY_TX_HS_PRE_EMPHASIS_STRENGTH_WEAKEST 0x0 最弱。
USB_PHY_TX_HS_PRE_EMPHASIS_STRENGTH_STRONGEST 0x7 最强。
USB_PHY_TX_HS_PRE_EMPHASIS_HALF_BIT 6 半 bit 配置编码。

2.4.3 RX_CLOCK_PHASE

寄存器:0x044。

宏 值/字段 说明
USB_PHY_RX_CLOCK_PHASE_SHIFT 5 字段最低位。
USB_PHY_RX_CLOCK_PHASE_MASK 0x000000E0 [7:5]。
USB_PHY_RX_CLOCK_PHASE_DEFAULT 0x0 字段默认值。
USB_PHY_RX_CLOCK_PHASE_EARLIEST 0x0 最早相位。
USB_PHY_RX_CLOCK_PHASE_LATEST 0x7 最晚相位。

2.4.4 TX_CLOCK_PHASE

寄存器:0x048。

宏 值/字段 说明
USB_PHY_TX_CLOCK_PHASE_SHIFT 0 字段最低位。
USB_PHY_TX_CLOCK_PHASE_MASK 0x00000007 [2:0]。
USB_PHY_TX_CLOCK_PHASE_DEFAULT 0x6 字段默认值。
USB_PHY_TX_CLOCK_PHASE_EARLIEST 0x0 最早相位。
USB_PHY_TX_CLOCK_PHASE_LATEST 0x7 最晚相位。

2.5 断开与 squelch 阈值

2.5.1 DISCONNECT_TRIGGER 复合字段

四 bit 阈值分散在三个寄存器:

{ 0x064[7], 0x068[0], 0x060[1:0] }
宏 值/字段 说明
USB_PHY_DISCONNECT_TRIGGER_60_SHIFT 0 0x060 低 2 bit 字段起点。
USB_PHY_DISCONNECT_TRIGGER_60_MASK 0x00000003 仅 0x060[1:0]。
USB_PHY_DISCONNECT_TRIGGER_64_BIT 7 0x064[7],复合阈值最高位。
USB_PHY_DISCONNECT_TRIGGER_68_BIT 0 0x068[0],复合阈值 bit2。
USB_PHY_DISCONNECT_TRIGGER_SHIFT 0 别名。
USB_PHY_DISCONNECT_TRIGGER_MASK 0x00000003 别名,只覆盖 0x060[1:0]。
USB_PHY_DISCONNECT_TRIGGER_DEFAULT 0x5 默认复合阈值编码。

当前没有单个 LL 函数自动完成三处寄存器的组合写入。USB_PHY_DISCONNECT_TRIGGER_MASK 不是完整四 bit 复合字段 mask。

阈值编码:

值 宏 标称阈值
0x0 USB_PHY_DISCONNECT_TRIGGER_625MV 625 mV
0x1 USB_PHY_DISCONNECT_TRIGGER_675MV 675 mV
0x2 USB_PHY_DISCONNECT_TRIGGER_612_5MV 612.5 mV
0x3 USB_PHY_DISCONNECT_TRIGGER_575MV_LOW 575 mV(低档)
0x4 USB_PHY_DISCONNECT_TRIGGER_550MV_LOW 550 mV(低档)
0x5 USB_PHY_DISCONNECT_TRIGGER_600MV_DEFAULT 600 mV(默认)
0x6 USB_PHY_DISCONNECT_TRIGGER_537_5MV 537.5 mV
0x7 USB_PHY_DISCONNECT_TRIGGER_500MV 500 mV
0x8 USB_PHY_DISCONNECT_TRIGGER_600MV_HIGH 600 mV(高档)
0x9 USB_PHY_DISCONNECT_TRIGGER_650MV 650 mV
0xA USB_PHY_DISCONNECT_TRIGGER_587_5MV 587.5 mV
0xB USB_PHY_DISCONNECT_TRIGGER_550MV_HIGH 550 mV(高档)
0xC USB_PHY_DISCONNECT_TRIGGER_575MV_HIGH 575 mV(高档)
0xD USB_PHY_DISCONNECT_TRIGGER_625MV_HIGH 625 mV(高档)
0xE USB_PHY_DISCONNECT_TRIGGER_562_5MV 562.5 mV
0xF USB_PHY_DISCONNECT_TRIGGER_525MV 525 mV

2.5.2 RX_SQUELCH_TRIGGER

寄存器:0x064,字段 [6:3]。

宏 值/字段 说明
USB_PHY_RX_SQUELCH_TRIGGER_SHIFT 3 字段起点。
USB_PHY_RX_SQUELCH_TRIGGER_MASK 0x00000078 [6:3]。
USB_PHY_RX_SQUELCH_TRIGGER_DEFAULT 0xC 字段默认值。
值 宏 标称阈值
0x0 USB_PHY_RX_SQUELCH_TRIGGER_112_5MV 112.5 mV
0x1 USB_PHY_RX_SQUELCH_TRIGGER_150MV_LOW 150 mV(低档)
0x2 USB_PHY_RX_SQUELCH_TRIGGER_87_5MV 87.5 mV
0x3 USB_PHY_RX_SQUELCH_TRIGGER_162_5MV_LOW 162.5 mV(低档)
0x4 USB_PHY_RX_SQUELCH_TRIGGER_100MV_LOW 100 mV(低档)
0x5 USB_PHY_RX_SQUELCH_TRIGGER_137_5MV 137.5 mV
0x6 USB_PHY_RX_SQUELCH_TRIGGER_75MV 75 mV
0x7 USB_PHY_RX_SQUELCH_TRIGGER_150MV_MID 150 mV(中档)
0x8 USB_PHY_RX_SQUELCH_TRIGGER_125MV 125 mV
0x9 USB_PHY_RX_SQUELCH_TRIGGER_162_5MV_HIGH 162.5 mV(高档)
0xA USB_PHY_RX_SQUELCH_TRIGGER_100MV_HIGH 100 mV(高档)
0xB USB_PHY_RX_SQUELCH_TRIGGER_175MV 175 mV
0xC USB_PHY_RX_SQUELCH_TRIGGER_150MV 150 mV
0xD USB_PHY_RX_SQUELCH_TRIGGER_187_5MV 187.5 mV
0xE USB_PHY_RX_SQUELCH_TRIGGER_125MV_HIGH 125 mV(高档)
0xF USB_PHY_RX_SQUELCH_TRIGGER_200MV 200 mV

HAL 初始化固定选择 USB_PHY_RX_SQUELCH_TRIGGER_125MV,即字段值 0x8;该值不是头文件中的字段默认值 0xC。

2.6 PHY、OTG、Bandgap 与 PLL

2.6.1 PHY_DETECT / OTG_SESSION

宏 位 说明
USB_PHY_PHY_DETECT_LEGACY_CONFIG_BIT 0x070[3] Legacy detect 配置位。
USB_PHY_OTG_SESSION_IO_HIGH_Z_BIT 0x078[5] USB IO 高阻控制。

2.6.2 BG_CONTROL

宏 值/字段 说明
USB_PHY_BG_OUTPUT_REFERENCE_SHIFT 2 字段起点。
USB_PHY_BG_OUTPUT_REFERENCE_MASK 0x0000000C [3:2]。
USB_PHY_BG_OUTPUT_REFERENCE_DEFAULT 0x0 字段默认值。
USB_PHY_BG_CONTROL_DEFAULT 0xF0 寄存器默认值。

2.6.3 PLL_CONTROL0

寄存器:0x100。

宏 位/值 说明
USB_PHY_PLL_FEEDBACK_DIVIDER_OPTION_BIT bit5 PLL feedback divider 选项。
USB_PHY_PLL_LEGACY_RECEIVER_DRIVER_BIT bit6 Legacy receiver driver 使能。
USB_PHY_PLL_CONTROL0_DEFAULT 0x40 寄存器默认值,即 bit6 置位。

2.6.4 PLL_CONTROL1 与 BC detect

寄存器:0x104。

宏 值/字段 说明
USB_PHY_PLL_BANDWIDTH_OPTION_BIT bit0 PLL bandwidth 选项。
USB_PHY_PLL_BANDWIDTH_OPTION_DEFAULT 0 默认编码。
USB_PHY_PLL_BANDWIDTH_OPTION_INCREASE 1 增大带宽编码。
USB_PHY_PLL_CONTROL1_DEFAULT 0x00 寄存器默认值。
USB_PHY_BC_DETECT_CONTROL_IDLE 0x00 BC 检测空闲。
USB_PHY_BC_DETECT_CONTROL_DATA_CONTACT 0x60 Data contact 阶段。
USB_PHY_BC_DETECT_CONTROL_PRIMARY 0x90 Primary 阶段。
USB_PHY_BC_DETECT_CONTROL_SECONDARY 0x0C Secondary 阶段。

BC detect 值与 PLL_BANDWIDTH_OPTION_BIT 共用同一寄存器。当前 LL 接口用全寄存器写设置 BC 阶段,因此调用者必须使用完整的阶段值,不能仅按普通 bitfield 理解。

2.7 VBUS/session/clock 控制

2.7.1 VBUS_CONTROL

寄存器:0x108,默认 0x00。

宏 位 说明
USB_PHY_VBUS_CONTROL_FORCE_VALID_BIT 2 强制 VBUS valid。
USB_PHY_VBUS_CONTROL_DETECT_POWERDOWN_BIT 3 VBUS detect 掉电。
USB_PHY_VBUS_CONTROL_BYPASS_CHIRP_SQUELCH_BIT 4 绕过 chirp squelch。
USB_PHY_VBUS_CONTROL_DEFAULT - 寄存器默认 0x00。

2.7.2 SESSION_VALID_CONTROL

寄存器:0x10C,默认 0x00。

宏 值/字段 说明
USB_PHY_A_SESSION_VALID_TUNING_SHIFT 0 A-session valid 调优字段起点。
USB_PHY_A_SESSION_VALID_TUNING_MASK 0x00000007 [2:0]。
USB_PHY_A_SESSION_VALID_TUNING_DEFAULT 0x0 字段默认值。
USB_PHY_B_SESSION_VALID_TUNING_SHIFT 3 B-session valid 调优字段起点。
USB_PHY_B_SESSION_VALID_TUNING_MASK 0x00000038 [5:3]。
USB_PHY_B_SESSION_VALID_TUNING_DEFAULT 0x0 字段默认值。
USB_PHY_FORCE_A_SESSION_VALID_BIT 6 强制 A-session valid。
USB_PHY_FORCE_B_SESSION_VALID_BIT 7 强制 B-session valid。
USB_PHY_BC_DETECT_PRIMARY_STATUS_BIT 1 BC Primary 结果。
USB_PHY_BC_DETECT_SECONDARY_STATUS_BIT 0 BC Secondary 结果。
USB_PHY_SESSION_VALID_CONTROL_DEFAULT 0x00 寄存器默认值。

BC Primary/Secondary 状态与 A-session valid 调优字段复用 [1:0]。只在 BC detect 阶段和对应控制值下解释为状态。

2.7.3 VBUS_VALID_CONTROL

寄存器:0x110,默认 0x00。

宏 值/字段 说明
USB_PHY_SESSION_END_TUNING_SHIFT 0 Session end 调优字段起点。
USB_PHY_SESSION_END_TUNING_MASK 0x00000007 [2:0]。
USB_PHY_SESSION_END_TUNING_DEFAULT 0x0 字段默认值。
USB_PHY_VBUS_VALID_TUNING_SHIFT 3 VBUS valid 调优字段起点。
USB_PHY_VBUS_VALID_TUNING_MASK 0x00000038 [5:3]。
USB_PHY_VBUS_VALID_TUNING_DEFAULT 0x0 字段默认值。
USB_PHY_FORCE_SESSION_END_BIT 6 强制 session end。
USB_PHY_BC_DETECT_DATA_CONTACT_STATUS_BIT 5 BC data contact 状态。
USB_PHY_VBUS_VALID_CONTROL_DEFAULT 0x00 寄存器默认值。

2.7.4 CLOCK_ENABLE

宏 位/值 说明
USB_PHY_CLOCK_ENABLE_BIT bit0 PHY clock enable。
USB_PHY_CLOCK_ENABLE_DEFAULT 0x0 寄存器默认值。

当前 HAL/LL 没有专门操作该寄存器的接口。

2.8 模拟调优寄存器

2.8.1 HS_ODT_FSLS_STRENGTH

寄存器:0x11C。

宏 值/字段 说明
USB_PHY_HS_ODT_FSLS_STRENGTH_SHIFT 0 驱动强度字段起点。
USB_PHY_HS_ODT_FSLS_STRENGTH_MASK 0x0000001F [4:0]。
USB_PHY_HS_ODT_FSLS_STRENGTH_DEFAULT 0x15 字段默认值。
USB_PHY_HS_ODT_FSLS_STRENGTH_FASTEST 0x1F 最快/最强。
USB_PHY_HS_ODT_FSLS_STRENGTH_SLOWEST 0x10 最慢/最弱。
USB_PHY_DISCONNECT_DETECTOR_BIAS_SHIFT 5 断开检测 bias 字段起点。
USB_PHY_DISCONNECT_DETECTOR_BIAS_MASK 0x00000060 [6:5]。
USB_PHY_DISCONNECT_DETECTOR_BIAS_DEFAULT 0x1 字段默认值。
USB_PHY_HS_RECEIVER_BIAS_BIT 7 HS receiver bias。
USB_PHY_HS_RECEIVER_BIAS_DEFAULT 1 bit 默认值。
USB_PHY_HS_ODT_FSLS_STRENGTH_REG_DEFAULT 0xB5 寄存器默认值。

2.8.2 SQUELCH_SLEW_TUNING

寄存器:0x120。

宏 值/字段 说明
USB_PHY_SQUELCH_DETECTOR_BIAS_SHIFT 1 Squelch bias 字段起点。
USB_PHY_SQUELCH_DETECTOR_BIAS_MASK 0x00000006 [2:1]。
USB_PHY_SQUELCH_DETECTOR_BIAS_DEFAULT 0x1 字段默认值。
USB_PHY_HS_DRIVER_SLEW_RATE_SHIFT 3 HS slew rate 字段起点。
USB_PHY_HS_DRIVER_SLEW_RATE_MASK 0x00000038 [5:3]。
USB_PHY_HS_DRIVER_SLEW_RATE_DEFAULT 0x2 字段默认值。
USB_PHY_SQUELCH_SLEW_TUNING_DEFAULT 0x52 寄存器默认值。

2.8.3 HS_EYE_HEIGHT

寄存器:0x124,字段 [4:2]。

宏 值/字段 说明
USB_PHY_HS_EYE_HEIGHT_SHIFT 2 字段起点。
USB_PHY_HS_EYE_HEIGHT_MASK 0x0000001C [4:2]。
USB_PHY_HS_EYE_HEIGHT_DEFAULT 0x0 字段默认值。
值 宏 标称 eye height
0x0 USB_PHY_HS_EYE_HEIGHT_400MV 400 mV
0x1 USB_PHY_HS_EYE_HEIGHT_475MV 475 mV
0x2 USB_PHY_HS_EYE_HEIGHT_350MV 350 mV
0x3 USB_PHY_HS_EYE_HEIGHT_500MV 500 mV
0x4 USB_PHY_HS_EYE_HEIGHT_412_5MV 412.5 mV
0x5 USB_PHY_HS_EYE_HEIGHT_425MV 425 mV
0x6 USB_PHY_HS_EYE_HEIGHT_437_5MV 437.5 mV
0x7 USB_PHY_HS_EYE_HEIGHT_450MV 450 mV

2.8.4 DPDM_PULLDOWN_CONTROL

寄存器:0x1C0。

宏 值/字段 说明
USB_PHY_DPDM_PULLDOWN_DISABLE_BIT bit7 1 禁用 DP/DM pull-down。
USB_PHY_DPDM_PULLDOWN_CONTROL_DEFAULT 0xDB 寄存器默认值。

2.8.5 PLL_WAVE_FILTER

寄存器:0x1C4。

宏 值/字段 说明
USB_PHY_PLL_WAVE_FILTER_SHIFT 0 字段起点。
USB_PHY_PLL_WAVE_FILTER_MASK 0x0000003F [5:0]。
USB_PHY_PLL_WAVE_FILTER_DEFAULT 0x0C 字段默认值。

2.8.6 SOF_DISCONNECT_CONTROL

寄存器:0x1CC。

宏 值/字段 说明
USB_PHY_SOF_DISCONNECT_COUNT_SHIFT 0 计数字段起点。
USB_PHY_SOF_DISCONNECT_COUNT_MASK 0x0000007F [6:0]。
USB_PHY_SOF_DISCONNECT_COUNT_DEFAULT 0x08 计数默认值。
USB_PHY_SOF_DISCONNECT_CONTINUOUS_DISABLE_BIT bit7 连续断开检测禁用。
USB_PHY_SOF_DISCONNECT_CONTROL_DEFAULT 0x88 寄存器默认值,bit7 默认置位。