Part Number:TM4C1294KCPDT
我用的库版本TivaWare_C_Series-2.1.4.178,使用的是TM4C1294KCPDT芯片,用的kile5调试
调试例程参考的的是usb_dev_bulk和tidm_tm4c129cusbhs2ethernet
usb.c下的 void USBULPIEnable(uint32_t ui32Base) 函数是否是用于使能UPLI功能的
按照源码,它只操作了 USBPC 寄存器,但是在debug时,发现它并没有成功的使能寄存器
这个函数的使用是否需要什么前置的设置呢
在 usbdenum.c 文件下的 void USBDCDInit(uint32_t ui32Index, tDeviceInfo *psDevice, void *pvDCDCBData) 函数使用了这个函数
void USBULPIEnable(uint32_t ui32Base)
{
HWREG(ui32Base + USB_O_PC) |= USB_PC_ULPIEN;
}
Susan Yang:
user6191599 说:按照源码,它只操作了 USBPC 寄存器,但是在debug时,发现它并没有成功的使能寄存器
关于使用,您可以看一下
https://www.ti2k.com/wp-content/uploads/ti2k/DeyiSupport_OtherMCU_group__usb__ulpi.html
This function enables the USB controller's ULPI function and must be called before attempting to access an external ULPI-connected USB PHY.
是相同的使用方法
,
user6191599:
我的主要问题是通过断点观察,void USBULPIEnable(uint32_t ui32Base) 函数没有使能寄存器 USBPC ,ulpi功能没有开启
,
Susan Yang:
您可以看一下
https://www.ti.com/lit/ug/spmu297e/spmu297e.pdf
2.2.2.3 USB Device ULPI Feature
您是如何设置的呢?抱歉,对该方面的应用不是很熟悉,建议您在E2E发帖询问相关的BU
https://e2e.ti.com/support/microcontrollers/other-microcontrollers-group/other/f/other-microcontrollers-forum
,
user6191599:
找到问题了,KILE5 Debug时,USB0外设查看窗口的USBPC寄存器,不管寄存器是否使能,都是非勾选状态,
只能通过在程序中添加类似
REG_USB = HWREG(USB0_BASE + USB_O_PC);
来间接查看USBPC寄存器的值
,
Susan Yang:
谢谢您的反馈!很高兴您能解决问题