0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

设计一种跳转到Avalon总线的简单方法

PCB线路板打样 来源:LONG 2019-08-07 10:45 次阅读

许多FPGA设计使用嵌入式处理器进行控制。典型的解决方案涉及使用诸如Nios的软处理器,尽管具有内置硬处理器的FPGA SoC也变得流行。图1显示了典型的Altera FPGA系统,其中包含处理器和通过Altera的 Avalon 存储器映射(MM)总线连接的外设组合。这些处理器极大地简化了最终应用程序,但需要强大的编程背景和复杂工具链的知识。这可能会妨碍调试,特别是如果硬件工程师需要一种简单的方法来读取和写入外设而不会影响软件工程师。

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

本设计方案使用Altera的 SPI Slave to Avalon MM Bridge 提供了一种跳转到Avalon总线的简单方法。这种技术有两个优点:它不会损害原始系统设计,并且桥接器可以与嵌入式处理器共存。对于图1中所示的系统,SPI桥允许工程师直接控制LTC6948小数N分频PLL的频率,设置LTC1668 DAC电压,读取LTC2498 ADC的电压或读取来自LTC2983的温度,就像处理器一样。

设计一种跳转到Avalon总线的简单方法

图2荧光笔+示例代码+反向工程= Python脚本(可缩放图像)

Altera为SPI-Avalon MM桥提供参考设计。不幸的是,文档最多是稀疏的,并使用Nios处理器作为SPI主控制器。这有效地破坏了SPI桥的目的,因为

设计一种跳转到Avalon总线的简单方法

Nios可以直接连接到Avalon MM总线。实用的SPI主控制器是凌力尔特公司微控制器,它是一个Arduino克隆,具有与LT演示板接口的额外功能。一个额外的功能是电平转换的SPI端口。当电压低至1.2V的FPGA I/O bank接口时,这种电平转换功能特别有用。 Linduino固件可用于通过虚拟COM端口接受命令,并将命令转换为SPI事务。

对Altera示例设计进行逆向工程后(图2的左侧),开发了一个Python库来创建桥接器可以接受的数据包。然后将这些数据包转换为Linduino命令。然后,Python脚本允许硬件工程师完全控制项目,而无需重新构建接口协议。 LinearLabTools Python文件夹中提供了一个示例Python脚本,用于控制LTC1668 DAC的数字码型发生器的频率。图3显示演示设置。

图3DC2459 DAC演示板(R)插入FPGA板(L)

图4显示系统框图。注意,数控振荡器(NCO)可以由移位寄存器PIO内核控制。包含移位寄存器用于调试,因为它允许直接控制NCO。将GPIO线设置为高电平可启用SPI-Avalon桥,后者又控制Avalon总线上的32位PIO端口。然后,PIO输出控制NCO频率。

设计一种跳转到Avalon总线的简单方法

图4FPGA系统框图

在基本系统运行的情况下,可以将额外的外围核心连接到总线。为了设计系统,Altera提供了一个名为Qsys的工具,它提供了一个GUI来连接IP。 Qsys将GUI设计的系统(图5)转换为HDL。外设地址是完全可配置的。在这种情况下,PIO设置为0x0的基数。

设计一种跳转到Avalon总线的简单方法

图5Qsys GUI

一旦设计在FPGA中实现,LinearLabTools中提供的Python库包含两个与设计接口的函数:

transaction_write(dc2026,base,write_size,data)

transaction_read(dc2026,base,read_size)

这些函数的第一个参数是Linduino串口实例。第二个参数是Avalon总线上的外设地址。函数分别接受和返回字节列表。编写这两个函数是为了在写入和读取IP时具有灵活性。要为所提供的示例设置NCO,需要transaction_write功能。公式1用于确定调谐字。

设计一种跳转到Avalon总线的简单方法

将NCO设置为1kHz使用50MSPS采样率时,调整值为85899或0x00014F8B,它作为四个字节的列表传递。因此,将DAC设置为1kHz的python代码是:

transaction_write(linduino_serial_instance,0,0,[0x0,0x01,0x4F,0x8B ])

设计一种跳转到Avalon总线的简单方法

设计一种跳转到Avalon总线的简单方法

图6Python Avalon总线示例

图6中的Python脚本说明了简单文本配置NCO的接口。一个重要的注意事项:桥接器使用SPI模式3.通过反复试验确定了正确的模式,并通过分析Altera示例中的Nios处理器的SPI接口进行了验证。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Avalon总线
    +关注

    关注

    0

    文章

    11

    浏览量

    10096
  • PCB打样
    +关注

    关注

    17

    文章

    2965

    浏览量

    21386
  • 华强PCB
    +关注

    关注

    8

    文章

    1831

    浏览量

    27460
  • 华强pcb线路板打样

    关注

    5

    文章

    14629

    浏览量

    42578
