这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » PDIUSBD12,ID PDIUSBD12不能枚举,读芯片ID的问题!?

共2条 1/1 1 跳转至

,PDIUSBD12,ID PDIUSBD12不能枚举,读芯片ID的问题!?

院士
2006-09-17 18:14:16     打赏
,PDIUSBD12,ID PDIUSBD12不能枚举,读芯片ID的问题!?



关键词: PDIUSBD12     不能     枚举     芯片     问题    

院士
2006-12-22 22:43:00     打赏
2楼
PDIUSBD12不能枚举,读芯片ID的问题!?
大家好,我使用D12与PICUSB的通讯,采取自供电的方式。
上电后,检查Vout输出3.3V,CLKOUT输出4M(复位默认值)--我认为D12已经可以正常工作了。
但是D12不能枚举,读取D12的芯片ID时出现的问题很奇怪。
我先把最低层的2个函数列出如下:
void outportb(unsigned char A0,unsigned char data)
{
    TRISC=0x00;     //make the RC output,when writing    
    RB2=(A0==0x01)?1:0;  //RB1 link to D12's A0,COMMAND=1,DATA=0
    PORTC=data;     //write D12
    RB4=0b1;      
    RB4=0b0;        //link RB4 to D12's wr_n
    RB4=0b1;        //wr_n ~_~ low length=1us@4Mhz
}

unsigned char inportb(unsigned char A0)
{
    unsigned char data;
    TRISC=0xff;     //make the RC input,when reading  
    RB2=(A0==0x01)?1:0;  //RB2 link to D12's A0
    RB3=0b1;     
    RB3=0b0;        //link RB3 to D12's rd_n
    data=PORTC;        //read D12
    RB3=0b1;        //rd_n ~_~ low length=1us@4Mhz
    return data;
}
单步执行的时候,可以读出芯片ID(0x1012),全速运行时ID读错,D12枚举不成功。
我的观点总结出以下几条:
1. PIC与D12的数据接口(D0~D7,A0,WR,RD),连接上应该没有问题,不然单步不会读出正确的ID
2. 我觉得问题可能就出在底层读写的这两个函数上,可能是时序上安排不对,但是我已经根据D12手册上的时序去做的。
3. 硬件上,CS_N,SUSPEND,以及ALE都接地;EOT_N,DMACK_N和RESET_N分别通过一电阻接VCC。

希望朋友们能给在下看看,指点指点,指一条明路!万分感谢!
再下叩首。 1: d12模拟总线的我做过你的写入时序不大对

先写数据
再设置a0
然后wr 2: 我用的是mega8模拟总线可以提供demo板和全部程序

mucode#163.com

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]