打印
[AVR单片机]

程序使用外接16MHz的晶振时,程序接收不到host主机发送的SETUP包

[复制链接]
1204|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
elimbug|  楼主 | 2015-10-12 14:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用的是AT90usb286的AVR单片机做一个U盘,AT90USB1286有内部自带8MHz的晶振和外接16MHz的晶振,当我在熔丝位中设置使用内部8MHz的时钟时,程序我正常运行。但是当在熔丝位中设置使用外接16MHz的晶振时 ,程序不能实现正常的功能,枚举失败,原因是:在进行USB枚举过程中时,当PC机发送SETUP包给USB设备时,芯片如果接收到SETUP包,则UEIENX寄存器的RXSTPE位,即接收SETUP包中断使能位会被硬件置1,从而产生中断,进入相应的中断处理程序。我现在的情况是没有进入中断处理程序,查询RXSTPE位,也没有被硬件置1。请问各位大神,这是什么原因呢?

相关帖子

沙发
SD10A| | 2015-10-12 19:10 | 只看该作者
大师:这个问题俺搞不懂,
  芯片如果接收到SETUP包,则UEIENX寄存器的RXSTPE位,即接收SETUP包中断使能位会被硬件置1  这个信息你从哪个设备用什么方法看出来的呢?

使用特权

评论回复
板凳
elimbug|  楼主 | 2016-2-25 11:37 | 只看该作者
我找到原因了。在熔丝位中设置使用外接16MHz的晶振时,我没有设置时钟分频器,PLL锁相环电路的时钟不对,输入时钟不是2MHz,因此,芯片的PLL电路不工作。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

1

粉丝