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

是我弱还是片子有问题?

楼主#
更多 发布于:2001-09-12 14:37
我用philips的D12,这个片子的中断应该是低电平有效,那常态就应该是高电平啊,可它死活就是高不上去,上拉电阻我也接了(10k)
郁闷
XR_WDM
驱动小牛
驱动小牛
  • 注册日期2002-06-28
  • 最后登录2013-03-01
  • 粉丝1
  • 关注0
  • 积分15分
  • 威望67点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-11 10:29
非常感谢!我试试!
后进而勃发
XR_WDM
驱动小牛
驱动小牛
  • 注册日期2002-06-28
  • 最后登录2013-03-01
  • 粉丝1
  • 关注0
  • 积分15分
  • 威望67点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-11 10:28
非常感谢!
后进而勃发
liwenxin201
驱动牛犊
驱动牛犊
  • 注册日期2002-11-14
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望23点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-10 12:53
何必这么费劲,使用AN2131或CY7c68013 非常方便.开发难度教小
egrias
驱动牛犊
驱动牛犊
  • 注册日期2004-06-23
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-10 10:52
原先的板子走线较乱,后来我按照ZLG给的原理图画了块测试板,就51+d12,器件焊上就好了。与原来的板子比较,D+、D-走线短了(原来的走线将近9cm);cs接到P1口(原来的cs接在P2口,访问外部地址方式访问d12,硬件检测也是正常的);还有就是原来使用的是6clocks的单片机。原来的板子不行,给我感觉就是没有布好。我现在的工作没机会跟ARM打交道,对ARM了解不多,现在只是在看书阶段,不过地址不冲突,应该没有问题。
XR_WDM
驱动小牛
驱动小牛
  • 注册日期2002-06-28
  • 最后登录2013-03-01
  • 粉丝1
  • 关注0
  • 积分15分
  • 威望67点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-11-10 00:07
egrias!再次请教一下!
您说的D+与D-走线大概有多长?
这点会引起总线挂起,而使INT_N引脚一直为低码?

我现在将D12的CS引脚同时接到了ARM芯片的 外部I/O设备的片选上面和外部ROM的片选信号上面会不会这样有影响呢?
后进而勃发
zjf829
驱动牛犊
驱动牛犊
  • 注册日期2004-10-08
  • 最后登录2005-11-30
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-11-09 16:16
    我用1581好像也有这个问题存在,中断有一段时间然后就没有了,然后又有了。中断没有时INT脚一直为低。不知道为什么?
egrias
驱动牛犊
驱动牛犊
  • 注册日期2004-06-23
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-11-09 14:31
D12我没有深入了解。当初要开发一个USB接口,我也是刚开始接触研发工作,前辈弄了一段时间没弄好,就丢了给我。我沿用了前辈留下的板子,弄了半个多月,枚举就是通不过。考虑到当初要求的速度不快,使用PL2303HX了事了。后来闲着就弄了弄D12,发现其实很简单,使用周立功提供的电路原理图就可以了,提供的源程序改改就好用。当初没搞定,可能是板子布局不好,D+、D-走线过长,总线老是被挂起导致枚举通不过。
XR_WDM
驱动小牛
驱动小牛
  • 注册日期2002-06-28
  • 最后登录2013-03-01
  • 粉丝1
  • 关注0
  • 积分15分
  • 威望67点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
8楼#
发布于: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;
}
 
后进而勃发
yewuya
驱动牛犊
驱动牛犊
  • 注册日期2004-09-09
  • 最后登录2007-01-24
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-11-08 15:45
哪位大虾能把硬件提取层的两个函数贴出来参考一下(:inportb和outportb),不胜感激!
XR_WDM
驱动小牛
驱动小牛
  • 注册日期2002-06-28
  • 最后登录2013-03-01
  • 粉丝1
  • 关注0
  • 积分15分
  • 威望67点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-11-07 00:14
egrias!您好!
我用的是ARM50M与D12连接,除了硬件问题还有没有可能是时序的问题?
后进而勃发
XR_WDM
驱动小牛
驱动小牛
  • 注册日期2002-06-28
  • 最后登录2013-03-01
  • 粉丝1
  • 关注0
  • 积分15分
  • 威望67点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-11-07 00:11
你的程序有点问题!
你再仔细看看!
后进而勃发
yewuya
驱动牛犊
驱动牛犊
  • 注册日期2004-09-09
  • 最后登录2007-01-24
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
12楼#
发布于: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
}
yewuya
驱动牛犊
驱动牛犊
  • 注册日期2004-09-09
  • 最后登录2007-01-24
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-11-05 15:10
这是硬件的问题还是我读D12时的软件程序有问题
yewuya
驱动牛犊
驱动牛犊
  • 注册日期2004-09-09
  • 最后登录2007-01-24
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-11-05 15:07
egrias 大吓,我想问一下,我的D12的VDD电压是由外部供电有3.1V左右,V3。3管脚有2。9V左右,但我读不到ID,读到的只有00。
你能告诉我你的QQ吗,我想现在就问你,谢谢了:
egrias
驱动牛犊
驱动牛犊
  • 注册日期2004-06-23
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
15楼#
发布于: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分
16楼#
发布于:2004-11-05 10:22
楼上的大吓,我现在的问题和你的一样,你解决了吗?能交流一下吗,我的QQ是394725250。
XR_WDM
驱动小牛
驱动小牛
  • 注册日期2002-06-28
  • 最后登录2013-03-01
  • 粉丝1
  • 关注0
  • 积分15分
  • 威望67点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-11-02 16:36
现在的问题是,我向D12当中发0xF4命令,他返回的还是0xF4,从这点上看应该是CS地址不正确造成的吧?
后进而勃发
cahwlx1982
驱动小牛
驱动小牛
  • 注册日期2004-08-16
  • 最后登录2006-06-17
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-11-01 16:45
呵呵……
我也用遇过这个问题的!也郁闷了很久的,也试过很多的方法的,后来才知道其实很简单的哦!
 只要在初始化后调用一下中断函数,就可以使他变成高电平了!几乎很多人都遇过这个问题的,都是用这样的方法解决的!不信的话,你自己试一下就知道拉!
XR_WDM
驱动小牛
驱动小牛
  • 注册日期2002-06-28
  • 最后登录2013-03-01
  • 粉丝1
  • 关注0
  • 积分15分
  • 威望67点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-11-01 14:56
这个问题我现在也遇到了,可是上拉电阻我也接了,寄存器我也都读过,可是我读的值都是写入的命令值呀!例如:0xf4,0xf0..等等!

各位老大,是不是我的片选地址有问题?
我使用的是SUNSAMG4510B 和d12 连接,外部供电!
这个问题困扰我一个星期了!急死偶了!
还请各位老大多多执教!
后进而勃发
上一页
游客

返回顶部