在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 3305|回复: 1

ISP1161 host的问题

[复制链接]
发表于 2008-3-27 23:57:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我在Smart ARM2200上,按照ISP1161嵌入式编程指南中的步骤对ISP1161 host进行初始化,用USB_BUS ANALYZER捕捉数据,结果发现只捕捉到SOF包,枚举的包没有发送。现在我不知道是初始化的问题,还是PTD(philips Transfer descriptor)数据的问题。请知道的前辈或朋友帮忙解答一下,谢谢!
代码如下:
void initHC()
{
//检测主机控制器
if( !CheckHC())
return;

//软件重新设置主机控制器
SoftResetHC();

//配置HcHardwareConfiguration寄存器
initHcHardwareConfiguration();

//配置中断
initInterruptController();

//配置HcFmInterval寄存器
initHcFmInterval();

//配置根集线器寄存器
initHcRhDescriptorA();

//设置ITL和ATL缓冲区长度
setITL_ATL_length();


//设置主机控制器为可操作的状态
SetHC2Operate();

}
void USB_Host_Exception()
{
uint8 i;
uint32 st,ist;

st= READ_32BIT_REG(HcRhPortStatus1);
ist=READ_32BIT_REG(HcInterruptStatus);
if(st&0x0200)
device_speed=low_speed;
else
device_speed=full_speed;

if((st&0x00000001)&&(ist&0x00000040))//有device连上
{

WRITE_32BIT_REG(HcRhPortStatus1, 0x00000010);//HC通过写HcRhPortStatus1,设置端口复位
for(i=0;i<100;i++);
// port_enable();
WRITE_32BIT_REG(HcRhPortStatus1,0x00000102); //设置端口1 端口使能状态和 端口电源状态为‘1’
WRITE_32BIT_REG(HcRhPortStatus2,0x00000102); //设置端口2 端口使能状态和 端口电源状态为 ‘1’
WRITE_32BIT_REG(HcRhDescriptorA,0x00000B01); //设置下行端口数、过流检测等为‘1’
WRITE_32BIT_REG(HcRhDescriptorB,0x00000000); //设备可移除且由全局电源切换控制


//发出第一个控制建立数据包
make_control_ptd((uint16 *)c_ptd,0x01,1,0,8,0,0);//c_ptd中存放PTD头
send_control(c_ptd,rb_ptr,0x0806,0x0001,0x0000,0x0800,8);//把PTD头8个字节和获取设备描述符请求数据写到ATL缓冲区。
}

现在是能进入中断,但获取设备描述符的包却没有发送出去?
}
发表于 2008-6-6 17:54:19 | 显示全部楼层
解决了吗?能说说怎么解决的,我碰到同样的问题。qq:294940380
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-25 00:14 , Processed in 0.019256 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表