×
电源 > 电源应用 > 详情

不用处理器控制FPGA总线的方法

发布时间:2020-12-02 发布时间:
|

许多FPGA设计使用嵌入式处理器实现控制。典型的解决方案是使用Nios这样的软处理器,虽然内置硬处理器的FPGASoC也变得很流行了。图1显示的是一个典型的Altera FPGA系统,其中包含了处理器和通过Altera的Avalon内存映射(MM)总线连接的各种外设。这些处理器极大地简化了终端应用,但要求很强的编程背景和复杂的工具链知识。这将妨碍调试,特别是当硬件工程师不想求助软件工程师,只需要一种简单的方式读写外设时。


图1:使用Avalon内存映射总线连接的典型Altera FPGA系统。

本设计实例使用Altera的SPI Slave to Avalon MM桥实现了一种挂接到Avalon总线的简单方法。这种技术有两个优势:它不会影响原始系统设计,桥可以与嵌入式处理器共存。对于图1所示的系统来说,这种SPI桥允许工程师直接控制LTC6948小数分频锁相环的频率、设置LTC1668数模转换器的电压、读取LTC2498模数转换器的电压或读取LTC2983的温度,就像处理器那样。

图2:高亮部分+例子代码+反向工程=Python脚本。

Altera为SPI-Avalon MM桥提供了参考设计。遗憾的是,相关文档非常少,并且将Nios处理器用作SPI主器件。这其实有违使用SPI桥的初衷,因为Nios可以直接连接Avalon MM总线。实用性的SPI主器件是凌力尔特公司的Linduino微控制器,它是Arduino处理器的的克隆版本,不过增加了连接LT演示板的接口等额外功能。其中一个额外功能是电平转换SPI端口。当连接电压低至1.2V的FPGA I/O组时这个电平转换功能特别有用。Linduino固件可以用来接受来自虚拟COM端口的命令,并将命令翻译成SPI处理内容。 在对Altera设计例子进行反向工程后(图2)就能得到一个Python库,接着创建SPI桥可以接受的数据包。这些数据包随后被翻译成Linduino命令。Python脚本随后允许硬件工程师完全控制整个项目,无需重新开发接口协议。LinearLabToolsPhython文件夹中提供了帮助LTC1668数模转换器控制数字图案发生器频率的Python脚本例子。图3显示了演示装置。

图3:插入FPGA电路板(左)的DC2459数模转换器演示板(右)。




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
变频器中三极管型光耦的测量与在线检测