牛卧堂MCU技术交流

标题: M487JIDAE设计了一个电路板,但是跑USB例程识别USB失败 [打印本页]

作者: 匿名    时间: 2023-3-31 21:46
标题: M487JIDAE设计了一个电路板,但是跑USB例程识别USB失败
由于3月初刚刚接触M487JIDAE这个MCU,目前根据开发板的电路图,重新设计了一个当作普通HID设备使用的电路图,见附件的zip文档。
目前按照这个电路图设计出来了PCB板,PCB板烧录了HID例程(HSUSBD_HID_MouseKeyboard)成功,但是插到电脑的USB接口上无法识别USB设备,连感叹号都识别不了。(但是同样的HID例程,烧录到M487JIDAE这个开发板上是可以正常识别USB设备的),目前调试了程序,发现最后卡死在这个USB初始化函数出不来:
  1. void HSUSBD_Open(S_HSUSBD_INFO_T *param, HSUSBD_CLASS_REQ pfnClassReq, HSUSBD_SET_INTERFACE_REQ pfnSetInterface)
  2. {
  3.     g_hsusbd_sInfo = param;
  4.     g_hsusbd_pfnClassRequest = pfnClassReq;
  5.     g_hsusbd_pfnSetInterface = pfnSetInterface;

  6.     /* get EP0 maximum packet size */
  7.     g_hsusbd_CtrlMaxPktSize = g_hsusbd_sInfo->gu8DevDesc[7];

  8.     /* Initial USB engine */
  9.     HSUSBD_ENABLE_PHY();

  10.     /* wait PHY clock ready */
  11.     while (1)
  12.     {
  13.         HSUSBD->EP[EPA].EPMPS = 0x20ul;
  14.         if (HSUSBD->EP[EPA].EPMPS == 0x20ul)
  15.         {
  16.             HSUSBD->EP[EPA].EPMPS = 0x0ul;
  17.             break;
  18.         }
  19.     }
  20.     HSUSBD->OPER &= ~HSUSBD_OPER_HISPDEN_Msk;   /* full-speed */
  21. }
复制代码
其中这里的条件if (HSUSBD->EP[EPA].EPMPS == 0x20ul)一直满足不了,无法break退出来:

我这里已经确定了电路上的12M晶振已经跑起来了(使用频谱仪测试了)。所以一直想不到思路了,请教一下大家怎么处理,谢谢!

M487JIDAE.zip

99.98 KB, 下载次数: 412

M487JIDAE电路图


作者: 匿名    时间: 2023-3-31 21:59
对了,这个电路原理图中的R7和C10,是悬空没有接任何东西的。

USB.png (52.73 KB, 下载次数: 353)

原理图中USB部分

原理图中USB部分

作者: silitex    时间: 2023-3-31 22:02
额,上面描述有点出错:这个电路原理图中的R7和C10是没有贴元件的,相当于HSUSB_ID处于悬空状态。
作者: admin    时间: 2023-4-3 10:24
从debug看来USB PHY初始化失败了。
可以从下面几点来debug:
1、 先测量晶振是否起振是对的,还需要确认晶振频率是否正确
2、 确认各个引脚之间没有短路
3、测量HUSB的电源
    HUSB_VDD33、HUSB_VDD12_CAP和HUSB_VSS没有短路
HUSB_VDD33 =3.3V
HUSB_VDD12_CAP=1.2V
4、测量D+ D-是否正常
测量D+ D-阻抗,如果阻抗没有异常可以再测一下二极管特性(正常应该0.6v左右)
5、如果上述都没有问题,PHY初始化依然失败,考虑芯片的USB PHY坏了,可以换一颗芯片再试试。
作者: silitex    时间: 2023-4-3 15:12
非常感谢!根据您的思路找到问题了,这个M487JIDAE IC需要外部输入一个稳定的3.3V电源,用来给USB PHY使用。以前使用的另外一个IC NUC123SD4AN0自带3.3V稳压。所以设计的时候没有考虑到3.3V的稳压输入问题。
总算解决问题了,谢谢!
作者: 匿名    时间: 2023-4-6 11:05
测试用测试用测试用测试用




欢迎光临 牛卧堂MCU技术交流 (http://nuvoton-mcu.com/) Powered by Discuz! X3.2