问题标签 [redpitaya]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
633 浏览

client-server - 如何使用 Vivado 将 Red Pitaya FPGA 与服务器代码连接起来

我目前在 PyQT5(客户端)中制作了一个 GUI,并使用 C 代码制作了一个服务器。目标是将输入从 GUI 发送到服务器,然后服务器与 FPGA 接口以产生我将从示波器读取的信号(我使用 Red Pitaya 作为我的板)。我目前已经制作了 GUI,并且能够将数据发送到它成功接收的服务器(当服务器在红色火龙果上运行时),但是,我不确定如何使用 Vivado 2019.1 将服务器接收到的数据发送到我在框图中创建的特定输入。我假设

我必须为输入引脚分配一个红色火龙果端口,但不确定在 Vivado 或 C 服务器中的何处/如何执行此操作。

基本上,任何人都可以指出如何将我的 C 服务器代码与 Vivado 中的框图输入接口。

我的红色火龙果板通过以太网连接到我的 PC,并有自己的 IP 地址,我用它在 PuTTY 中运行它的 linux 服务器。我使用 gcc 在 PuTTY shell 中运行服务器。

编辑:很抱歉模棱两可。我要做的是将 Vivado 生成的 .bit 文件加载到我的 Red Pitaya 中,然后在 redpitaya linux shell 中运行我的服务器(TCP/IP)(使用 PuTTY)。关键是,我希望能够将我从 GUI 输入的数据发送到服务器(它将在红色火龙果的 linux 服务器上运行),然后将该数据发送到我的 Vivado 项目中的输入,这将位于加载到板上的 .bit 文件(输入)上。

如果我说的不清楚或者我以错误的方式处理这个问题,请告诉我!

0 投票
1 回答
147 浏览

client-server - 在 Vivado 中写入外设,然后输出到 LED

我想在 Vivado 中创建一个基本项目,该项目接受我输入到客户端的值,该值被发送到我制作的服务器(用 C 语言),然后服务器将该值写入 Vivado 中的外围设备,然后将该数据外围设备中的输出引脚被发送到分配给 LED 的输出引脚,从而使 LED 亮起。

基本上我想从客户端-->服务器-->外围设备-->LED灯亮

例如,在客户端(GUI)中,我想给它一个值,例如 0011,由服务器接收。然后服务器将该值写入外围设备,在这种情况下,LED0 和 LED1 不亮,但 LED2 和 LED3 会亮。

我知道如何在 Vivado 中制作 AXI4 外设,并且已经制作了客户端-服务器 (TCP/IP)。我的问题是我需要什么代码/设计块然后将数据写入外围设备并将其分配给 LED?

我应该使外围设备成为主设备还是从设备?总的来说,我应该如何从这里开始。我正在使用通过以太网电缆连接到我的计算机的 Red Pitaya (Xilinx Zynq 7010 SoC)。

另外,我想通过运行命令将比特流加载到 Red Pitaya 上运行程序(使用 WinSCP)

在PuTTY中(通过IP地址连接到Pitaya),然后在pitaya上运行服务端,然后从客户端发送信号给服务端接收。这是接近它的正确方法吗?

如果无论如何我的逻辑不正确,请告诉我

0 投票
0 回答
90 浏览

python - 如何将连续数据从 Matlab 套接字客户端发送到 C 套接字服务器?

我正在使用运行 Linux 的 RedPitaya 开发板。该应用程序需要在板上运行的套接字服务器和在 Matlab 上运行的远程客户端之间进行通信。我正在使用的 C 服务器代码已经探测到可以与 Python 客户端一起使用,因此,我正在尝试使用我自己的修改来重新创建那个 Python 客户端,以使其符合我的需要。

我将四个数字作为数据传递,但只有一个数字将其发送到服务器。

系统使用 uint32 格式的数字,每个字节对系统都有不同的含义,我尝试更改 Matlab 客户端发送的数据类型,更改操作是同步还是异步类型,将其作为字符串发送,但只是发送的第一个数据似乎从服务器获得响应

这是接收数据的 C 服务器的一部分:

Python客户端以这种方式发送数据:

matlab 客户端相当简单:

我正在以这种方式发送数据:

Python 客户端发送数据,客户端给出以下响应:

而 Matlab 客户端只得到这个

因此,如果有人可以帮助我了解正在发生的事情,或者如果我遗漏了什么,我会很高兴,我对此并不陌生,但也不是专家

0 投票
1 回答
115 浏览

embedded-linux - RedPitaya hello world 挂板

RedPitaya LED 闪烁 schwmatics 我为 RedPitaya FPGA 测试了一个简单的“hello world”应用程序:RedPitayaHelloWorldVHDL。它从 PACKAGE_PIN U18 和 U19 获取时钟,按频率对其进行分配以接收 1Hz,并将计数器输出到 LED。制作比特流并通过命令写入 FPGA 后:

LED 闪烁良好,但 RedPitaya 上的 Linux 挂起。为什么会这样?以及如何避免它?

