痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.3)- FlexSPI NOR连接方式大全(RT1010)
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦i.MX RT1010的FlexSPI NOR启动的连接方式。
在写完 《FlexSPI NOR启动连接方式(RT1015/1020/1050)》 和 《FlexSPI NOR启动连接方式(RT1060/1064(SIP))》这两篇之后,现在再来写今天的主角i.MXRT1010要相对轻松一些,毕竟i.MXRT1010是i.MXRT家族里的小弟弟。
i.MXRT1010是恩智浦于2019年推出的新品,小身材大能量,相比其他几位i.MXRT哥哥的BGA196、LQFP144、LQFP100封装,i.MXRT1010的LQFP80的亲民封装深得硬件工程师的欢心,引脚少了,板级设计上也就没那么多弯弯绕绕。
i.MXRT1010的市场定位类似于传统8位MCU或入门级32位MCU,它跟i.MXRT1015/1020/1050一样内部只集成了一个双通道8bit的FlexSPI模块,从低成本开发角度考虑外挂的芯片应该越少越好,因此本文主要介绍单Flash连接,不再像前面几款i.MXRT芯片那样去额外介绍双Flash连接设计了。
我们知道i.MXRT1010内部RAM大小为128KB,并且其没有搭配图像相关IP模块(CSI、PxP、LCD),原则上内部RAM足够满足一般的应用需求了。但因为它的特殊性,本文会重点展开其怎么外挂RAM,具体i.MXRT1010特殊在哪里,且往下看:
一、涉及FlexSPI引脚
1.1 BootROM指定
我们可以在i.MXRT1010芯片参考手册System Boot这一章节找到BootROM指定的FlexSPI NOR引脚,痞子衡整理如下:
1.2 BootROM未指定
在此也列出不在BootROM指定的FlelxSPI NOR引脚,方便后续设计Flash+外扩RAM时参考。
二、单Flash连接方式(2种)
参考文章《FlexSPI NOR启动连接方式(RT1015/1020/1050)》 的 《三、单Flash连接方式(3种)》章节,前两种连接方式,i.MXRT1010与i.MXRT1050是一样的。
三、Flash+外扩RAM连接方式(2种)
痞子衡前面讲了,i.MXRT1010是特殊的,它到底特殊在哪里?i.MXRT1010是迄今为止唯一的一颗仅支持从FlexSPI NOR启动(不支持其他类型启动设备)的i.MXRT芯片,而且它还跟i.MXRT1015一样是唯二的没有搭配SEMC模块(可用于外扩SDRAM)的i.MXRT芯片。你可能还没理解这意味着什么,这意味着如果i.MXRT1010的内部128KB RAM不满足你的应用需求的话,外扩RAM(这里主要指的是能直接AHB访问)是一件有点麻烦的事。
让我们回顾i.MXRT1010的那些大哥哥们,它们支持外扩RAM的方式就简单多了,既可以通过SEMC扩SDRAM,也可以通过FlexSPI扩HyperRAM。哪怕就是i.MX1015,它还可以支持从LPSPI接口的QSPI NOR Flash启动,把FlexSPI完全让给HyperRAM。
那么i.MXRT1010该怎么办?其实也不是没有办法,痞子衡找到了如下两种方法:第一种是连接8线HyperFlash+HyperRAM,第二种是连接四线QSPI Flash+PSRAM。第一种方案性能高,但比较贵,用在i.MXRT1010上显得不那么搭配。第二种是比较推荐的连法,而且QSPI PSRAM性价比很不错,不过当前生产QSPI PSRAM厂商不是很多。
痞子衡在介绍i.MXRT1050 FlexSPI连接的文章最后,提过关于FlexSPI异类命令互斥特性导致即使双Flash也有RWW问题,那么在同一个FlexSPI上挂Flash和RAM会不会有类似的问题呢?比如代码在Flash中XIP,然后读写RAM。其实这个问题不用担忧,因为CPU从Flash里取指令属于AHB Read,访问RAM也是AHB Read/Write,这都是同类FlexSPI命令,不存在互斥问题。
最后找了两家提供QSPI PSRAM产品的厂商供大家参考:
爱普科技 APSxx04x系列:http://www.apmemory.com/html/product_psram.php
艾蒲司 IPSxx04L系列:http://ipusltd.com/Products_en.html
至此,恩智浦i.MX RT1010的FlexSPI NOR启动的连接方式痞子衡便介绍完毕了,掌声在哪里~~~