最近我也在做RT1170的相关项目,由于项目需要,研究了Flash下载算法、NOR Flash空间的擦除/烧写(OTFAD XIP更新固件时要更新OTFAD Key Blob字段)、HyperRAM初始化等功能,这些都是开发过程中可能会遇到的一些问题,而这些都与FlexSPI接口息息相关。初始化完FlexSPI后就可以像访问CPU中ITCM、DTCM等内置内存一样来访问外部存储器中的内容。对于FlexSPI1来说,它可以将外部存储器地址映射到0x30000000处;而FlexSPI2则可以映射到0x60000000处。

1 FlexSPI框图

FlexSPI(Flexible Serial Peripheral Interface)支持两个SPI通道和多达4个外部设备。每个通道支持Single/Dual/Quad/Octal模式的双向数据传输。下面来看一下FlexSPI的功能框图:

(1)FA port和FB port
FlexSPI可以通过它的两个通道FA和FB与外部的串行Flash在硬件上进行连接,FA和FB各有两个通道。比如说HyperRAM大多数就有八条数据线,它就占满了一个Port A/B。而对于QSPI NOR Flash来说,只需要四根数据线,所以在Port A/B上还能再接一个设备。
(2)SEQ_CTL
所有的外部存储器都有它的时序,SEQ_CTL就可以根据你的配置生成相应的控制时序来访问外部的存储器。其中有一个很重要的数据结构,就是LUT(Look Up Table),它用来指定Flash各个操作的时序。

(3)AHB BUS 64bitIPS BUS 32bit
32bit IPS BUS(即手动操作FlexSPI寄存器发送Flash读写命令),64bit AHB BUS(由FlexSPI翻译AHB访问地址并自动发送相应Flash读写命令)

  • AHB BUS 64bit:用户可以像访问内部SRAM一样访问接在FlexSPI上的外部存储器,此时地址通过AHB总线传到SEQ_CTL
  • IPS BUS 32bit:用户可以根据自己初始化的外部存储器各个操作(如擦除、读/写内存、读/写寄存器)的时序,主动访问FlexSPI的相关寄存器来完成外部存储器的一些操作

(4)ARB_CTL
由于AHB和IPS总线都可以请求外部存储器的数据,所以ARB_CTL就是用来控制两个总线在同一时间访问外部存储器时,哪个总线能优先执行。

(5)缓冲区
为了加快读取的速度,两个总线都有读写缓冲区。AHB Bus有发送缓冲区AHB_TX_BUF和接收缓冲区AHB_RX_BUF,它们将会缓存AHB突发传输的写数据或读数据;而IPS Bus有发送缓冲区IP_TX_FIFO和接收缓冲区IP_RX_FIFO,大小均为256字节,且支持DMA传输。

2 FlexSPI特性

(1)SDR和DDR模式
在SDR(Single Data transfer Rate)模式下,Flash在SCLK上升沿接收数据,下降沿发送数据。在DDR (Dual Data transfer Rate)模式下,Flash在SCLK上升沿和下降沿都接收数据和发送数据。SDR和DDR模式由LUT表格中的操作码决定。

(2)Individual和Parallel模式
Individual mode下,Flash读/写数据都在Port A或Port B完成。在parallel mode下,Flash的读写操作在Port A和Port B并行完成,FlexSPI将自动合并/拆分Flash读写的数据。也就是说,数据可以存储在两个不同的Flash中。当然在硬件上,也要有相应的连接。

  • 只有读写指令可以自动合并和拆分,对于其它的指令(比如命令/地址/模式/数据大小),相同的数据会同时传给两个Flash设备,比如发命令则两个Flash设备都会收到。

(3)Single, Dual, Quad, and Octal模式

  • Single模式:Flash在DATA0引脚上发送/接收数据
  • Dual模式:Flash在DATA0~DATA1引脚上发送/接收数据
  • Quad模式:Flash在DATA0~DATA3引脚上发送/接收数据
  • Octal模式:Flash在DATA0~DATA7引脚上发送/接收数据

这些模式也是在LUT表格中决定的。

(4)操作模式
Module Disable mode:用于低功耗模式,在该模式下AHB时钟和串行时钟域将会被关闭,但是IPS总线时钟不会被关闭。
Doze mode:用于低功耗模式。在该模式下,FlexSPI会等待所有的处理都完成后进入Doze mode,此时AHB和串行时钟域都会被关闭,但是IPS总线时钟不会被关闭。
Stop mode:用于低功耗模式。在该模式下,FlexSPI会等待所有的处理都完成,再返回一个ACK给系统,然后IP回关闭AHB和串行时钟域。但是可以在系统层面打开AHB/IPS/串行时钟。
Normal mode:所有的时钟都不会被关闭。

3 总结

本节大概介绍了一下FlexSPI的功能框图和一些特性,实际上这都是对参考手册的一个大概的总结,更多细节还是要看参考手册。而对于FlexSPI来说,最重要的应该就是LUT表格了,所以下一节就来详细地介绍一下LUT表格。

