找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

M487JIDAE设计了一个电路板,但是跑USB例程识别USB失败

[复制链接]
跳转到指定楼层
楼主
匿名  发表于 2023-3-31 21:46:53 |只看大图 回帖奖励 |倒序浏览 |阅读模式
由于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, 下载次数: 430

M487JIDAE电路图

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具

沙发
匿名  发表于 2023-3-31 21:59:54
对了,这个电路原理图中的R7和C10,是悬空没有接任何东西的。

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

原理图中USB部分

原理图中USB部分
回复 支持 反对

使用道具

板凳
silitex 发表于 2023-3-31 22:02:51 | 只看该作者
额,上面描述有点出错:这个电路原理图中的R7和C10是没有贴元件的,相当于HSUSB_ID处于悬空状态。
回复 支持 反对

使用道具 举报

地板
admin 发表于 2023-4-3 10:24:42 | 只看该作者
从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坏了,可以换一颗芯片再试试。
牛卧堂
回复 支持 反对

使用道具 举报

5#
silitex 发表于 2023-4-3 15:12:14 | 只看该作者
非常感谢!根据您的思路找到问题了,这个M487JIDAE IC需要外部输入一个稳定的3.3V电源,用来给USB PHY使用。以前使用的另外一个IC NUC123SD4AN0自带3.3V稳压。所以设计的时候没有考虑到3.3V的稳压输入问题。
总算解决问题了,谢谢!
回复 支持 反对

使用道具 举报

6#
匿名  发表于 2023-4-6 11:05:59
测试用测试用测试用测试用
回复 支持 反对

使用道具

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU