LoanIO从HPS到FPGA获取模拟信号,cycloneVsoc开发套件,自制RTOS

问题描述 投票:0回答:1

我正在开发一个 cycloneVsoc 开发套件的板。该板有一个我编写的简单 RTOS 程序。

由于板上的FPGA没有外部PIO接口,所以我使用LoanIO借用了FPGA的HPS GPIO接口(SPI CSn接口或MOSI/MISO接口)。

我希望FPGA借用的GPIO可以输出时钟信号,这是我的FPGA上通过一个简单的PLL实现的。我进行了连接和测试,信号被传输了,但是我观察到GPIO输出的信号是模拟信号(3.3V *我的PLL设置的占空比),但我仍然只想获得数字信号.

我看了SPI接口协议,根据我的理解,这三个通道应该是数字信号通道。我怀疑我的 HPS 设置将它们更改为模拟信号,但在阅读 UG 和 RM 后我什么也没得到。

这是我的verilog FPGA代码,它只是简单地连接时钟信号和输出端口:

assign hps_h2f_loan_io_out[60] = clk_313; // clk_313 is a PLL output wire

LOANIO的输出电压为3.3V。当我改变PLL时钟的占空比时,LOANIO的输出端口相应改变:50% -----> 1.62V,75% -----> 2.43V,这基本上匹配总电压*占空比。因此,我推断HPS将输入的数字信号转换为模拟信号。

如果您有这方面的开发经验或者知道问题可能的根本原因,可以帮我解决吗?

signals soc
1个回答
0
投票

对于那些使用相同开发套件并遇到与我相同问题的人,请执行以下操作以避免这种情况:

  1. 检查 cycloneV soc 地址映射注册表:sysmgr.GENERALIIOXX 、 sysmgr.LOANIOINXX 和 sysmgr.GPLMUXxx。

  2. 检查J31跳线是否短接,使SPI/I2C设置为SPI。

3.确保将loanio.oe [xx]设置为FPGA逻辑所需的输入/输出,而不是HPS逻辑(尽管UG另有说明)

  1. 确保你的输出带宽低于你的主clk带宽,当输出增加到1MHZ时,它开始丢失信号。(我的错误是我在输出中又添加了一个0)

--------行尾--------

© www.soinside.com 2019 - 2024. All rights reserved.