硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1113|回复: 3
收起左侧

[数字电路] AT24C64驱动与FM3130驱动应用区别记录

[复制链接]

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
发表于 2021-8-10 11:27:57 | 显示全部楼层 |阅读模式
1.由于都是敏捷开发,看文档的时间都不给(自己精力也有限)先写个纪事文。

========场景案例1=============
2.铁电成本贵,换成AT24C64,驱动调整完后,产品初始化异常。
    仿真调试确认,原本铁电数据读写简单粗暴。可以连续写,连续读,无分页的感觉。
    换成AT24C64后,读完A区数据,接着读B区数据,换页时间不可忽视。使用者感连续读写,AT24C64就敢报紧接这的数据读写异常。数据结构必须按照片子的页大小,以及分页延时规则

========场景案例2===========
3.另一个产品配置,AT24C16 + 8KB的铁电。成本优化,简单浓缩铁电的数据结构,将AT24C16的数据,拼接到铁电后面存取。
   仿真发现,一次性读大于128B的铁电数据,后面的数据错误(随机值)。
   直接一个函数,分成两个函数问题现象消失
        ReadEE( AddrIniDevice, 64, SETTING_BUF1 );
        ReadEE( AddrIniDevice+64, 64, &SETTING_BUF1[64] );

        注:BUFF是U16类型,64个元素实际上是128个BYTE内容。

4.查看老项目铁电的初始化发现,铁电初始化有其他运行性能配置,问老工程师,当初读写大于128字节的数据体会出现异常。结合第三条的验证结果,先继续敏捷开发往下走了。

有与时间关系,先写了一点纪事文。有使用铁电的老铁们,欢迎跟帖补充完善。
Releasing your creativity
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
 楼主| 发表于 2021-8-10 11:35:24 | 显示全部楼层
书到用时方恨少,2014年去参加TI研讨会,当时介绍铁电的时候没怎么听。铁电的IC,数据存储的性能还是很明显的,如果要玩真性能,那就得配合更多的使用场景、性能组合来做试验了。

---------------------下面是某老平台铁电的初始化函数-------------------------
有点老,中途随性维护,到我这还没时间看文档消化,仅供参考。
void InitI2C(void)
{       
        unsigned char dataread;
//        WP = 1;//TD
/*-------------3130----------------------------
        //清除低压复位
        dataread=Read_reg(0x00);
        Write_reg(0x00,dataread&0x7f);

        //TST置零
        dataread=Read_reg(0x0E);
        Write_reg(0x0E,dataread&0xfe);
       
        //禁止充电
        Charge_fm(0);                  //根据需要调整

        //写保护禁止
        Pro_mem(0);         //据需要修改

        //振荡器使能          
    dataread=Read_reg(0x01);                 //启动时钟                          
        Write_reg(0x01,dataread&0x78);                     
*/
/*-------------PCF8563---td0407-------------------*/
        //normal mode run POR disabled
        dataread=Read_reg(0x00);                       
        Write_reg(0x00,dataread&0x00);       

        //AIE disabled
        dataread=Read_reg(0x01);
        Write_reg(0x01,dataread&0x18);
       
        //clockout disabled
        dataread=Read_reg(0x0D);
        Write_reg(0x0D,dataread&0x7F);

        //振荡器使能          
    dataread=Read_reg(0x0E);                 //启动时钟                          
        Write_reg(0x0E,dataread&0x7F);
/*-------------PCF8563---td0407-------------------*/
}       
Releasing your creativity
回复

使用道具 举报

5

主题

519

回帖

534

积分

金牌会员

积分
534
发表于 2021-8-11 08:40:12 | 显示全部楼层
一次性读大于128B的铁电数据,后面的数据错误(随机值)
、、、、
程序里面应答要处理,铁电速度快,不需要等待应答。
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
 楼主| 发表于 2021-8-15 22:45:12 | 显示全部楼层
hqgboy 发表于 2021-8-11 08:40
一次性读大于128B的铁电数据,后面的数据错误(随机值)
、、、、
程序里面应答要处理,铁电速度快,不需 ...

还记得去年,我测试发现SOE记录非常影响装置性能,发现当时还是传统100KHZ的节奏驱动铁电,太浪费了。常规读写操作还参杂AT24系列的中庸delay。真不应该
Releasing your creativity
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 05:08 , Processed in 0.259094 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表