UART_SpiFlash_Programmer_on_FPGA
FPGA上的URT程序员SPI SPI Flash 25系列
提出的项目由两个组成部分组成:一个PC程序和一个Verilog项目,该项目将FPGA的几乎所有债务费变成了SPI Flash驱动器的USB程序员。只有一个限制 – 董事会应具有USB -JART转换器(或者您可以连接外部)。为什么需要这?为方便起见。例如:您正在FPGA上开发某个设备,其中数据存储在闪存驱动器上。调试时,您通常必须重写闪存驱动器。为此,您需要连接程序员或从面板中取出闪存驱动器。因此,我只是淹没了程序员的固件 – 您可以,您可以在不关闭电缆的情况下闪烁。我认为这非常方便。固件本身是一些最终机器:UART RX,UART TX,SPI和使其工作同步的主机。作为存储器缓冲区,使用FPGA中内置的块内存,以1KB为单位端口RAM配置为Dual Port RAM。
程序员的速度很高,以UART 921600 BOD的速度,一个兆字节的记录大约需要28秒。如果支持USB-JART适配器,则可以尝试更高的UART速度(例如,20,000)。
该项目由四个文件组成:UART_RX.V,UART_TX.V,SPI.V和顶部模块UART_PROG.V。在前三个文件中,您可以配置每个模块的速度并指定输入频率。在主UART_PROG.V模块中,有两个最终机器:第一个收集传入的软件包,将其写入RAM,并赋予处理软件包的命令;第二个机枪更复杂,它处理采用的软件包,控制外围自动机器(UART_TX,SPI),并组织了用于使用SPI闪存存储器的算法。该计算机使用多个子程序(重复重复的过程),并组织了最简单的堆栈以维护返回地址(寄存器“ RET”)。
在FPGA Altera Cyclone IV和Gowin Tangnano9k上检查了这项工作(后者使用了内置的USB-JART,并且内置的SPI闪光灯缝制了,因为这有必要在双重目的中指示MSPI PIN作为一般IO)。
当将项目转移到其他FPGA时,有必要考虑到构建的战术的极性 – 记忆:Altera在Gowin中,Linux是正面的(根据前线)。
PC程序是从我的其他UART_PROG项目中使用的,您可以从那里获取。该程序写在Windows X64的C#上,并在QT上重写Windows和Linux X64和AARCH64。
在此代码中,仅使用25系列的SPI闪光灯来实施工作,其余的选项卡(24xHb 93cxx)上的元素简单地被FPGA固件忽略了。将来,我计划增加对这些EEPROM编程的支持,可能是分开的项目,以使其数量不超过合理的限制。
在未实现的函数中,仅SREG1,2记录,此功能可行,其他所有内容(录制,阅读,洗涤,阅读,阅读ID,读取SREG正常起作用)。