RedPitaya LED 闪烁

0 投票
1 回答
962 浏览

fpga - 如何驱动 Xilinx 的 DDS 编译器 IP 内核

我完成了Anton Potočniks的红色火龙果板介绍指南,现在我可以将命令从 SoC 上运行的 linux 机器发送到其 FPGA 逻辑。

我想进一步修改项目,以便我可以控制通过红色火龙果的 DAC 传输的信号的相位。第一个 GPIO 端口的一些引脚(从 7 到 1)仍未使用,因此我开始从操作系统中设置它们并使用红色火龙果的 LED 来确认它们正在设置,而不会干扰 Anton Potočnik 的“高带宽”功能平均器”。

然后,我将DDS_compilers 的相位偏移可编程性设置为“流式传输”模式,以便可以使用当前控制红色火龙果 LED 的位动态配置它。我使用了一些切片将我的信号连接到AXI4-Stream Constant IP 内核,该内核反过来驱动 DDS 编译器。

我目前的设置

不幸的是,DAC 只是给我一个 500 mV 的恒定输出。

我为 DDS 编译器创建了一个带有测试平台的新项目,因为综合需要很长时间,并且无法让我深入了解正在发生的事情。

来自包含 DDS 编译器的测试平台的仿真结果

不幸的是,DDS 编译器的所有输出信号都是未定义的。

我的问题:

我做错了什么,如何继续控制 DAC 的相位?


编辑1;是我的测试台

IP核配置如下,所以我提供的很多控制信号应该都不需要了:

IP核配置


编辑2;我将表单的声明更改m_axis_data_tready => '0'm_axis_phase_tready => m_axis_phase_tready_signal. 我还查看了调用的包装文件dds_compiler_0.vhd,发现它同时将m_axis_phase_treadym_axis_data_tready视为输入。

我的模拟结果保持不变......

我的新测试台可以在这里找到。


EDIT3:Vivado 只是给了我旧的模拟结果——创建一个新的测试平台,删除下面的文件<project_name>.sim/sim_1/behav/xsim/simulate.log并重新启动 vivado 解决了这个问题。

我注意到包装文件 ( dds_compiler_0.vhd) 只有五个端口:

  1. aclk(在)
  2. s_axis_phase_tvalid(在)
  3. s_axis_phase_tdata(在)
  4. m_axis_data_tvalid(出去)
  5. m_axis_data_tdata(出)

所以我删除了所有不必要的控制信号并获得了新的模拟结果,但我仍然没有从 dds_compiler 收到任何有用的输出: 无控制信号

相应的测试平台可以在这里找到。

当我包含控制信号时,我也没有得到任何有效的输出。 带控制信号

相应的测试平台可以在这里找到。

0 投票
0 回答
72 浏览

python - 如何解决“TypeError:不支持的格式字符串传递给 OSError.__format__”?

我将此模块调用到我的代码中,但是它会导致我不理解或不知道如何修复的错误。

这是代码:

这是错误:

请帮忙。

谢谢!

0 投票
0 回答
65 浏览

c++ - 共享库中的 Lua 与 Nginx 或 websocketpp 冲突?

我正在使用红色火龙果板(版本 125-14),其中用户应用程序(编译为 .so 文件)根据 Web 请求在 nginx 中动态加载。更具体地说,Nginx 启动一个 websocket 服务器并加载应用程序以处理 websocket 数据。最近我想在我的应用程序中集成 lua,但是一个基本的 lua_pcall 会导致段错误。

所以我在编译Lua的时候加了-g,用gdb看看有没有更多的信息。这就是我通过回溯得到的:

看来传入的函数指针无效(0xfffffff0)。这意味着 Lua 堆栈有问题吗?

将确切的代码编译为独立的可执行文件是可以的,没有段错误并且结果是正确的。

0 投票
0 回答
42 浏览

sockets - 编写通过 TCPIP 套接字与 pyvisa 通信的 SCPI 服务器时出现问题

我正在尝试用 C 语言编写一个在 redpitaya 上运行的 TCP-IP 服务器,它可以与 linux 主机(客户端)上的 pyvisa 作为 TCPIP::SOCKET 资源进行通信。

我可以连接到服务器并且服务器确实从客户端接收命令(例如*IDN?)。但是,客户端只是没有收到服务器发回的任何答案: read_raw() 只是超时。我可以通过 tcpdump 验证答案是否由服务器发送并由客户端确认 - 但它只是无法通过 pyvisa。

如果客户端以相同的方式与某些仪器通信,我会收到对 *IDN? 的有效回复。如果我发送 *IDN? 到我的服务器(例如通过腻子)我也得到了有效的回复。回复只是没有通过pyvisa。

顺便说一句:我与 redpitaya 分发的“官方”SCPI 服务器有相同的行为。

我可以提供更多细节,但也许有人已经暗示了我所缺少的东西。

沃尔夫冈