nkalan
驱动牛犊
驱动牛犊
  • 注册日期2001-08-20
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3330回复:24

是我弱还是片子有问题?

楼主#
更多 发布于:2001-09-12 14:37
我用philips的D12,这个片子的中断应该是低电平有效,那常态就应该是高电平啊,可它死活就是高不上去,上拉电阻我也接了(10k)
郁闷
jeosph
驱动中牛
驱动中牛
  • 注册日期2001-04-19
  • 最后登录2006-08-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-09-12 16:41
我不知道PHILIPS的片子是否有专用的输入/输出积存器,如果没有,你试着在程序里对管脚置高,这个问题在MCS51里有时回遇到。
否则你换个片子看看吧!
nkalan
驱动牛犊
驱动牛犊
  • 注册日期2001-08-20
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-09-12 17:30
这个片子根本没有寄存器:(
现在我还不能对它发命令
不是不能,是我发了它没反应
时序没有问题
电路是我按照philips提供的典型电路连的
所以我怀疑是中断的问题
郁闷++
Cuter
驱动牛犊
驱动牛犊
  • 注册日期2001-08-24
  • 最后登录2003-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-09-12 19:17
会不会是跟中断引脚相连的芯片把它拉低的?把引脚翘起来再量一下!
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-09-13 09:04
D12经常会犯病:一上电的时候,INT老是会自动置为低电平。你需要把所有的interrupt寄存器都读一下,就可以让它变高了。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
DK-boy
驱动中牛
驱动中牛
  • 注册日期2001-07-22
  • 最后登录2005-09-21
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-09-15 17:09
要相信科学!
-------------------------
不是吗,发生任何事情都是有原因的???
喜欢清静?享受人生
XR_WDM
驱动小牛
驱动小牛
  • 注册日期2002-06-28
  • 最后登录2013-03-01
  • 粉丝1
  • 关注0
  • 积分15分
  • 威望67点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-11-01 14:56
这个问题我现在也遇到了,可是上拉电阻我也接了,寄存器我也都读过,可是我读的值都是写入的命令值呀!例如:0xf4,0xf0..等等!

各位老大,是不是我的片选地址有问题?
我使用的是SUNSAMG4510B 和d12 连接,外部供电!
这个问题困扰我一个星期了!急死偶了!
还请各位老大多多执教!
后进而勃发
cahwlx1982
驱动小牛
驱动小牛
  • 注册日期2004-08-16
  • 最后登录2006-06-17
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-11-01 16:45
呵呵……
我也用遇过这个问题的!也郁闷了很久的,也试过很多的方法的,后来才知道其实很简单的哦!
 只要在初始化后调用一下中断函数,就可以使他变成高电平了!几乎很多人都遇过这个问题的,都是用这样的方法解决的!不信的话,你自己试一下就知道拉!
XR_WDM
驱动小牛
驱动小牛
  • 注册日期2002-06-28
  • 最后登录2013-03-01
  • 粉丝1
  • 关注0
  • 积分15分
  • 威望67点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-11-02 16:36
现在的问题是,我向D12当中发0xF4命令,他返回的还是0xF4,从这点上看应该是CS地址不正确造成的吧?
后进而勃发
yewuya
驱动牛犊
驱动牛犊
  • 注册日期2004-09-09
  • 最后登录2007-01-24
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-11-05 10:22
楼上的大吓,我现在的问题和你的一样,你解决了吗?能交流一下吗,我的QQ是394725250。
egrias
驱动牛犊
驱动牛犊
  • 注册日期2004-06-23
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-11-05 13:25
检查一下硬件电路。
===========================================================
测试硬件的方法有三种,
     一种是通过0xFD命令读取特征字,连续的两个字节(我的是
     0x1210,不管系统在什么状态下,不管是不是处于中断状态
     下,都可以读取)。
     第二种是通过设置CLKOUT的输出频率,通过示波器来观察
     CLKOUT端的输出波形,是不是和自己设定的一致。
     第三种是通过V3.3脚的电压,如果此脚输出是3.3V则电路没问
     题。
===========================================================
yewuya
驱动牛犊
驱动牛犊
  • 注册日期2004-09-09
  • 最后登录2007-01-24
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-11-05 15:07
egrias 大吓,我想问一下,我的D12的VDD电压是由外部供电有3.1V左右,V3。3管脚有2。9V左右,但我读不到ID,读到的只有00。
你能告诉我你的QQ吗,我想现在就问你,谢谢了:
yewuya
驱动牛犊
驱动牛犊
  • 注册日期2004-09-09
  • 最后登录2007-01-24
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-11-05 15:10
这是硬件的问题还是我读D12时的软件程序有问题
yewuya
驱动牛犊
驱动牛犊
  • 注册日期2004-09-09
  • 最后登录2007-01-24
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-11-06 09:44
各位大虾帮看一下,下面是USB固件里的硬件提取层的两个函数是否有错?为什么每次进入unsigned char inportb( unsigned char A0)后,C口一设为输入,读到的就全部变为‘00000000’,到底是什么问题?我用的是PIC单片机和D12。

void outportb(unsigned char  A0, unsigned char data)
{
int i;
TRISC=0x00;     //C口设为输出
           RB4=0b1;      //禁止写D12
         RB2=(A0==0x01)?1:0;//A0=1,输出命令,A0=0,输出数据
           PORTC=data;   //命令字放到C口  
RB4=0b0;      //写D12使能
RB4=0b1; //禁止写D12
}

unsigned char inportb( unsigned char A0)
{
        int i;
        unsigned char  data;
        TRISC=0xff;      //C口设为输入
        RB2=(A0==0x01)?1:0;  //A0=0,是数据
        RB3=0b1;    //读D12禁止
        RB3=0b0;    //(通过C口)读D12使能
       data=PORTC; // 使data=C口上读入的值
       RB3=0b1;    //读D12禁止
       return data; //返回data
}
XR_WDM
驱动小牛
驱动小牛
  • 注册日期2002-06-28
  • 最后登录2013-03-01
  • 粉丝1
  • 关注0
  • 积分15分
  • 威望67点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-11-07 00:11
你的程序有点问题!
你再仔细看看!
后进而勃发
XR_WDM
驱动小牛
驱动小牛
  • 注册日期2002-06-28
  • 最后登录2013-03-01
  • 粉丝1
  • 关注0
  • 积分15分
  • 威望67点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-11-07 00:14
egrias!您好!
我用的是ARM50M与D12连接,除了硬件问题还有没有可能是时序的问题?
后进而勃发
yewuya
驱动牛犊
驱动牛犊
  • 注册日期2004-09-09
  • 最后登录2007-01-24
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-11-08 15:45
哪位大虾能把硬件提取层的两个函数贴出来参考一下(:inportb和outportb),不胜感激!
XR_WDM
驱动小牛
驱动小牛
  • 注册日期2002-06-28
  • 最后登录2013-03-01
  • 粉丝1
  • 关注0
  • 积分15分
  • 威望67点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-11-08 21:44
本站就有下载呀!兄弟!
znsoft的开发板!

void outportb(unsigned short nPort, unsigned char nVal)
{
#ifdef PARALLEL_BUS
// These statements are very obscure for a newbie of C51.
// A good way to understand them is reading the assembly language.
unsigned char xdata *exAddress;
exAddress = nPort;
*exAddress = nVal;
#else
P1 &= 0xf1; // Enable D12
IC_D12_A0 = nPort & 0x01 ? 1 : 0; // If the LSB of nPort is 1, the following data is a command, otherwise a data
IC_D12_WR = 0; // Write command/data to D12
P0 = nVal; // Transfer command/data to D12
IC_D12_WR = 1; // Disable writing
P1 |= 0x0e; // Disable D12
#endif

}


unsigned char inportb(unsigned short nPort)
{
unsigned char nVal;
#ifdef PARALLEL_BUS
// Pls refer to the comments above
unsigned char xdata *exAddress;
exAddress = nPort;
nVal = *exAddress;
#else
// Pls refer to the comments above.
// Only converts the write action to read.
P1 &= 0xf1; // Enable D12
IC_D12_A0 = nPort & 0x01 ? 1 : 0;
IC_D12_RD = 0;
nVal = P0;
IC_D12_RD = 1;
P1 |= 0x0e; // Disable D12
#endif

return nVal;
}
 
后进而勃发
egrias
驱动牛犊
驱动牛犊
  • 注册日期2004-06-23
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-11-09 14:31
D12我没有深入了解。当初要开发一个USB接口,我也是刚开始接触研发工作,前辈弄了一段时间没弄好,就丢了给我。我沿用了前辈留下的板子,弄了半个多月,枚举就是通不过。考虑到当初要求的速度不快,使用PL2303HX了事了。后来闲着就弄了弄D12,发现其实很简单,使用周立功提供的电路原理图就可以了,提供的源程序改改就好用。当初没搞定,可能是板子布局不好,D+、D-走线过长,总线老是被挂起导致枚举通不过。
zjf829
驱动牛犊
驱动牛犊
  • 注册日期2004-10-08
  • 最后登录2005-11-30
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-11-09 16:16
    我用1581好像也有这个问题存在,中断有一段时间然后就没有了,然后又有了。中断没有时INT脚一直为低。不知道为什么?
上一页
游客

返回顶部