- Hardware & Machines
- Computers and Hardware
- LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
02 Aug 2024 14:19 #306742
by cornholio
Replied by cornholio on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
When running within the context of Linuxcnc in a basic setup 21 byte packets are being sent via UDP back and forth at the servo thread speed of 1ms, now that 21 bytes doesn’t include the source & dest port and addresses.
If you have a look at the figures on the wiz net wiki you’ll see as packet size drops so does the overall throughput.
So it would be interesting to see how it would go sending smaller packets back and forth at 1ms intervals, as this would being replicating what the situation is when running Linuxcnc.
I will try and have a look but I’ve only access to Xilinx and Lattice stuff ATM. Tho I do have a few W5500 modules in 2 different formats.
If you have a look at the figures on the wiz net wiki you’ll see as packet size drops so does the overall throughput.
So it would be interesting to see how it would go sending smaller packets back and forth at 1ms intervals, as this would being replicating what the situation is when running Linuxcnc.
I will try and have a look but I’ve only access to Xilinx and Lattice stuff ATM. Tho I do have a few W5500 modules in 2 different formats.
Please Log in or Create an account to join the conversation.
02 Aug 2024 14:29 #306743
by Mecanix
That'd be awesome man. Let us know what you come up with when/if you can.
Have a good one [beer_cheers_emoji_here!]
Replied by Mecanix on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
Yeah standard .v clocking stuff. Just need to change your pinouts (pin mapping in the *cst, in it current format).I’ve only access to Xilinx and Lattice stuff ATM.
That'd be awesome man. Let us know what you come up with when/if you can.
Have a good one [beer_cheers_emoji_here!]
Please Log in or Create an account to join the conversation.
02 Aug 2024 14:48 #306745
by Mecanix
Impl. Ref: docs.wiznet.io/Product/iEthernet/W5500/Application/udp
Replied by Mecanix on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
All I could find is the implementation and proposed data integrity stuff. I know you're past your daylight but when you have a chance tomorrow, see if you can find that bit of info you ref'ed and we'll talk to their engineer about it. See if we can flip a Magic Register to disable that supposedly/suspected throttling thingy...If you have a look at the figures on the wiz net wiki you’ll see as packet size drops so does the overall throughput.
Impl. Ref: docs.wiznet.io/Product/iEthernet/W5500/Application/udp
Please Log in or Create an account to join the conversation.
02 Aug 2024 15:28 #306749
by meister
Replied by meister on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
I did a test with the new w5500.v, initialization of the IP seems to work, I can ping.
but port 2390 is not open
so I can't communicate with it either
but port 2390 is not open
![:( :(](/media/kunena/emoticons/sad.png)
Please Log in or Create an account to join the conversation.
02 Aug 2024 15:43 #306754
by Mecanix
I'll schematic the rtl8211 silicon and passives for you, pass on BOM, and contribute a 100/1000 verilog for RIO tests soon.
Replied by Mecanix on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
Snap, that can't be good. Wonder if the socket got opened correctly... need a look at. More and more I think about it though, let's just 'fuck it' (pardon!) and go full 1000 gaga-bit phy/mac from the ground up. Placed my original idea/proposition on order, should get in here in about 72hrs.I did a test with the new w5500.v, initialization of the IP seems to work, I can ping.
but port 2390 is not openso I can't communicate with it either
I'll schematic the rtl8211 silicon and passives for you, pass on BOM, and contribute a 100/1000 verilog for RIO tests soon.
Please Log in or Create an account to join the conversation.
02 Aug 2024 15:49 - 02 Aug 2024 15:51 #306755
by Mecanix
Replied by Mecanix on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
In a meantime, you can Find string "~~~required?~~~" and uncomment everything that is commented related to destination addr/port. Set your computer address for the dest and port 6000. Probably what's going on.
Last edit: 02 Aug 2024 15:51 by Mecanix.
Please Log in or Create an account to join the conversation.
02 Aug 2024 17:14 #306764
by meister
Replied by meister on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
puhh, realy gigabit ? hmm, if it's work
i can run LAN8720 & RTL8201F on the tangprimer, so there is allready code for it as a base
at the moment, i try to debug a little bit the old w5500 driver and found out that it do not receive the last package
i can run LAN8720 & RTL8201F on the tangprimer, so there is allready code for it as a base
at the moment, i try to debug a little bit the old w5500 driver and found out that it do not receive the last package
The following user(s) said Thank You: Mecanix
Please Log in or Create an account to join the conversation.
02 Aug 2024 17:20 #306766
by Mecanix
Replied by Mecanix on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
@meister
A 1000 meg base ethernet/phy onto "rgmii_txc & rgmii_rxc" buffers. Have a look and let us know if RIO can deal these two buffers.
Let's get this lag over with and league up a notch!
Synthesized, Placed and Routed Code in hands. If interested, DM an address I can send bitstream source too [16mb].
RTL8211FD Schematic attached (pdf). Same real-estate as the wizzy part, 10x performance increase though.
A 1000 meg base ethernet/phy onto "rgmii_txc & rgmii_rxc" buffers. Have a look and let us know if RIO can deal these two buffers.
Let's get this lag over with and league up a notch!
Synthesized, Placed and Routed Code in hands. If interested, DM an address I can send bitstream source too [16mb].
RTL8211FD Schematic attached (pdf). Same real-estate as the wizzy part, 10x performance increase though.
Please Log in or Create an account to join the conversation.
02 Aug 2024 17:24 - 02 Aug 2024 17:25 #306767
by Mecanix
ps. yes gigabit phy. Correct. If you need the bitstream, shoot an addy I can email -or- a drag & drop box.
Replied by Mecanix on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
I'll standby. That's awesome news to hear, I know you'll figure it out with time. Oh man!!at the moment, i try to debug a little bit the old w5500 driver and found out that it do not receive the last package
ps. yes gigabit phy. Correct. If you need the bitstream, shoot an addy I can email -or- a drag & drop box.
Last edit: 02 Aug 2024 17:25 by Mecanix.
Please Log in or Create an account to join the conversation.
02 Aug 2024 18:17 #306774
by meister
Replied by meister on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
we have 2 buffers like this:
reg [31:0] tx_data;
reg [31:0] rx_data;
when a packet is received on port 2390 (UDP),
it should be written to rx_data and the data from tx_data
directly send back to the sender.
thats all in the first step.
later we need a check if the received package have the correct ID
I am one step further with the w5500,
the problem is here:
rx_size is only 8bit, so it will not send back a package and then we get the timeout
....
reg [31:0] tx_data;
reg [31:0] rx_data;
when a packet is received on port 2390 (UDP),
it should be written to rx_data and the data from tx_data
directly send back to the sender.
thats all in the first step.
later we need a check if the received package have the correct ID
I am one step further with the w5500,
the problem is here:
end else if (state == STATE_RX_START) begin
rx_buffer_read_pointer <= rx_buffer_read_pointer + data_read[7:0];
if (rx_size == (BUFFER_SIZE_RX+HEADER_SIZE)) begin
stat <= 3;
rx_buffer_valid <= 1;
current_instruction <= {8'd0, rx_buffer_read_pointer, BSB_S0_RX_RWB_READ};
spi_clk <= 1'b0;
state <= STATE_PULLING_DATA;
spi_chip_select_n <= 1'b0;
spi_clock_count <= 10'd0;
is_busy <= 1'b1;
end else begin
stat <= rx_size;
rx_buffer_valid <= 0;
state <= STATE_RX_WRITE_PTR1;
is_busy <= 1'b1;
end
rx_size is only 8bit, so it will not send back a package and then we get the timeout
....
Please Log in or Create an account to join the conversation.
- Hardware & Machines
- Computers and Hardware
- LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
Time to create page: 0.173 seconds