搜索
bottom↓
回复: 27

电路板中的校准参数存储位置问题

[复制链接]

出0入4汤圆

发表于 2023-10-14 12:01:04 | 显示全部楼层 |阅读模式
电路板中的校准参数放置在单片机FLASH中还是增加一个flash芯片放外部flash中
请教下大家产品是怎么处理的,从量产和后续维护的方面看

出0入33汤圆

发表于 2023-10-14 12:54:58 来自手机 | 显示全部楼层
从成本来说少一个元件当然更好,但从后期维护和稳定性来说还是建议单独挂一个存储器。至少换了单片机如果校准的项目跟单片机无关的话不用再做校准了。

出0入0汤圆

发表于 2023-10-14 13:16:10 | 显示全部楼层
总体来看还是放在MCU片外单独的EEPROM中更好一些。存在片内FLASH中有可能程序升级时会被刷掉,更换芯片也会麻烦一些虽说这种情况并不经常发生。

出0入0汤圆

发表于 2023-10-14 13:28:10 | 显示全部楼层
能放单片机FLASH就放啊,增加一个外部Flash,如果单片机是5V的还要增加降压芯片,电平匹配至少还要加几个电阻

出105入79汤圆

发表于 2023-10-14 14:13:33 | 显示全部楼层
常规做法是放再一个1元左右的EEPROM内,5ms读写,带读写保护。

出0入362汤圆

发表于 2023-10-16 10:47:11 | 显示全部楼层
放单片机flash就行了呗... 拿出一页1k, 虚拟个几十几百字节的eeprom, 用着多方便, 比外置24xx还快些.

出0入75汤圆

发表于 2023-10-16 11:04:43 | 显示全部楼层
不经常修改的参数放Flash里就行,经常修改的,算一下Flash的写寿命是否远大于产品寿命要求,是就可以写Falsh里,不是单独挂片EEPROM。

出235入235汤圆

发表于 2023-10-16 13:39:50 | 显示全部楼层
内部Flash一般有以下问题:
1、寿命;
2、操作Flash时会中断CPU其他事务。(比如跑通讯的时候有可能会响应丢包)

出0入0汤圆

发表于 2023-10-16 13:41:18 | 显示全部楼层
最好还是直插件带座的那种

出0入0汤圆

发表于 2023-10-16 14:51:50 | 显示全部楼层
我是存在本机flash的后端,避免被刷掉,平时也只在上电时读取,挺好用的

出1310入193汤圆

发表于 2023-10-16 22:14:22 来自手机 | 显示全部楼层
tomzbj 发表于 2023-10-16 10:47
放单片机flash就行了呗... 拿出一页1k, 虚拟个几十几百字节的eeprom, 用着多方便, 比外置24xx还快些. ...
(引用自6楼)

曾经也是这样方案,
后来
批量产品,偶尔会出现丟数据。
2~5%概率。
实验室一直没有复现。

出0入475汤圆

发表于 2023-10-16 23:17:10 来自手机 | 显示全部楼层
直到现在我都还没有明白以前那些高端仪器的参数为啥总喜欢弄个电池保存的RAM来存储呢?
我觉得并不是所谓的速度快,因为又不是时时刻刻在读数据,几乎都是开机读一下那种;更不是那时候没有flash/eeprom,早就成熟的不要不要的。
现在想来难道真是为了万无一失?
虽然掉电池丢数据风险是有的,但是电池都用了30多年了居然还正常的有电,还是那种大芯片内部一个小的不能再小的3V纽扣电池,没天理。。。

出0入4汤圆

发表于 2023-10-16 23:20:57 来自手机 | 显示全部楼层
1a2b3c 发表于 2023-10-16 23:17
直到现在我都还没有明白以前那些高端仪器的参数为啥总喜欢弄个电池保存的RAM来存储呢?
我觉得并不是所谓的 ...

(引用自12楼)

用的是可充电的

出0入362汤圆

发表于 2023-10-16 23:36:52 | 显示全部楼层
lb0857 发表于 2023-10-16 22:14
曾经也是这样方案,
后来
批量产品,偶尔会出现丟数据。
(引用自11楼)

我倒是遇到过, 写flash模拟的eeprom时, 用dma输出dac的dds波形相位错乱了, 因为读取flash里的波形数据暂停了.

解决办法也简单, ram还有富余, 干脆把波形数据复制到ram一份, 然后dma从ram里读取, 之后一切正常.

丢数据没遇到过, 我是用伪地址:数据这样成对操作, 写的时候二分查找从前往后第一个空地址, 读的时候则是查找最后一次出现的匹配地址.
st似乎有个官方application note介绍了这种用法.

出105入79汤圆

发表于 2023-10-16 23:37:59 | 显示全部楼层
lb0857 发表于 2023-10-16 22:14
曾经也是这样方案,
后来
批量产品,偶尔会出现丟数据。
(引用自11楼)

需要擦除需要100ms,然后写入新数据,这100ms内断电,数据就没了。

出0入475汤圆

