Products > Test Equipment
Stream 10MB/s from PC to GPIO
(1/3) > >>
lemontree:
I'm building a switched-mode amplifier that needs a digital bitstream as input. It's a full bridge and - due to the specific switching scheme - needs multiple control signals (say 8 bits in total). The sigma-delta bitstream runs at frequencies up to 10MHz, so I need 10MB/s signals. Although the pattern could be generated in an MCU, it would really be a lot easier if I could use Matlab/Simulink/Python on a PC. So then I need a device with either a very large memory (say 100s * 10MB/s = 1GB), or send it in real-time to the amplifier. In our lab we have very nice equipment with large buffers, but I want something cheaper and more portable, so I'm aiming for streaming now.

Does anybody know a 'cheap' (< 1k€) device that can do this?

Searching online I seem to end up in 2 directions:
1) very expensive testing equipment
2) something like FT232H, which is nice, but I'm not sure it reaches the spec and frankly, I don't feel like the datasheet digging, programming, debugging, etc. I might have to - and will - do it eventually, but it would be great if something like this already existed.

Any help appreciated!
radiolistener:
PC is unable to send such a stream at fixed transfer speed. You're needs some buffer device which can receive data chunks from PC put it into FIFO buffer and then send it to your GPIO at fixed speed. You can do it with FPGA chip + gigabit ethernet PHY. You're needs to implement some UDP stack in hardware, and just push the received data into FIFO and pop it into your GPIO at required sample rate...

You can do it on some FPGA evaluation board which has GMII PHY on the board. It will cost you about 50-100 USD. But you're needs to write gateware for it.

You can get UDP stack implementation in verilog here: https://github.com/alexforencich/verilog-ethernet
It has examples for different popular FPGA eval boards and can be ported to your own hardware.
langwadt:

--- Quote from: radiolistener on July 18, 2023, 09:51:21 pm ---PC is unable to send such a stream at fixed transfer speed. You're needs some buffer device which can receive data chunks from PC put it into FIFO buffer and then send it to your GPIO at fixed speed. You can do it with FPGA chip + gigabit ethernet PHY. You're needs to implement some UDP stack in hardware, and just push the received data into FIFO and pop it into your GPIO at required sample rate...

You can do it on some FPGA evaluation board which has GMII PHY on the board. It will cost you about 50-100 USD. But you're needs to write gateware for it.

You can get UDP stack implementation in verilog here: https://github.com/alexforencich/verilog-ethernet
It has examples for different popular FPGA eval boards and can be ported to your own hardware.

--- End quote ---

FT2232H will do about 40MB/s in sync fifo mode, so it can probably do a 10MB/s stream with buffering

DavidAlfa:
I could only think on streaming the data to a fast stm32 with HS USB, which would be running a 10MHz timer controlling DMA transfers from a circular buffer filled by the USB into a GPIO port or perhabs the FSMC peripheral.
radiolistener:

--- Quote from: DavidAlfa on July 18, 2023, 10:31:38 pm ---I could only think on streaming the data to a fast stm32 with HS USB, which would be running a 10MHz timer controlling DMA transfers from a circular buffer filled by the USB into a GPIO port or perhabs the FSMC peripheral.

--- End quote ---

I suspect even top performance STM32 with HS mode USB will be unable to handle it. This is a classic task for FPGA, because it requires to do a simple synchronous operations at very high clock speed.
Navigation
Message Index
Next page
There was an error while thanking
Thanking...

Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod