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 默认置位。 |