发表于 2023-10-16 23:44:07 来自手机 | 显示全部楼层
xiaoergao 发表于 2023-10-16 23:20
用的是可充电的
(引用自13楼)

怎么可能嘛,不知道可充电的比不能充电的故障率高多少量级啊
那玩意就是类似于DS12887一类的(只是这个带了个RTC),里面封装了一个类似CR2032(小一大圈和薄很多)的纽扣电池,
网上有很多撬开电池位置外接电源的diy操作,

出0入362汤圆

发表于 2023-10-16 23:57:12 | 显示全部楼层
qwe2231695 发表于 2023-10-16 23:37
需要擦除需要100ms,然后写入新数据,这100ms内断电,数据就没了。
(引用自15楼)

关键就是不能每次都擦了写啊
按我上面说的, 伪地址+数据, 成对从前往后写, 写满一页才擦除, 就保险得多了.

出105入79汤圆

发表于 2023-10-17 02:02:59 | 显示全部楼层
tomzbj 发表于 2023-10-16 23:57
关键就是不能每次都擦了写啊
按我上面说的, 伪地址+数据, 成对从前往后写, 写满一页才擦除, 就保险得多了 ...
(引用自17楼)

是个好办法,但是需要一定的编程基础,和一个合适的数据结构

出0入362汤圆

发表于 2023-10-17 09:21:30 | 显示全部楼层
本帖最后由 tomzbj 于 2023-10-17 09:25 编辑
qwe2231695 发表于 2023-10-17 02:02
是个好办法,但是需要一定的编程基础,和一个合适的数据结构
(引用自18楼)


上传个我的

我一般把eeprom所在页放在bootloader的后面, app的前面, 比如bootloader占了8k, 那么eeprom所在页首地址是0x08002000, app启动时执行FLASH_EEPROM_Config(0x08002000, 1024)这样就可以.
不用bootloader的话, 放flash最后也是可以的.

一般读写用这两个函数
void FLASH_EEPROM_WriteData(unsigned short addr, void* data, int num);
void FLASH_EEPROM_ReadData(unsigned short addr, void* data, int num)

把所有要放在eeprom里的数据打包放在一个结构体里, 比如叫struct { ... } eep;
读的时候就FLASH_EEPROM_ReadData(0, &eep, sizeof(eep)),  写的时候FLASH_EEPROM_WriteData(0, &eep, sizeof(eep)), 完事了.

已经在几个产品上用了.

还没有用上二分查找, 目前还是顺序查找, 谁有兴趣可以优化一下.

本帖子中包含更多资源

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

x

出0入4汤圆

发表于 2023-10-17 10:50:08 | 显示全部楼层
1a2b3c 发表于 2023-10-16 23:44
怎么可能嘛,不知道可充电的比不能充电的故障率高多少量级啊
那玩意就是类似于DS12887一类的(只是这个带 ...
(引用自16楼)

LIR1620 LIR2032都是可充电的,就是常见纽扣电池尺寸。

出105入79汤圆

发表于 2023-10-17 11:53:19 | 显示全部楼层
tomzbj 发表于 2023-10-17 09:21
上传个我的

我一般把eeprom所在页放在bootloader的后面, app的前面, 比如bootloader占了8k, 那么eeprom ...
(引用自19楼)

大侠这个很不错,值得单独发个帖子分享

出0入475汤圆

发表于 2023-10-17 12:34:31 来自手机 | 显示全部楼层
xiaoergao 发表于 2023-10-17 10:50
LIR1620 LIR2032都是可充电的,就是常见纽扣电池尺寸。
(引用自20楼)

30年前的不可能有这种内置到模组内的,

出1310入193汤圆

发表于 2023-10-17 21:39:34 来自手机 | 显示全部楼层
qwe2231695 发表于 2023-10-16 23:37
需要擦除需要100ms,然后写入新数据,这100ms内断电,数据就没了。
(引用自15楼)

这是一个原因,但不全部都是。
内部flash和eeprom的差别是有的,
avr开始,就盛行数据保持到内部flash,
但是,今天非民用批量产品,大都还是外置eeprom。

出1310入193汤圆

发表于 2023-10-17 21:40:45 来自手机 | 显示全部楼层
tomzbj 发表于 2023-10-17 09:21
上传个我的

我一般把eeprom所在页放在bootloader的后面, app的前面, 比如bootloader占了8k, 那么eeprom ...

(引用自19楼)

这个甚好
可否新开一贴,介绍一下。
造福坛友

出0入4汤圆

发表于 2023-10-18 07:10:56 来自手机 | 显示全部楼层
接触到的很多进口仪器都是外挂EEPROM

出0入45汤圆

发表于 2023-10-18 09:38:19 | 显示全部楼层
EEPROM                  

出0入300汤圆

发表于 2023-10-19 08:24:37 来自手机 | 显示全部楼层
我也是外挂的24c02,不敢碰片上的腐赖使,SOT23-5 的24c02真的没多用多少地方

出130入129汤圆

发表于 2023-10-19 08:34:38 | 显示全部楼层
外挂存储器好维修
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 17:50

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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