djsnake
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2003-07-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1514回复:11

有没有南京的朋友,来南理工帮我调调程序(关于PDIUSBD12的枚举)),小弟不胜感激!!!

楼主#
更多 发布于:2003-07-08 21:37
有没有南京的朋友,来南理工帮我调调程序(关于PDIUSBD12的枚举),小弟不胜感激!!!

[编辑 -  7/8/03 by  djsnake]
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-09 10:56
搜一下,这里有很多很多关于枚举的贴子
我就是从那里一步步走到成功的
不懂得就贴出现象来,我们帮你分析。
djsnake
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2003-07-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-09 15:14
在我的硬件中,D12的A0通过10K电阻接地,RESET_N通过10K电阻接VCC,用示波器观测数据线上也有波形,但是主机还是发现不了未知设备,而且晶振输出端CLKOUT的输出值为48M,好像函数void reconnect_USB(void)根本没有执行,弄得我这几天很是郁闷!!!!相关函数如下:
void reconnect_USB(void)
{
      unsigned long clk_cnt;

           D12SUSPD = 0;

disconnect_USB();

        //for( clk_cnt=0;clk_cnt<100000;clk_cnt++);
         if(clk_cnt<15000)
           {
            clk_cnt++;      
           }  
      
        connect_USB();

}
void connect_USB(void)
{
// reset event flags

DISABLE;
bEPPflags.value = 0;
           ENABLE;      

 D12_SetMode(D12_NOLAZYCLOCK | D12_SOFTCONNECT,D12_SETTOONE | D12_CLOCK_12M );

}
void disconnect_USB(void)
{
// Initialize D12 configuration
         D12_SetMode(D12_NOLAZYCLOCK, D12_SETTOONE | D12_CLOCK_12M);
}
void D12_SetMode(unsigned char bConfig ,unsigned char bClkDiv)
{
     if(bEPPflags.bits.in_isr==0)

       {
           DISABLE;
       }

 outportb(D12_COMMAND,0xF3);   //set mode command

 outportb(D12_DATA,bConfig);  //INCLUDE CONFIGRATION BITS

 outportb(D12_DATA,bClkDiv);  //INCLUDE THE CLOCK DIVISIONG FACTOR TYPE

  if(bEPPflags.bits.in_isr==0)
      
          ENABLE;

}
void outportb(unsigned char port,unsigned char val)
{
     unsigned char xdata *ext_address;
          
ext_address=0xff00+port;
 
*ext_address=val;

}
luckyjm
驱动中牛
驱动中牛
  • 注册日期2002-12-19
  • 最后登录2004-03-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-09 15:23
兄弟,你的程序根本就没改啊,怎么可能输出是12M呢?需要在outportb(D12_COMMAND,0xF3); //set mode command 下面加上设置成12M的语句的。你再试试吧,应该没问题了。
djsnake
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2003-07-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-09 16:35
void D12_SetMode(unsigned char bConfig ,unsigned char bClkDiv)仅仅是一个供调用的函数而已,真正设置softconnect和12M是在connect()和disconnect()函数中,在这两个函数中我已经设置了。
luckyjm
驱动中牛
驱动中牛
  • 注册日期2002-12-19
  • 最后登录2004-03-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-09 16:39
sorry,看的时候马虎了,会不会是硬件上的问题啊,比如上拉和下拉电阻。
duanjong
驱动中牛
驱动中牛
  • 注册日期2003-03-10
  • 最后登录2006-01-18
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-07-09 17:16
谢谢,我再查查吧
luckyjm
驱动中牛
驱动中牛
  • 注册日期2002-12-19
  • 最后登录2004-03-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-07-10 08:39
看看HCT123用的是不是有问题吧。
djsnake
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2003-07-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-07-10 09:34
我还没有用到74HC123
luckyjm
驱动中牛
驱动中牛
  • 注册日期2002-12-19
  • 最后登录2004-03-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-07-10 09:43
我建议你把HCT123加上再试试,估计是你现在的时序有问题.
djsnake
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2003-07-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-07-10 10:37
我现在可以发现未知设备,晶振输出也是正确的,但还是枚举不成功
luckyjm
驱动中牛
驱动中牛
  • 注册日期2002-12-19
  • 最后登录2004-03-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-07-10 10:41
你的HCT123是按照D12板子的连接的吗?
游客

返回顶部