CPU对FPGA或CPLD进行配置,该配置可以分为两种

SS SP等对FPGA或CPLD内部的SRAM进行程序配置;MCU模拟JTAG接口配置FPGA或CPLD的flash,进行程序远程更新;另外还有I2C、SSPI以及UART对CPLD进行flash远程更新(该部分有待研究); 1. CPLD可通过 SSPI 端口来配置 Flash(读/写操作),把位流文件写入内置 Flash,以实现更新版本的目的; 2. CPLD可通过 I2C 端口来配置 Flash(读/写操作),把位流文件写入内置 Flash,以实现更新版本的目的。 3. PC通过UART端口来配置Flash(注意:CPLD中需要有MCU,MCU以UART接口接收bit流文件),PC 作为 XModem 协议的发送端,FPGA 侧 MCU 作为 XModem 协议的接收端;

一、设计概述

TD软件版本:TD5.6.2_71036-64bit 工程 :SPIM_SS_CFG_Demo 参考工程 : APUG012_基于 MCU 串行配置、TN008_AJE 移植指南

二、SS配置

CPLD(EF2、EF3系列)SS配置方式: 通过Generate Bitstream->Properties->Attr Option->boot_mode->ss;

FPGA(EG4等)SS配置方式(EG4A、EG4X配置不同): 主要通过硬件对MSEL[2:0]进行配置;

三、MCU模拟JTAG配置

MCU/CPU端需要模拟JTAG接口配置FPGA或CPLD,需要使用TD软件生成对应程序的SVF文件; 然后使用SVF转换AJE工具,将SVF文件转换为AJE文件,才能进行配置。 注意:如果配置不成功,可以关注一下延时校准: 具体延时可以通过vec.c中的RUNTEST配置,即针对SVF文件参考频率和RUNTEST值进行换算(TN008)。 CPU端的代码根据什么编写SDI、SDR等命令? 可以使用TD将bit文件生成SVF文件,其中SVF文件包含整体定义的指令进程,可以根据SVF文件进行C代码部分的编写;

四、其他远程更新简介

1. SSPI 配置

SSPI 配置硬件连接框图,如图所示,MCU/CPU 器件作为主控设备,通过该平台 GPIO 控制器,FPGA 作为从设备,按照 SPI 协议实现对内置 Flash 实现擦除、更新等操作。

支持最高 40MHz 配置速率;支持 CFG/用户模式阶段配置接口使能;

2. I2C 配置

I2C 配置硬件连接框图如图,MCU/CPU 器件作为主控设备,EF3LA0 器件作为从设备,主控设备通过该平台 I2C 控制器,按照 I2C 协议实现对内置 Flash 实现擦除、更新等操作。

支持两种速度模式,标准模式 100kHz,快速模式 400kHz;具有可配置的 7、10 bit I2C 总线从设备地址;支持 CFG/用户模式阶段配置接口使能;

3. UART 配置

FPGA 侧 MCU 上电复位后进入升级模式,不断发送 NAK 信号请求传输;PC 侧上位机(如 SecureCRT、MobaXterm 等串口终端软件)将升级的文件加载到内存,按照协议将数据传递到 MCU 接收侧;MCU 根据自身 RAM 大小缓存一定数据后再将数据写入 Flash。重复此过程,直到整个升级 bin 文件更新到 Flash。Flash 配置完成后,可通过协议发起重启命令,完成整个配置过程。在线升级系统框图如下。 整个过程中的数据传输正确性,接收方需要计算 CRC 后发送 ACK 信号来进行确认,如果数据传输有误,则发送 NAK 信号,发送方在接收到 NAK 信号之后需要重新发起该次数据传输,如果数据已近传输完成,发送方需要发送 EOT 信号,来结束数据传输。

通过设备串口进行位流或 MCU 程序代码自更新;自定义波特率进行文件传输;支持传输完成后的文件正确性校验;支持小容量 RAM 的 MCU 边写边传机制;支持 1024 bytes 包的 Xmodem 协议传输;支持复位后直接启动和进入升级模式的选择;

精彩文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: