by gbulmer » Wed Feb 20, 2013 10:07 pm
The proposal for "Parallella Stackable Daughter Boards – Tabs" is very impressive. With that much processing power (which will grow in the future) it is highly desirable to enable very high-bandwidth communication.
However, I wonder if it is more sophisticated than some use-cases require to complete them? I envisage many folks will get the high-bandwidth boards 'ready made' but may have projects which need lower-bandwidth signals too in order to complete them.
After all, Parallella is less than 3x a Raspberry-Pi or Arduino Due. So I think Parallella is within the budget of undergraduate and hobbyist 'embedded' projects. Hence the ability to easily add simple hardware may be an important attraction to a wider user community.
I am assuming there will be a very broad range of interest and capability, with many people having stronger software capabilities and less experience in making hardware. Designing and building a ziport may be more than they feel comfortable doing; for some people it may be an insurmountable obstacle preventing them from applying Parallella.
So, as well as Ziports, also offer something simple, widely available and familiar.
How about SPI? It is simple and fast enough for many simple I/O needs, and much faster than I2C. Using a few of the FPGA PEC's to provide something as 'cheap and cheerful' as SPI may enable folks to get onto the 'Parallella train' and make a more diverse range of 'add-ons' and projects. Most microcontrollers (MCUs) support SPI 'out of the packet', and using an MCU to interface to the 'outside world' may enhance Parallella's flexibility.
For example, a Cortex-M0/3/4 is enough horsepower for simple I/O. Some have as much as 20msps 12-bit ADC, and so could provide interesting data volumes. Cortex microcontrollers start at about $1, so hardware based on those types of devices should be within most projects' student and hackers hardware budgets. Further, the Parallella itself may run the development toolchain for ARM based MCUs.
Even a single SPI would have useful throughput. An Arduino's AVR can handle quite a lot of 'dumb stuff', and it is highly unlikely that it could saturate SPI. Cortex-Mx has more than enough horsepower for a few stepper motors, Brushless DC motors, or closed loop control for DC motors with encoders (using MCU intelligence); some 9+DOF inertial measurement units (IMU) use a Cortex-class processor. Parallella may then be free to handle video, LIDAR, analysis, strategy, etc.
A very simple interface like SPI might enable Parallella to be embedded into a wider variety of projects, while requiring less expertise and time. To get folks started, we might produce a 'skeleton' PCB (e.g. using Eagle), or even one with a low-cost MCU, so folks could easily build the lower-throughput interfaces. For example, someone might add a small LCD display, a few buttons and a LiPo battery charger and monitor, so that Parallella could be embedded in a battery powered device, and used 'in the field'.
The actual use of PEC signals is soft, because of the FPGA, but it would help to recommend a connection strategy to complement the ziport. For example, SPI might start on the left, i.e. the opposite end from ziport, and the signal pin assignments need to be defined.