打印

I2C的EEPROM最大容量有多少的?

[复制链接]
2731|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
summerlee|  楼主 | 2009-4-14 07:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
将军令| | 2009-4-14 07:56 | 只看该作者

改用sd卡吧

或者usb

使用特权

评论回复
板凳
Again_gyf| | 2009-4-14 10:08 | 只看该作者

用DATAFLASH呀!

AT45。。。。

使用特权

评论回复
地板
summerlee|  楼主 | 2009-4-18 12:56 | 只看该作者

请问楼上的,我就是选了个AT45DB161D

可是我搞了2天没有搞出个读写程序来,感觉很简单,不知道哪里有问题,你是否有程序啊。或者请各位给个提示,看看这个程序有什么错误?
unsigned char read_status_register(void)
{
   unsigned char i;
          

       AT45DB161_CS=0;

       input_8bit(OPCOM_READ_STATUS_REGISTER);
       
       for(i=0;i<8;i++)
        {
           AT45DB161_SO=1; //first setup the output pin 
           AT45DB161_SCK=0; //falling eage to read
           rdata=rdata<<1;
           BIT0=AT45DB161_SO;
           AT45DB161_SCK=1;
       }

       AT45DB161_CS=1;
      
       return(rdata);
}






unsigned char read_flash(unsigned char opcom,unsigned int page_address,unsigned int in_page_address)
{
   unsigned char i;
   unsigned char address_byte_1,address_byte_2,address_byte_3;
   unsigned int address;


       address=(page_address<<2)|(in_page_address>>8);    //combine 14 bits of page address and highest 2 bits of inner page address   
       address_byte_1=address>>8;
          address_byte_2=address;
       address_byte_3=in_page_address;

       while(!(read_status_register()&0x80));
       AT45DB161_CS=0;

       input_8bit(opcom);
       input_8bit(address_byte_1);
       input_8bit(address_byte_2);
          input_8bit(address_byte_3);
       input_8bit(0x00);//dump byte
       
       for(i=0;i<8;i++)
        {
           AT45DB161_SO=1; //first setup the output pin 
           AT45DB161_SCK=0; //falling eage to read
           rdata=rdata<<1;
           BIT0=AT45DB161_SO;
           AT45DB161_SCK=1;
       }

       AT45DB161_CS=1;
      
       return(rdata);
}



    


void write_flash(unsigned char opcom,unsigned int page_address,unsigned int in_page_address,unsigned char wdata)
{
   unsigned char address_byte_1,address_byte_2,address_byte_3;
   unsigned int address;
   
       address=(page_address<<2)|(in_page_address>>8);    //combine 14 bits of page address and highest 2 bits of inner page address   
       address_byte_1=address>>8;
          address_byte_2=address;
       address_byte_3=in_page_address;

       while(!(read_status_register()&0x80));
       AT45DB161_CS=0;

       input_8bit(opcom);
       input_8bit(address_byte_1);
       input_8bit(address_byte_2);
          input_8bit(address_byte_3);

       input_8bit(wdata);

       while(!(read_status_register()&0x80));

       AT45DB161_CS=1;
}





使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

150

帖子

1

粉丝