Home Artists Posts Import Register

Content

So I've been trying to find a combination of microcontrollers, DACs and ADCs that can operate 3 OSMU channels (= 12 DACs + 6 ADCs + a few digital pins) simultaneously, with reasonable speed (= hundreds of kHz or even a few MHz?) and are easy to opto-isolate.

There are some attractive all-in-one solutions here: http://www.analog.com/en/parametricsearch/11289 or http://www.ti.com/product/LMP92018 or https://www.maximintegrated.com/en/products/analog/data-converters/analog-to-digital-converters/MAX1329.html

But my initial plan of controlling all 3 channels with 1 SPI bus seems totally unrealistic.

1. Option: An STM32F302 on every output stage. It has fast ADCs and DACs and it could get its program from a central UI controller before running. It would need clock distribution tho and data output would have to happen sort of asynchronously.

2. Option: A central Xilinx Zynq which is an ARM Cortex-A9 for the UI and connectivity and FPGA for the high pin count, high speed control of all the discrete DACs and ADCs. It needs a lot of digital isolators and the component itself is not cheap.

Personally I like the second option better, because I've been making excuses for not learning FPGA stuff for far too long. It's also easier for firmware updates and I don't think it would scare away community software developers - they can just have their way with the SoC and never even touch the FPGA side.

Thoughts?


I also want to connect the output stages via PCI-E or some other card edge connection, so that users can replace them, or swap high-current / high voltages modules later ...

Files

Cora Z7: Zynq-7000 Single and Dual Core Options for ARM/FPGA SoC Development

The Digilent Cora Z7 is a ready-to-use, low-cost, and easily embeddable development platform designed around the powerful Zynq-7000 All-Programmable System-on-Chip (APSoC) from Xilinx. The Zynq-7000 architecture tightly integrates a single or dual core 667MHz ARM Cortex-A9 processor with a Xilinx 7-series FPGA.

Comments

Anonymous

I'd suggest using the FPGA. I haven't really analyzed the requirements, but maybe a Spartan-6/7 FPGA is enough? It is just an FPGA, without APUs or similar, but you might get the same functionality using MicroBlaze Softcores running on the FPGAs in addition to the high speed control logic. Might make it way less pricey.

marcoreps

That sounds pretty scary tbh 😳 But I have this: <a href="https://www.scarabhardware.com/minispartan6/" rel="nofollow noopener" target="_blank">https://www.scarabhardware.com/minispartan6/</a> It was abandoned by the developer but maybe I can give it a try ...

Anonymous

FPGA. For motivating community towards FPGA.

Anonymous

The Zynq looks like an elegant solution. Make sure the ARM side does what you want. Is the reference linux distro going to suit your needs and drive your UI without too much pain?

Anonymous

Is there an open source toolchain for the xilinx fpgas? Im not sure that this is even important. At least there seams to be a linux installer for the SDK on there downloadpage.

Anonymous

unfortunately no. There is for Lattice devices, but not for Xilinx/Altera afaik.

TweakoZ

There are also the raw fpga's (cmod-a7, arty-a7, etc..). You can integrate a softcore into the FPGA pretty easily with open source tools using migen/misoc/litex. as a bonus, litex will even generate a gcc toolchain and runtime library for you. If you are making your own board you could just put the fpga on the board and save a few more bucks. assuming you can pull off &lt;= 1mm pitch bga's. A link for you: <a href="https://www.bunniestudios.com/blog/?p=5018" rel="nofollow noopener" target="_blank">https://www.bunniestudios.com/blog/?p=5018</a>

marcoreps

'pretty easily' sounds good! I've read some intriguing things about Xilinxes Vivado software, but it appears to be super expensive and even if I could get a license, it would probably not help the open source aspect much ?

Volodymyr Babchuk

I also suggest to use FPGA. I had an experience with network of MCs. Albeit it is fun to flash one MC from another during startup, I can't say it is convenient to debug such setup. If you can do all your job using one package - do it.

Dillon Nichols

I've been using the Zynq devices at work and have learned to hate Vivado for the high speed interfaces (DDR3, Aurora, PCIE). I haven't used the ADCs or DACs to know if their IP is any easier. The ARM side is easy-ish but there's so much abstraction that it gets confusing sometimes. I agree with others that an FPGA sounds best for your design and you'll learn a lot, but I can assure you that you'll get frustrated with the tools during your design.

marcoreps

Wonderful to have so many experts here, in case I run into problems ;) Is there anything better than Xilinx Vivado I should try?

Vinicius Miguel

I know the post is old but I think a small processor in each one of the daughter cards is the best option, this way you can simply use an isolated I2C to set the parameters without delay worries. Second benefit is that you eliminate the FPGA, the bom cost will be much lower.