打印

如何把AD数据全部存到外部FLASH

[复制链接]
2532|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
还我今生|  楼主 | 2016-5-19 16:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用的是STM32F051C8芯片 48M主频   24M的SPI传输到FLASH
AD的采样率是40k/s(25us采样一次)  12位(需要2个字节) 。相当于1秒钟要80k字节。
而SPI传输到FLASH(W25Q32)的速度大约是100字节/500us(不能传太少字节,速度会慢很多,比如10字节也要100us的时间)
一共需要保存5到10秒钟的AD数据,
求教各位大侠,如何把数据全部存到FLASH里面。

相关帖子

沙发
还我今生|  楼主 | 2016-5-19 17:00 | 只看该作者
本帖最后由 还我今生 于 2016-5-20 09:20 编辑

忘记说了 每个AD值还要进行 次序编码 ,每个编码值都要保存到FLASH里编码值,
10秒钟的AD个数要到800k=800000=0xC3500 至少也得3个字节。
这个先不考虑了,数据稍微漏几个是不影响判断结果的。
正常情况下有4到8个模块一起采样同个信号源,
由上位机进行比较,差别太大的数据会被直接过滤掉



使用特权

评论回复
板凳
还我今生|  楼主 | 2016-5-19 17:23 | 只看该作者
成本也是很重要的哦  如果用很贵的MCU解决 那意义也就不大了

使用特权

评论回复
地板
ickey元件采购网| | 2016-5-19 17:51 | 只看该作者
顶一下

使用特权

评论回复
5
nethopper| | 2016-5-19 19:01 | 只看该作者
貌似可用里面的DMA控制器

使用特权

评论回复
6
zhaoyu2005| | 2016-5-19 20:49 | 只看该作者
估计用W25Q32不一定行,写入速度不行:按你说的大概是200K/S,这个速度应该是不能保证的,所以建议换速度快的存储器
mcu的速度够了,存储器的写入速度跟不上。刚看了下,页写入时间0.7mS-3mS

使用特权

评论回复
7
还我今生|  楼主 | 2016-5-20 09:07 | 只看该作者
写入的速度只考虑了一个扇区  上面说的速度是测试过的
多个扇区一起写入不知道会不会慢很多 这个也是要测试过的

使用特权

评论回复
8
还我今生|  楼主 | 2016-5-20 09:12 | 只看该作者
DMA 写入应该也是可以提高点速度  也得测试下

使用特权

评论回复
9
还我今生|  楼主 | 2016-5-20 09:33 | 只看该作者
不知道这样行不行 AD在中断中采集,AD开辟两个接收缓存rx1[200], rx2[200] ,200字节 就是100个AD值,
AD中断采集时间大约花费100*(12.5us+1.5us)=1.4ms
主程序中每次写入rx[200]  会用掉1ms多点
rx1[200]满后,开始往rx2[200]填写数据,这个时候主程序开始发送rx1[200]到FLASH里面。
但是这样有个问题 写入的时候 会不挺的被AD中断打断,这样写入不知道会不会出什么问题

使用特权

评论回复
10
nethopper| | 2016-5-20 09:50 | 只看该作者
主要是采集和写入是否都要消耗CPU时间的问题,如果CPU只是发出一个简短的命令就可写入一个页面的数据,然后就不消耗CPU时间了,就好办。

使用特权

评论回复
11
PIGYONG801| | 2016-5-20 11:49 | 只看该作者
建议用SST25VXXx可以做到,他家的FLASH擦和写都有此特点

再就是铁电,更爽

使用特权

评论回复
12
LearningASM| | 2016-5-20 13:47 | 只看该作者
如果需要快又要省MCU,可以考虑升级后的SST26,增加了页写入,官方数据:256byte/page,Page-Program :1.5ms,折合速度有170kbyte/s。
只是没听过有人在用SST26

使用特权

评论回复
13
chunyang| | 2016-5-22 23:32 | 只看该作者
通常AD输出比Flash的写入速度要快不少,所以通常需要足够容量的缓存,片内片外的都可以,或者改用铁电存储器,而高速Flash比较贵,并不是好的选择。

使用特权

评论回复
14
量子纠缠| | 2016-5-23 08:49 | 只看该作者
放弃SPI 更换并口FLASH

使用特权

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

本版积分规则

218

主题

1382

帖子

1

粉丝