Forum Discussion
Thanks Dave. i read through the jtag-to-avalon document and a bunch of interesting stuff on your Cobra web site. It looks reasonably easy to impletment the JTAG, but as you said, it's not really fast enough. My intention had been to put a DE0-nano on a simple mother board with an SD card for data recording and perhaps an external USB inteface if necessary, because I'd rather avoid having to lay out and assemble a complicated multi-layer board. But this project is a retrofit that has to go inside of existing electronic boxes on our sounding rocket payload, and a more careful survey of the available volume shows that while we have quite a bit of area (we had a 6x7" board there for the previous implementation), we only have enough height for a daughter board over an area that's not quite big enough even for the DE0-nano.
So my current thought is to try the new DEO-nano-SoC, which has built-in microSD and high speed USB (using 3300 OTG chip). If I remove several extraneous connectors, it will fit nicely. It has an ARM processor side, but my first thought was to keep the power consumption low by shutting down that side and just using the FPGA. On looking at the schematics, however, it appears that both the SD card and the USB are only connected to the ARM side, so I'd have to have it running. Do you have any feeling for the minimum power it might use? Our total througput is about 150 kB/s. (I have a board on order, but not in hand yet to try.) We could go as high as 2.5 watts for the board if necessary, but thermal management will be easier if we can keep it down to a watt or so. If the power is OK, this seems to make the implementation pretty easy. The FPGA side is reduced to a few shift registers and a FIFO. For the server end of the USB link, I looked at the libusb user-level software as you suggested (turns out it's already installed on our Linux machines), and it appears pretty straightforward to use for what we need as long as the slave end responds properly. So the main part I'm unsure of is whether the Linux that comes with the SoC-nano has something like "USB_Gadget" support that connects higher-level stuff to the 3300 chip, which by itself appears to be pretty low level.