I considered the DS212 as a starting point, but it’s too “slow” compared to what I want. 1 MS/s is
two orders of magnitude slower than what I want. Even with a 1 GHz processor, to do it all through the CPU, I’d only have 10 (20 for some RISCs?) cycles to read in 8 bits of data and save it to RAM. I’d then have no processor time to draw the GUI unless I use a dual core processor. But a dual core has downsides with shared RAM (delays when accessing RAM “owned” by the other core, etc.).
As for an update: I think I’m settled on the AD9288-100 for the ADC. It’s ~$23 for dual inputs with 8-bit 100 MS/s output.
Re: the BeagleBone, it seems people have mixed opinions, but for its price and its features, I can’t find anything with as big a community that presents a compelling reason to switch. While yes, the community is more IOT focused now, there’s thousands (or more) of articles about how to take advantage of, or “hack,” it. I’m still open to ideas though.
I’m still unsure of what FPGA I should use. I’m also confused on how I would implement external RAM used by the FPGA and accessible by the CPU. Should I make the BeagleBone access RAM through the FPGA using an “interrupt” like feature? Or should I do something else? I wasn’t around decades ago when 80s computers had to share RAM between the CPU and the “GPU”, so I don’t know how that was implemented. Any tips on that would be appreciated. I did find
this SO question on external SRAM DMA, but there’s no answers.
For the software stack, I’m a C# guy, so I’d love to use that for the GUI (but I’m fine using C for the PRUs if need be). I saw a blog post of someone getting Windows Embedded/IOT running on the BeagleBone, but from what I’ve read,
the BeagleBone uses a nonstandard ARM core that’s not compatible with Windows IOT. I know this isn’t really the place, but any suggestions on a cross platform GUI would be nice. I’m currently looking at Mono plus Eto.Forms (which uses Gtk# under the hood) running on some tiny Linux distro (maybe Arch?), but I’m open to ideas.