
RT1052和Spartan7
文章平均质量分 87
catshit322
兴趣
展开
-
RT1052 AC6 FreeRTOS-移植Cmbacktrace
CmBacktrace (Cortex Microcontroller Backtrace)是一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库。原创 2023-03-06 21:25:35 · 824 阅读 · 0 评论 -
FPGA中的fast corner和slow corner是什么?
在setup中分析的是slow process corner,在hold中分析的是fast process corner,这个跟我们第一个图也是对应的。如果在slow process corner模型下能满足setup的要求,那么其他模型也就都能满足;如果在fast process corner模型下能满足hold的要求,那么其他模型下也都能满足。转载 2023-03-04 21:44:31 · 1175 阅读 · 0 评论 -
RT1052 M7 芯片 D-Cache使用问题和注意事项
内容参照 野火文档,增加了使用过程中遇到的实际问题在RT1052与FPGA联调过程中,因为D-Cache问题出现了无法访问FPGA外设的情况,在此记录问题现象和解决办法M7内核新增了I-cache(指令缓存),D-cache(数据缓存),Cache通过高速总线与内核相连,访问速度最快,可以大大提高CPU新能,但是使用不当就会造成令人头疼的问题。为了提高CPU访问存储空间的速度,D-Cache中会根据一定规则(不清楚什么规则)保存经常访问或者刚刚访问过的数据,起的是一个外设和CPU内核原创 2020-09-26 13:15:49 · 2141 阅读 · 0 评论 -
RT1052 FlexSPI 存储空间程序配置测试
FlexSPI支持并行模式和单独模式FlexSPI的连接 和 地址空间分配 手册1655页RT1052官方参考手册中,FlexSPI AHB方式的寻址地址是当使用并行模式时,A1+B1并行,A2+B2并行,B端口控制无效,但是实际使用中,程序设置如下:/*Get FLEXSPI default settings and configure the flexspi. */ FLEXSPI_GetDefaultConfig(&config); /*Set AHB原创 2020-09-25 10:00:58 · 809 阅读 · 2 评论 -
RT FlexSPI 接口 FPGA程序设计思路
1.先从简单的SDR模式开始做起,频率设置为120M,单端SCK,禁用SCKB 。2.使用外部DQS信号,即由FPGA输出,DQS边沿与数据边沿对齐。3.CS setup 1个SCK周期,HOLD 一个SCK周期。4.修改LUT表,这里使用一字节命令,三字节地址,一字节数据长度,然后直接跟数据,没有DUMMY延迟。5.对FPGA端,CS,SCK是输入信号,DQS,D0-D8是双向IO信号,FPGA输出时方向为输出,FPGA输入时引脚方向为输入;RT芯片的 enableWriteMask设置.原创 2020-09-15 20:57:02 · 559 阅读 · 1 评论 -
iMX RT FlexSPI 的DQS信号
DQS信号是数据采样信号,实际上就是“从器件”接收“主控器件”发送的SCK时钟信号后,返回给了“主控器件”,一般低速SPI通信使用SCK作为采样时钟即可,想要通信可靠,需要数据和SCK信号之间满足Setup和Hold时间的要求,如下图:DQS信号就是源SCK信号经过“从器件” 的同步和线路上的延迟,与数据信号是基本同步的,因此“主控器件”使用DQS信号作为数据的采样信号,可以达到比较高的速度和采样正确率。FlexSPI接口提供了三种DQS选项,参看前面一篇记录iMX RT FlexSPI 时原创 2020-09-15 18:48:46 · 2129 阅读 · 3 评论 -
Xilinx FIFO的使用
使用vivado生成FIFO IP核。FIFO常用于:跨时钟域操作和数据位宽转换。例如:两个独立的时钟域,独立的数据位宽,可以利用一个FIFO进行连接。spartan7 的资源情况blockRAM是FPGA中定制的ram资源,而distributeRAM则是由LUT构成的RAM资源。当FIFO较大时应选择blockRAM,当FIFO较小时,选择distributeRAM.另外一个很重要的就是blockRAM支持读写不同宽度,而distribute不支持。FIFOIP核...原创 2020-09-12 14:53:15 · 2070 阅读 · 0 评论 -
FPGA testbench文件编写要点
记录testbench编写使用过程中的问题,作为笔记不定时更新。FPGA开发过程中,编写的模块如果直接使用硬件仿真,开发会特别费时费力,一般编写完一个逻辑模块后可以使用时序仿真功能,做完验证再进行集成。初期可能会花费点时间,但是和直接硬件仿真调试比起来还是会更高效。TestBench文件就是使用硬件描述语言的方式描述激励信号,使用熟练后会比图形化的方式更方便,并且逻辑复杂后你会发现,图形化的方式根本无法操作,必须使用TextBench进行仿真。vivado软件没有自动生成TestBench文件的原创 2020-09-08 19:34:08 · 754 阅读 · 0 评论 -
iMX RT FlexSPI 时序及驱动程序参数设置解析 (二)
接上一篇iMX RT FlexSPI 时序及驱动程序参数设置解析 (一)本次介绍FlexSpi程序设置中的问题。FlexSPI外接设备描述官方的FlexSPI驱动程序中对外接设备定义了一个结构体:flexspi_device_config_t,注意这个结构体和SPI flash启动时设置FDCB的结构体不同,官方搞了两套代码。/*! @brief External device configuration items. */typedef struct _flexspi_device原创 2020-09-05 19:55:58 · 1564 阅读 · 0 评论 -
iMX RT FlexSPI 时序及驱动程序参数设置解析 (一)
FlexSPI是一个功能强大的接口,和普通SPI相比,使用比较复杂,较难上手。近期调试FlexSPI与FPGA接口,将通过系列博客进行记录。先看RT1052参考手册1694页在这之前先介绍一个概念:serial root clock ,手册中提及的serial root clock 是FlexSPI接口工作的基础时钟,SCK可以在serial root clock的基础上分频得到。程序中可以通过 CLOCK_SetMux();选择root clock的时钟源,通过CLOCK_SetDiv();设置S原创 2020-09-05 18:02:13 · 3368 阅读 · 0 评论 -
FlexSPI HyperBus 器件的应用 手册1712页
27.6.4在HyperBus设备上的应用本节提供了HyperBus设备(Cypress RPC flash/ HyperRam/HyperFlash)的示例序列。27.6.4.1 HyperFlash本节提供HyperFlash设备(Cypress S26KS系列)的示例序列下表显示了读取状态命令序列。下表展示的是读取命令序列下表展示字编程命令序列下表展示 写入缓冲区 和 缓冲区写入到Flash命令序列27.6.4.2 HyperRAM本..原创 2020-08-29 19:41:31 · 815 阅读 · 0 评论 -
FlexSPI 发送地址到器件上 手册1660页
27.5.6发送到设备的闪存地址闪存访问起始地址由AHB地址(AHB命令)或IPCR0[SFAR]寄存器(IP命令)决定。更多细节参考Flash访问的AHB命令和IP命令。对于AHB命令,当FlexSPI控制器发送flash地址到设备时,将自动删除flash base地址。对于IP命令,IPCR0[SFAR]中的地址应该是flash设备的地址,不含基址。闪存地址分两部分被发送到设备:行地址和列地址。对于不支持列地址的闪存设备,请将寄存器字段FLSHxCR1[CAS]设置为0。然后所有的f..原创 2020-08-29 19:24:45 · 343 阅读 · 0 评论 -
FlexSPI的连接 和 地址空间分配 手册1655页
27.5.3 Flash连接RT105x有两个FlexSPI接口端口(A端口和B端口)。每个端口提供2个芯片选择输出支持2个闪存设备。请注意FlexSPI配置依赖于芯片配置。有关所支持的设备数量,请参阅特定于芯片的FlexSPI信息。下面是连接4个器件时的框图请注意Flash Al和A2可以是两个Flash芯片封装或两个Flash die在同一个封装上,对FlexSPI来说没有区别。Flash B1和B2也是一样。Flash Al和B1可以并行访问。FlexSPI...原创 2020-08-29 18:48:36 · 872 阅读 · 0 评论 -
FlexSPI 模块术语表 信号描述 手册1651页
大部分信号都和普通SPI端口信号胸痛。需要说明的是DQS信号使用这个信号时FlexSPI速度最大可达166M SDR/DDR ,不使用的时候只有133M SDR和 66M SDRDQS有三个功能:外部器件驱动的写选通脉冲,有些器件提供写选通脉冲。这种情况下如果外部器件仅在读的时候驱动这个引脚,则需要一个外部下拉电阻。由外部设备驱动的延迟信息:某些设备使用这种pin来指示所需的虚拟周期(在程序读取数据传输之前),如HyperRAM/HyperFlash。环回虚拟...原创 2020-08-29 17:05:27 · 613 阅读 · 0 评论 -
FlexSPI AHB内存映射定义 手册1762页
可接FlexSPI 使用AHB命令访问这一章27.8 AHB内存映射定义本节详细介绍了FlexSPI模块AHB内存映射。27.8.1串行闪存访问的AHB内存映射串行闪存的AHB读/写访问映射到如下地址范围:x6000000- 0x800000000AHB总线功能支持串行闪存读取:可缓存和非可缓存访问预取可启用/禁用突发大小:8/16/32/64bit所有突发类型:SINGLE/INCR/WRAP4/INCR4/WRAP8/INCR8/WRAP16/INCR16原创 2020-08-29 15:40:55 · 497 阅读 · 0 评论 -
FlexSPI 的 SCLK 停止功能 手册1693页
27.5.12 SCLK 停止功能当编程数据没有准备好用于编程命令序列,或者(内部FIFO中)没有空间接收数据,无法读取命令序列时,FlexSPI将停止SCLK输出。可能有某些设备不支持SCLK在命令序列期间停止(芯片选择是有效的)。SCLK停止可以通过以下操作避免:对于由IP命令触发的flash读取永远不要触发数据大于IP RX FIFO大小的read命令。用于flash读取的内部异步FIFO不应该是满的。FlexSPI以64Bits每AHB时钟周期的方式弹出数据,并以s...原创 2020-08-23 17:16:59 · 388 阅读 · 0 评论 -
RT1052 FlexSPI 命令仲裁 手册1691页
命令仲裁有四个Flash访问命令源:1.AHB命令,被AHB写 SFM空间触发2.AHB命令,被AHB读SFM空间触发3.IP Command ,被写IPCMD[TRG]触发4.挂起命令(被挂起的AHB预读取序列)注意:AHB BUS访问不会同时被写和读命令触发AHB预读取序列是一种当AHB 预读取使能时被AHB 读访问触发的命令序列。在所有数据被AHB 读取后,FlexSPI会预读取更多数据来缩减下次读取的延迟。读取的AHB命令在为当前的AHB读取突发读取数据时...原创 2020-08-23 17:02:00 · 369 阅读 · 0 评论 -
使用IP Command方式访问Flash 手册1673页
在以下步骤中,可以由IP命令触发闪存访问。填充IP TX FIFO与编程数据,如果这是一个编程命令(编程flash数据,flash状态寄存器等) 设置flash访问起始地址,读取/程序数据大小,LUT中的序列索引和序列号。 通过向寄存器位IPCMDI[TRG]写入1来触发flash访问 命令轮询寄存器位INTR[IPCMDDONE]引发等待这个IP命令完成FlexSPI接口。请注意IP TX FIFO可以在写入IPCRO/ IPCR1/IPCMD寄存器之前或之后填写。如果在IP...原创 2020-08-23 16:01:18 · 644 阅读 · 0 评论 -
FlexSPI使用AHB命令访问 手册1680页
27.5.10 AHB命令访问Flash在AHB地址空间0x60000000-0x80000000上,AHB总线可以直接访问Flash。这个地址空间映射到FlexSPI中的串行闪存。AHB总线访问这个地址空间可能需要触发Flash访问命令序列。对于串行闪存的AHB读取访问,FlexSPI将从闪存中获取数据到AHB RX缓冲区,然后在AHB总线上返回数据。对于AHB对串行的写访问,FlexSPI将缓冲AHB总线写入的数据到AHB TX缓冲区,然后再传输到串行闪存。对AHB命令方式来说...原创 2020-08-23 15:51:03 · 1001 阅读 · 0 评论 -
FlexSPI应用于FPGA器件的一些要点 手册1719页
27.6.6 FPGA器件的应用使用FPGA器件应该用AHB命令访问。所有对FPGA的AHB访问将对SW驱动程序透明(没有SW干预,不需要软件干预)。可能对FPGA器件有一些特殊的要求。1. 在A1/A2/B1/B2上,设备类型可能不同 对于这种情况,清除MCR2[SAMEDEVICEEN]位,并分别为最多4个外部设备配置FLSHxCRO和FLSHxCRI寄存器。2. 设备需要不同的等待周期进行编程。可以为这四个外部设备分别设置AHB写等待周期数(通过寄存器字段...原创 2020-08-23 12:13:53 · 616 阅读 · 0 评论 -
RT1052 使用IP Command 方式访问Flash
官方手册1673页开始在以下步骤中,可以由IP命令触发闪存访问。填充IP TX FIFO与编程数据,如果这是一个编程命令(编程flash数据,flash状态寄存器等) 设置flash访问起始地址,读取/程序数据大小,LUT中的序列索引和序列号。 通过向寄存器位IPCMDI[TRG]写入1来触发flash访问 命令轮询寄存器位INTR[IPCMDDONE]引发等待这个IP命令完成FlexSPI接口。请注意IP TX FIFO可以在写入IPCRO/ IPCR1/IPCMD寄存器.原创 2020-08-21 19:18:08 · 593 阅读 · 0 评论 -
iMX RT1052芯片FlexSPI接口的使用
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。主要记录RT1052芯片调试使用的方法,记录学习过程提示:以下是本篇文章正文内容,下面...原创 2020-08-21 19:14:38 · 4158 阅读 · 0 评论