登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

我调试K9F5608碰到的问题

作者:ziranren 栏目:嵌入式系统
我调试K9F5608碰到的问题
    最近做了一个项目中有用到K9F5608,碰到了一些问题,发出来请教一下。
    在主函数中写一个读ID控制函数,但是读取的值都是00,不知道为何,我焊了个3.3VCPU的板子,读出来的仍然是00,有做过的大侠指点一下。
    先谢过了

硬件连接:
   M    P00---D0
   C    --------
   U    P07---D7

    P20---ALE   F
       P21---CLE   L
    P25---CS    A
    P36---WE    S
    P37---RE    H

电平比较
    MCU(AT89S52)            FLASH
Vih    0.2vcc+0.9(min)        Voh    2.4(min)    FLASH输出高电平最小值大于单片机输入高电平最小值(满足)
Vil    0.2vcc-0.1(max)        Vol    0.4(max)    FLASH输出低电平最大值小于单片机输入低电平最大值(满足)
Voh    2.4(min)        Vih    2.0(min)    单片机输出高电平最小值大于FLASH输入高电平最小值(满足)
Vol    0.45(max)        Vil    0.8(max)    单片机输出低电平最大值小于FLASH输入低电平最大值(满足)
从电平兼容上考虑,满足电平兼容要求(系统还有其他5V外设),操作函数如下。

//FALSH操作函数
//**********释放FLASH控制信号线********
void RelaxF()
{
    FALE=0;
    FCLE=0;
    FCS=1;
}

//*************选中操作FLASH************
void CSFLASH()
{
    FCS=0;
}

//*************发送一个地址************
void FAddress(uchar Add)
{
    FALE=1;        
    FWE=0;
    P0=Add;        //送出地址
    FWE=1;        //锁存地址
    FALE=0;    
}

//*************发送一个命令************
void FCommand(uchar Com)
{
    FCLE=1;
    FWE=0;
    P0=Com;        //送出命令
    FWE=1;        //锁存命令
    FCLE=0;
}

//*************发送一个数据************
void FData(uchar Data)
{
    FWE=0;
    P0=Data;    //送出数据
    FWE=0;        //锁存数据
}

//*************读取一个数据************
uchar FGetData()
{
    uchar i;
    FRE=0;
    _nop_();
    i=P0;
    FRE=1;
    return(i);
}

//***************读FLASHID*************
uchar ReadID()
{
    uchar    id;
    CSFLASH();
    FCommand(READID);
    FAddress(READ0);
    id=FGetData();
    id=FGetData();
    RelaxF();
    return(id);
}

void main (void)
{
    uchar    i;
    i=0;
        
    Initial();
    InitialTimer();            //初始化定时器
    TR0=1;
    
    InitialUart(3);            //初始化串口
    UartRXCon(false);        //接收禁止
    
    while(1)
    {
        i=ReadID();
        TR1=1;
        SBUF=i;
        while(TI==0);
        TI=0;
        TR1=0;
                
    }
}

2楼: >>参与讨论
whereis
.
拿51的通用io口,模拟nandflash读写时序,可行吗??
偶有些怀疑,其可行性。

找了个帖子,http://blog.21ic.com/more.asp?NAME=gfs0521&id=13310
也许你的cpu不够快吧。


* - 本贴最后修改时间:2006-7-1 12:15:50 修改者:whereis

3楼: >>参与讨论
ziranren
应该是可以的
    只要接口电平能够实现兼容就不会有问题,你说的速度问题应该是不存在的,因为一般在时序上只要求关注最快速度,而不关心最慢速度,一般要求信号时间大于,而不要求小于。
    谢谢你帮我找的帖子。有结果了我会发出来的。

参与讨论
昵称:
讨论内容:
 
 
相关帖子
请教SRAM问题
flash不能编程的问题求救!
WinCE3.0、WinCE.net和Pocket PC 2002有什么不同(ZT)?
本公司推出mpc8250开发板及技术方案
给大家发个MMC卡驱动,我测试过的!
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号