收藏 人收藏

    评论

    相关推荐

    使用MAXI接口的最简单方法是什么?

    我的块设计中有个XADC,我能够从我的arm / xmd使用“axi_lite总线”进行访问是否有一种简单方法可以从FPGA内部发出“相
    发表于 11-02 11:32

    一种节省能源的简单方法

    一种节省能源的简单方法是在晚上关闭Mac。与不活动,空闲或睡眠的Mac相比,关机的Mac所消耗的能源更少。对于运行大量Mac的组织,应优先考虑整夜关机。反对在夜间关闭的个常见论点是关闭和启动所花
    发表于 12-29 08:20

    STM32 IAP - Boot跳转到APP的方法

    简单IAP设计思路:单片机上电首先运行BootLoader程序;Bootloader如果检测到需要更新APP,则首先进行更新,更新完成后跳转到APP并运行;Bootloader如果检测到不需要更新
    发表于 01-27 06:16

    从用户代码跳转到系统bootloader

    从用户代码跳转到系统bootloader提供一种直接从用户代码直接跳转到系统Bootloader 的方法
    发表于 10-19 06:10

    一种宽范围微弱直流信号测量的简单方法

    一种宽范围微弱直流信号测量的简单方法 介绍一种采用对数运算功放大器MAX4206的测量方法,可实现1nA~1mA直流电流的测量,电路设计简单
    发表于 04-24 09:46 16次下载

    Avalon总线规范(中文版)

    Avalon 总线一种将片上处理器和外设连接成片上可编程系统(SOPC)的一种简单总线结构。Avalo
    发表于 07-09 18:39 0次下载

    应用Matlab仿单相PWM整流器的一种简单方法

    应用Matlab仿真单相PWM整流器的一种简单方法 叶齐峰,金新民 (北方交通大学电气工程学院,北
    发表于 07-15 09:16 3024次阅读
    应用Matlab仿单相PWM整流器的<b class='flag-5'>一种</b><b class='flag-5'>简单方法</b>

    avalon总线框架

    Avalon 总线一种将片上处理器和外设连接成片上可编程系统(SOPC)的一种简单总线结构。Avalo
    发表于 11-21 09:10 3478次阅读
    <b class='flag-5'>avalon</b><b class='flag-5'>总线</b>框架

    基于Nios系统的Avalon总线概述

    Nios系统的所有外设都是通过Avalon总线与Nios CPU相接的,Avalon总线一种协议较为
    的头像 发表于 01-27 22:03 4590次阅读

    浅谈AVALON总线的应用及要求

     AVALON总线,其实是一种交换架构的协议,在自定义外设挂在AVALON总线上时,一定要注意地址对齐。
    发表于 02-11 17:15 1513次阅读
    浅谈<b class='flag-5'>AVALON</b><b class='flag-5'>总线</b>的应用及要求

    锆石FPGA A4_Nano开发板视频:Avalon总线规范的讲解(2)

    Nios系统的所有外设都是通过Avalon总线与Nios CPU相接的,Avalon总线一种协议较为
    的头像 发表于 10-08 07:05 1325次阅读

    锆石FPGA A4_Nano开发板视频:Avalon总线规范的讲解

    Nios系统的所有外设都是通过Avalon总线与Nios CPU相接的,Avalon总线一种协议较为
    的头像 发表于 09-30 07:04 1270次阅读
    锆石FPGA A4_Nano开发板视频:<b class='flag-5'>Avalon</b><b class='flag-5'>总线</b>规范的讲解

    测试IGBT的简单方法

    一些测试IGBT的简单方法
    的头像 发表于 06-19 10:19 1.4w次阅读

    STM32 IAP - Boot跳转到APP

    简单IAP设计思路:单片机上电首先运行BootLoader程序; Bootloader如果检测到需要更新APP,则首先进行更新,更新完成后跳转到APP并运行; Bootloader如果检测到不需要
    发表于 12-03 14:21 7次下载
    STM32 IAP - Boot<b class='flag-5'>跳转到</b>APP

    APM32F003X6_TMR_从Bootloader跳转到APP,TMR4

    APM32F003X6_TMR_从Bootloader跳转到APP,TMR4
    发表于 11-09 21:03 0次下载
    APM32F003X6_TMR_从Bootloader<b class='flag-5'>跳转到</b>APP,TMR4