首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

【晒FRAM铁电存储器样片】+项目应用-硬度计样机测试

【晒FRAM铁电存储器样片】+项目应用-硬度计样机测试

本帖最后由 fengye5340 于 2014-8-20 21:28 编辑

项目方案
在对MB85RC64芯片进行了详细测试后,将芯片焊接到当前在开发的项目—硬度计样机上进行更详细的测试,如果后期测试过程正常,我们就准备定型这个IC。硬度计由机械部分和电气部分组成,我们负责的是电气部分,下面是电气部分的结构框图:

整个电气控制部分由核心控制板,传感器及信号调理电路,伺服电机控制电路、5.7寸单色触摸屏模块和强电控制保护电路组成。在这其中,MB85RC64这颗FRAM芯片位于核心控制板上,靠近串口位置,下面是控制板局部图片:






通过图片可以清楚地看到,控制板和触摸屏通过FPC排线链接,排线长度非常长,有80cm(定制),方便安装到仪器面板上。FRAM在控制板上的电路原理图如下,非常简单:


它和STM32PB6/PB7端口相连,可以采用硬件I2C协议和软件I2C协议(IO模拟),因为STM32的硬件IIC协议在使用中表现不太稳定,一般采用软件I2C协议(IO模拟)。

MB85RC64这个FRAM芯片在硬度计项目中主要应用在几个方面:

触摸屏校准,开机密码设定和关闭,掉电数据保存,程序状态定时保存和测试数据次数保存等。下面着重介绍几个应用。
二项目应用
1、触摸屏校准
在用户第一次运行该程序时,需要对触摸屏进行校准,校准完成后,会向FRAM的固定地址:0x30处,写入校准标记:0x37,不是常用的0X01。下面是程序截图和触摸屏截图:

  

代码中:程序首先读取MB85RC64地址 0x30处的值,判断是否为0x37,这个值可以自由设定,如果不是,则执行触摸屏校准,校准完成并成功后,写入校准标记。
在图中,触摸坐标按照逆时针方向,依次显示边框上四个点,中间一个点,触摸后,并实时显示坐标,通过五点校准算法进行触摸校准!校准成功后,会写入校准标记,校准不成功,会提示重新校准,连续5次不成功,会提示校准错误,此时需要重新上电初始化!

         


         

       2 开机密码设定和关闭
为了防止非专业人员操作和摆弄仪器,在程序上设定了密码保护功能,可以根据需要随时进行设定和关闭。程序实现部分如下,采用Pass_A/Pass_B/Pass_C三个U8变量保存密码,这样组成一个6位数字的密码。FRAM的地址:0x90被用作密码打开和关闭标志区,
地址0x100x11,0x12被用作6为数字密码的存储区。下面是程序段截图:
   
      


开机设定密码程序段截图

   
      
Touch_key是程序状态机的值,当关闭密码输入时,程序进入0x09状态,否则进入0xee状态。下面是程序状态机代码段截图:

   

      
触摸屏实际操作界面截图:
            

            

           



设定六位数字密码后,输入密码错误,程序会给出密码错误的提示,并进入等待重新输入密码状态,直到密码输入成功为止。
在密码设定界面中,可以通过关闭密码按钮来关闭。
密码主要是为了防止人员误操作而设定,也可以修改为字母键盘,实现数字和字母组合,根据需求而定!



3、掉电数据保存
在仪器操作过程中,突发断电情况是经常存在的,因为程序状态众多,每次重启后,从头开始会比较麻烦,电机转动位置也需要修正,因为需要在断电的瞬间实现对程序状态机值的保存和关闭电机。

STM32MCU中,提供了一个PVD(可编程电源检测模块)外设,利用它,可以设定监控VCC工作电压的工作阈值。描述如下:

   

   

它支持从2.3V-2.9V的可编程电压监控,这里采用的是下降沿阈值功能。
在突然掉电发生时,电压并不是从VCC3.3V突变到0V,而是有一个缓慢变化过程,这个过程持续几百微秒。下面是我用示波器截取的硬度计控制板突然断电的瞬时波形:




可以看到,VCC工作电压从3.3042V跌落到0V,大于410US-420US,这个是在VCC输入和输出电解电容取值47UF的情况下进行测试!
如果我们设定PVD的监控电压在2.9V,意味着当VCC跌落到2.9V以下时,会发生PVD中断。通过MB85RC64DATASHEET可知,其工
作电压范围:2.7V-3.6V,也就是说,在这个图中,从2.9V2.7V的时间段内,FRAM是可以存储数据的,这个就是黄金时间,那么这个黄
金时间是多少呢?通过示波器的波形测量功能,我们得到下图:



可以看到,是5.3333US,如果想延长这个黄金时间,就必须在VCC端增加大容量的电解电容器!目前样板的电容设计容量较小,5.333us还不能够实现状态机值的保护和关闭电机语句执行,需要修改封装,更换大型大容器。
下面是PVD程序代码截图:
首先PVD初始化:设定2.9V监控电压值

   

  
PVD中断,要实现在FRAM地址0x37处储存
程序状态机值touch_key和关闭私服电机驱动器的输出使能开关!这个后期会继续测试!



4、程序状态定时保存
通过定时器,写入整个程序状态机当前值,只有发生掉电后,程序才会读取FRAM地址,获取当前运行值,这个相当于一个双保险。在掉电保护中断失效,或者时间极短,中断无法完成FRAM保存数 据的情况下有用!
下面是代码截图:
利用定时器2资源实现1ms的定时
  
     


利用中断,产生200ms的定时,实现状态值定时保存!

     
     


5、测试数据次数保存

在仪器测试数据过程中,每进行一次数据测量,就将一个计数值写入FRAM的固定地址,累计到固定值后,停止工作或者发出次数限制报警。此功能主要实现对固件的知识产权保护和仪器演示功能,在应用产品中,用户会根据获取的序列号关闭此功能!







总结


     FRAM芯片使用比较容易,和EERPOM具有很高的替代性,除了价格稍高外,在硬件上几乎完全兼容,这样也方便对原有产品的升级!在将申请到的3个芯片焊接到3个样机测试过程中,没有发现读写问题,保存数据正确,为了保证稳定性,还需要做长时间的测试及高低温环境测试。在使用过程中,发现MB85RC64这颗FRAM的工作电压范围太窄,只有2.7V—3.6V。只能满足一般性应用要求。在应用到5V供电的MCU电路中,需要增加额外的电平转换电路,增加一些成本!另外,在使用STM32PVD功能时,应用受到限制,因为STM32PVD最高门槛电压是:2.9V,从2.9V2.7V,电压降太小,造成时间短,不能实现过多保存和保护功能,如果能让FRAM的工作电压范围拓展到:2.0V-5.5V,那将增大FRAM的应用场合!





最后,特别感谢富士通公司和bwin客户端 论坛提供的样品申请活动,让我们获取了高性能产品的测试和体验!
返回列表