I.MX RT1170之FlexSPI(1):FlexSPI功能框图和特性相关推荐

  1. I.MX RT1170 PXP 图形加速器

    一.PXP介绍 在图像显示在显示器之前,i.MX RT1170 可以通过 2D矢量图形.PXP 或者 LCDIF 等图形加速器来生成.合成和混合图形的内容,本文将介绍其中 PXP 图形加速器. PXP ...

  2. SysTick系统定时器(功能框图和优先级配置)

    SysTick系统定时器(功能框图和优先级配置) SysTick-系统定时器是属于 CM3 内核中的一个外设,内嵌在 NVIC 中.系统定时器是一个 24bit (2^24)的向下递减的计数器,计数器 ...

  3. 数据治理管理平台功能模块与特性

    数据治理中的元数据就是数据的数据,讲究从数据的全生命周期:产生/采集.存储.加工和展现等环节进行描述与分析.元数据体现数据的各类关系和属性,可从技术.业务.管理3个维度对元数据进行划分,从而帮助用户对 ...

  4. linux5.5内核,Linux 5.5内核发布下载,附新功能及新特性介绍

    Linux Kernel 5.5内核已经正式发布了,提供linux-5.5.tar.xz下载,它具有许多更改和值得改进的地方,该内核版本也将在2020年晚些时候作为Ubuntu HWE堆栈的一部分反向 ...

  5. 免费etl调度工具Taskctl-Web应用版功能框架及特性

    目录 初识Taskctl-Web版 功能框架 系统特性 登录界面 下载方式 安装环境准备 如何0元获取永久使用授权 初识Taskctl-Web版 Taskctl Free应用版原型是在原有商用版Tas ...

  6. MSP430F2132IRHBR功能框图TPS259824LNRGER电路保护和电源管理解决方案芯片

    概述:MSP430F21x2 16位超低功耗微控制器 (MCU) 是MSP430系列微控制器的一部分.这些MCU采用一种架构,加上5种低功耗模式,能在便携式测量应用中延长电池的使用寿命.这些器件具有一 ...

  7. 12c oracle 修改内存_Oracle12c中性能优化功能增强新特性之重大突破——内存列存储新特性...

    Oracle12c中内存列存储 内存列存储(IM column store) 是Oracle12.1.0.2版本的主要特点.该特点允许列,表,分区和物化视图在内存中以列格式存储,而不是通常的行格式.数 ...

  8. PHP5各个版本的新功能和新特性总结

    本文目录: PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束 PHP5.2:JSON 支持 PHP5.3:弃用的功能,匿名函数,新增魔术方法,命名空间,后期静态绑定,Her ...

  9. PHP5各个版本的新功能和新特性总结(转载 http://www.jb51.net/article/48150.htm)

    本文目录: PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束 PHP5.2:JSON 支持 PHP5.3:弃用的功能,匿名函数,新增魔术方法,命名空间,后期静态绑定,Her ...

最新文章

  1. 这样讲 SpringBoot 自动配置原理,你应该能明白了吧
  2. P3项目全球模板狗血设计之三 --- 发货到成本中心需要创建预留单
  3. NoSQL介绍(三)
  4. 一步一步做高性能服务器(C++) -- Day 1
  5. Entity Framework Code First关系映射约定
  6. 基于malloc与free函数的实现代码及分析
  7. python获取文件夹里有什么文件+查看特定格式的文件
  8. Linked List Cycle | ||
  9. Training_model(2)
  10. java删除文件目录及文件_Java删除文件,目录
  11. 产品经理面试常见问题及答案参考总结(一)
  12. 服务器布线属于搬迁项目吗,弱电机房服务器搬迁建设整体规划与合理布局
  13. win7桌面运行html,Win7桌面ie浏览器图标无法打开的原因及解决方法
  14. hapi mysql项目实战路由初始化_hapi框架搭建记录(二):路由改造和生成接口文档...
  15. SDUT 3386小雷的冰茶几
  16. Git基础-查看、添加、删除远程仓库链接
  17. win7下用VS2008写视频聊天程序,求VFW教程?qzvgK
  18. K-means聚类、KNN算法原理
  19. 算法将成为人工智能时代的“科技原力”
  20. 新手利用C# 实现简单仿QQ登陆注册功能

热门文章

  1. 百度只为营销而存在?
  2. “陶渊明后人”讲故事月入百万,借鉴他的玩法,你也可以月入1万
  3. 一款超牛的OCR识别软件
  4. Android 蓝牙 A2DP基础概念、A2DP音频流的建立及传输流程、A2DP播放暂停音乐命令交互过程分析 - 史上最全分析
  5. 【求大神帮助】thinkphp3.2.3老是被篡改入口文件
  6. 三星开始认真考虑拆分成两个公司,这是为了什么?
  7. 重绘MenuStrip 控件
  8. win7 manager 5.1.9注册机(亲测可用)
  9. api测试 免费api
  10. 济南ISO 能源管理体系认证