14

Sep . 2024

群英讲堂 | 浅谈PSoC™ 6 SMIF的使用(一)

分享至

本文作者:梁家威 英飞凌消费、计算与通讯业务大中华区 首席工程师

PSoC™ 6的SMIF(Serial Memory Interface)外设接口是PSoC系列单片机中专门用于外部串行存储设备的功能单元。常见的应用是访问支持SPI/DSPI/QSPI/OSPI 接口的Flash, FRAM, PSRAM等串行接口的存储芯片。

PSoC 6的SMIF最大支持8-bit的数据带宽(OSPI)和4个ChipSelect片选信号,CLK最高支持80MHz频率SDR,理论最大带宽80MB/s,其功能框图如下:

由于SMIF是针对外部存储设备的专用外设,接口功能上SMIF与PSoC另一个传统的串行通信模块SCB(Serial Communications Block)中的SPI功能对比,有着以下几个主要差异:


  1. SMIF仅支持SPI Mode 0: clock polarity(CPOL)和 clock phase(CPHA)皆为‘0’。
  2. SMIF支持Single/Dual/Quad/Octal SPI 协议,SCB-SPI 仅支持Single SPI。
  3. SMIF最大时钟80MHz,SCB-SPI 最大时钟25MHz。
  4. SMIF支持XIP模式,内置4KB Cache。
  5. SMIF支持on-the-fly 128bits AES自动加解密。
  6. SMIF独立的时钟源配置,普通的外设使用统一的HF[0]时钟源,再用外设分频器分频到各个外设时钟。SMIF使用独立的HF[2]时钟源,允许使用独立的时钟源配置。

SMIF的MMIO模式和XIP模式

MMIO模式

MMIO模式又称命令模式(Command Mode)是CPU 通过访问SMIF Block的寄存器控制SMIF工作的方式。这种模式下SMIF就是个外设控制来访问外部的存储硬件,存储的内容是以数据的方式来被CPU读写。这种模式下SMIF 内部的Cache不会被使用,只有TX/TX_CMD/RX FIFO会被应用到SMIF通信过程当中。

这种模式下读写操作都是按用户应用需求来主动执行,或者发送相关驱动API来执行,比较适用于需要访问的数据都是用户数据的场景。

应用实例可以参考:


XIP模式(eXecute In Place)

XIP模式也被称为地址映射模式,外部的存储芯片的内容可以按地址映射到总线可访问的地址区域当中,映射的配置使能之后,CPU可以通过总线的方式直接访问对应地址的内容。这种方式下,XIP映射到的地址段可以配置为Code 区域和Data区域,所以CPU可以执行外部的存储空间中的代码。

目前XIP模式下,PSoC 6提供给外部存储空间的寻址区域是0x1800 0000 – 0x 1FFF FFFF的寻址范围,共128MB的寻址空间。同时由于支持了总线操作,SMIF 内的4KB Cache可以被使用到这个模式当中,提高CPU运行片外指令的效率。

值得注意的是,虽然XIP模式可以让CPU非常容易的访问到外部的Memory,不需要像MMIO模式一样一步步地设命令字,设地址,设读写长度。减少用户侧的应用代码的一些工作,但同时也会引入需要注意的一些操作:

1. 由于参与了总线的访问,对于Flash的写操作,由于一般会有ms级别的延时时间,总线无法等待这么长的时间,所以对于XIP模式,无法实现Flash的写操作。但对于RAM特质的存储介质,如FRAM,RRAM,PSRAM等,写操作也可以用于XIP模式当中。

2. 如果需要实现Flash的写操作,必须切换回MMIO模式,发送写Flash的命令,再切换回XIP模式。这里需要考虑:

  • SMIF切换回MMIO模式期间,对于总线来说这个片区的代码和数据都是不可访问的,需要从应用上考虑禁止在这个期间访问片外的地址段,比如通过一些RTOS的机制来管理函数的调用许可。
  • 切换到MMIO前后,需要考虑当前SMIF Cache中代码的有效性,需要使用以下函数来释放掉当前Cache的内容。


应用实例可以参考:

External flash access in XiP mode

SMIF作为一个专用于片外存储设备的接口外设,PSoC的开发环境ModusToolBox集成了友好易用的配置工具QSPI Configurator (目前更新到4.30版本),加快用户去创建需要访问外部SPI 存储设备的实现。通过配置工具选择需要使用的Memory的Part Number,然后会生成对应的命令字的列表配置,配合PDL和Middleware的驱动代码,可以快速的实现。

下图是QSPI Configurator的界面,可以通过选择Memory Part Number的下拉列表,快速获取预配置好的一些模板。然后选择是否支持XIP(Memory-Mapped),Data bit(1/2/4/8bit), Data Select对应第几个Slave Slot,映射地址等等信息,保存后就可以生成对应的代码结构体。

如果Memory Part Numbers列表当中没有当前需要使用的新料号,QSPI Configurator工具支持自己新建模板,然后用户可以自行导入和管理自己的Memory的配置。

总结

本篇主要简述了PSoC 6 SMIF接口的基本功能、基础的参数特性,帮助用户了解PSoC 6 SMIF的性能和功能特点。后续还会有文章介绍下一步更深入的一些话题。


点击下方链接,获取更多信息


文章来源:英飞凌官微

半导体组件问询单
如对本公司产品有任何问题(产品报价、技术咨询、产品文件、样品索取、合作代理等),都可通过咨询表单和我们联络,将有专人回复。
隐私权暨个人资料保护声明

STEP

01
!

有标示 必填栏位,请确实填写,谢谢

咨询需求
市场应用

咨询商品

备注内容

下一步,联系资料填写

STEP

02
!

有标示 必填栏位,请确实填写,谢谢

公司名称
所属部门
联络人
职称
联络电话
邮箱
联络地址
交货地址
是否为贸易商
验证码
订阅电子报
!

有标示 * 必填栏位,请确实填写,谢谢。

公司名称
所属部门
姓名
职称
联系电话
选择电子报语言
邮箱
验证码