And I heavily assume you're using UDP with the usual packet drop reality and corresponding handling included, so your DPCM-unit has to packetize, of course. The Soft-CPU is then only used for setup, networking/command state and interrupt handling. But there's a bit of a shopping list of things you need to have, like a proper scatter-gather based DMA and a UDP stack that plays well with it (unlike lwip). I've based pretty much everything on RTP/UDP which gives a sufficiently good timestamp for most applications, when you have a good 90 kHz source. That should by far apply to thermocouple data, unless it's very noisy and when you'd want to keep that noise. For most analog data you can use lossless (or quantized/lossy) DPCM methods and obtain compression factors < 1/10. I've got some reference solutions based on ECP5 and the good old Spartan6 using a 100MBit DMA-driven Soft-EMAC. But they have their point, you might also want to check the 'Red Pitaya' approach. Programming those in bare metal is quite a bit of a pain, and the SoC interfacing involves quite some overhead, if you're doing it the 'X' way. The Zynq Stuff is far too heavy weight for what you're trying to achieve. You probably don't need a 7020 for the application you've described (and it's like 100 euros a chip, so quite expensive.) A 7007S is probably enough, providing you don't need to do much DSP with what you capture. But, if you have not designed with an FPGA before, the learning curve can be pretty steep. If power and supply chain are not major issues for you, then the Zynq is a good chip and I do find it quite pleasant to use. If you get this right, then the CPU DMA can also be used so you can do a fast copy into main memory or you can work on the data directly as a memory mapped interface. The FPGA can emulate this interface, so your CPU just reads/writes at addresses. Another option is to couple a regular-old FPGA with a parallel bus interface on some CPUs, e.g. This also means you need a boot device of some kind, we use SD cards but it can boot from QSPI and NAND as well, and technically eMMC but this has poor official support. The FPGA does have SRAM arrays to hold state once programmed, but still, it's going to be tight without DDR. Note that the program needs to fit into this as well (no onboard flash to hold application), so DDR is pretty much essential for all but the simplest designs. The Zynq only has 256KB of usable OCM RAM (you cannot use the L2 as a RAM unlike some CPUs), if you need any more then you will need DDR. With any work done on the CPUs or if the DDR is busy then power is going up to 1.2-1.5W. The lowest we have achieved is around 0.8-0.9W with both CPUs asleep. Zynq is a good processor, but if you want to buy it on volume then prepare for 12-18 month lead times or to buy on greymarket (though not as bad as Spartan 6) If power consumption is your goal then you will struggle with a Z7000.
#Fastcopy buffer size gigabit ethernet series#
I wanted to ask you your opinion of using the Zynq 7000 series for this application as well as potential alternatives that you have in mind. The uC is powerful and they have an FPGA which could handle reading the data from the ADC's and putting it in a easy way for the uC to send it over Ethernet (gigabit). I have seen the Xilinx Zynq 7000 series (the 7020) and they seem attractive for the application. This is a limitation I can not overcome with more powerful dual core STM32H7 2- High speed acquisitions (each ADC channels could go up to 144KSPS) in interrupt time can be handled but in limited numbers For 16 channels + 18 thermocouples I manage somehow to get it working, but for a bigger setup the uC come to its limits. While the STM32H7 series is a very powerful microcontroller, I face some limitations: 1- Ethernet is just 10/100, so the data I can send is limited. The board controls as well digital outputs and contains other secondary functions. I am driving several ADC's each sending 8 channels to the uC as well as several ADC's reading thermocouples and sending the data over ethernet. Hello, I am currently developing an measurement and control board based on the STM32H743 microcontroller.