我正在开发一个 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将输入的数字信号转换为模拟信号。
如果您有这方面的开发经验或者知道问题可能的根本原因,可以帮我解决吗?
对于那些使用相同开发套件并遇到与我相同问题的人,请执行以下操作以避免这种情况:
检查 cycloneV soc 地址映射注册表:sysmgr.GENERALIIOXX 、 sysmgr.LOANIOINXX 和 sysmgr.GPLMUXxx。
检查J31跳线是否短接,使SPI/I2C设置为SPI。
3.确保将loanio.oe [xx]设置为FPGA逻辑所需的输入/输出,而不是HPS逻辑(尽管UG另有说明)
--------行尾--------