嵌入式ram内存 (话说嵌入式)

什么?阿圆你又拿什么奇葩东西来忽悠我们!

哈哈,阿圆今天本来是在认真调试代码,调试到外部SDRAM时搞了好久,郁闷之间忽悠想到

有没有简单的办法使用外部RAM,如果单片机的RAM不够用到底应该怎么办?

  1. 花钱!买RAM更大ROM更多的单片机!

  2. 使用外部SDRAM

  3. 按二十年前写代码的方式认真扣每一位内存比特

大容量的单片机阿圆不是没有考虑过,SRAM 2M的也不是没有(Realtek的那个奇葩),像STM32F1系列最高配也就到96K,如果非要上F7/H7虽然内存有512K,但是价格感人,有时时仅仅为了大内存应用,也没有必要带上那么多接口吧!浪费!

嵌入式ram,嵌入式ram内存

最高至96KBytes

嵌入式ram,嵌入式ram内存

最高至512KBytes

那么选一个可以外扩SDRAM的这个办法没错吧!阿圆觉得这都是己经经过实践验证过的了方法绝对靠谱,但是!但是!没错又是这该死的但是,想一想吧,一旦要用外部SDRAM,那一堆地址线和数据线绝对少不了,占用你16~20根IO口妥妥的!

第三点嘛,阿圆不想多说,我们可是要面向互联网的嵌入工程师,以后写代码的目标就是不用自己管理内存,不用自己管理中断,不用己管理。。(唉呀别打我)

嵌入式ram,嵌入式ram内存

在此,阿圆开了个脑洞,能不能有简单易用的SRAM啊!让我有内存可用,接口还要简单一点,上个并行SDRAM做个板子好麻烦,焊接也不好焊!

经过阿常的苦心搜索,我去还真有!那就是今天的主角串行SRAM!见过串行的Flash,见过串行的EEPROM,竟然还有串行的SRAM!

第一个呢,便是来自Microchip的23LXX系列,真没想到microchip的脑洞也很大(难怪PIC还挺好用的),以此最大内存值为1Mbit(128K)的23LC1024为例,来看看串行SRAM的一些参数。

  • SPI接口,时钟频率最高为20MHz,支持SPI/SDI/SQI模式

  • 低功耗,读电流为3ma@5.5V 20MHz,

  • 无限次读写周期

  • 写时不需要花费额外时钟

  • 128K x 8-bit的组织架构,支持32页

  • 读写支持字节,页,顺序模式

  • 工作温度-40到+85度之间

也就是说现在的串行SRAM走的就是普通的SPI接口,控制信号线就只需要4根即可,即CS,SI,SO,SCK即可,相比并行的SDRAM少了不少。

阿圆偷偷上老马家搜索了一下23LC1024,不到10块钱,不过买的人都好少,庆幸大家都没有开这脑洞。

嵌入式ram,嵌入式ram内存

找了几家,做串行SRAM的确实不多,除了microchip也都是不怎么大众的半导体产商。看来确实很冷门

嵌入式ram,嵌入式ram内存

还有一家提供了比较大一点的SRAM,达到了4Mbit(512KB)

嵌入式ram,嵌入式ram内存

更有国人提出了SQPI PSRAM的概念,阿圆想了想不都是走SPI接口的吗,也是没差,无非是内存更大一些罢了。

当然使用SPI接口的话,有个缺点就是没有办法将变量直接定义在串行SRAM当中了,除非得到控制器的支持。比如跑Linux的MCU通常就支持SPI Flash,可以直接将SPI Flash的内容直接就映射到内存当中。广大半导体产商们,就靠你们啦!

嵌入式ram,嵌入式ram内存

好啦,阿圆今天的脑洞就开到这里,如果下次有新项目需要使用到比较大的内存,别忘了,还有这招~

说出来吓死他们!