[程序源码] 求助:手头的ds12887全部读不出数据。

[复制链接]
 楼主| bufubaoni 发表于 2014-8-30 17:02 | 显示全部楼层 |阅读模式
知道是很老的芯片了,手头只有这个芯片,由于使用的是atmega16所以没有外部并口的总线,只用模拟形式发送,但是总是读写不出数据。求教不知哪里出的问题。下面附时序图和程序。
 楼主| bufubaoni 发表于 2014-8-30 17:03 | 显示全部楼层
unsigned char DS12887_Read(unsigned char Address)
{

        unsigned char temp = 0;
        //端口初始化
        ALE_0;
        RD_0;
        WR_0;
        CS_1;
       
        CS_0;//片选
        RD_1;
        WR_1;
        ALE_1;
        DDRC = 0xff;
        PORTC = Address;
        _NOP();
        ALE_0;//地址锁存
        _NOP();
        RD_0;
        DDRC = 0x00;
        _NOP();
        temp = PINC;
       
        RD_1;
        CS_1;
        ALE_1;


        return temp;
       
}


void DS12887_Write(uchar Address, uchar Value)
{
        //初始化状态
        ALE_0;
        RD_0;
        WR_0;
        CS_1;

        CS_0;//片选
        RD_1;
        WR_1;
        ALE_1;
        DDRC = 0xff;//设置为输出
        PORTC = Address;
        _NOP();
        ALE_0;//锁存地址
        WR_0;
        PORTC = Value;
        _NOP();
        WR_1;

        CS_1;
        ALE_1;

}
 楼主| bufubaoni 发表于 2014-8-30 17:06 | 显示全部楼层

本帖子中包含更多资源

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

×
 楼主| bufubaoni 发表于 2014-8-30 17:07 | 显示全部楼层
其读写都是以纳秒级的延时,本身用的是8Mhz的晶振单个周期就是125ns级的也不存在时序的延时问题。求指点。
coody 发表于 2014-8-30 19:00 | 显示全部楼层
最终你会发现,还是时序问题。
NE5532 发表于 2014-8-30 20:19 | 显示全部楼层
楼主这个问法,除了得到“自己程序写得有问题”之外,还能得到啥答案呢?
xyz549040622 发表于 2014-8-30 20:27 | 显示全部楼层
搞累了出去看看镁铝,回来继续搞,到最后发现,其实都TM的是无用功
ningling_21 发表于 2014-8-30 22:25 | 显示全部楼层
没总线的MCU搞这个芯片,不太好搞...
朝阳之光 发表于 2014-8-31 07:53 来自手机 | 显示全部楼层
有时想想是不是芯片问题,这个芯片太老了有时是坏的,
 楼主| bufubaoni 发表于 2014-8-31 19:17 | 显示全部楼层

可以正常的仿真,虽然不迷信这个。

本帖子中包含更多资源

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

×
 楼主| bufubaoni 发表于 2014-9-2 15:25 | 显示全部楼层
时序无任何问题,实际电路中用PC口作为地址口,由于用jtag调试,其中四个口并不能用于io口。故导致程序不能正常读出。

本帖子中包含更多资源

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

×
wh6ic 发表于 2014-9-2 15:48 | 显示全部楼层
电池挂了
erjiguan8970 发表于 2014-9-2 20:21 | 显示全部楼层
DS12887假的太多
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

24

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部