Hi all,
I'm looking for opinions on a user-interface + controller solution for various lab-instrument ideas I have.
Desirable features:
- touch-screen 4" or larger for user input and display
- open-source toolchain (compilers, programmers, etc). programming/debugging over USB or some other common standard.
- existing real-time OS + graphics/touch-screen library
- application programming in C or similar high-level language
- SPI bus for communicating with one or more DAC/ADC chips (I'd want probably up to 5, maybe 8 SPI-chips connected for some projects)
- enough processing power to run PID-loops, digital filters, and datalogging on 24-bit or more (32-bit) numbers at 1 Hz to 1+kHz loop frequency. integer math is probably enough (i.e. floating-point not a strict requirement)
- datalogging onto e.g. SD-card
- possible ethernet connectivity for publishing data, pushing it to a database-server, or remote operation/monitoring of device
- possible battery/LiPo operation (charger circuit would be nice also)
- small, affordable
I've been looking at a standard PC (ITX-motherboard) + FPGA-card based solution, but this is overkill in terms of size and performance for e.g. simple temperature-controllers or data-logger applications.
Then there is e.g. Olinuxino
https://www.olimex.com/Products/OLinuXino/
but again a whole linux-distribution, a possible xenomai real-time kernel, etc. seems a bit overkill.
I'm not sure how easy/hard it is to do SPI on the olinuxino.
Or indeed the quite similar BeagleBoard and its derivatives.
So any opinions on a microcontroller-based approach? Any suitable dev-kits out there?
Any opinions on how to choose between PIC / AVR / ARM / other?
I'm more constrained by time than money, I need something that "just works", preferably open-source, easy to program, where I can develop the analog IO cards myself and just plug them via SPI into the UI/controller board - at least that's my plan now...
thanks for your input,
Anders
OK, opinions
-An Atmel processor
32 bit UC3 or ARM chips come with touch support, DSP libraries and Atmel's Framework that at least gets you up to speed relatively fast even if you don't want to use the actual code in you final prject.
-Atmel Studio toolchain (AVR-gcc, includes everything you need out of the box, very good debugging using genuine Atmel tools (JTAGICE II or 3). While the IDE is closed source, the compiler/linker is not. Debugger - why care when it just works.
-FreeRTOS or ChibiOS, possibly the latter in this case. Lean & mean, no needless fluff. Open source.
Touch library from Atmel, graphics libs - should be findable from Inet.
-C and C++ as supported by gcc, uncrippled.
-More SPI, I2C, CAN whatever, more than you will ever need, subject to chip choice.
-Processing power - sure. Required things no problem.
-SD card doable
-Ethernet doable. At least UC3A AVR series has Ethernet MAC, as well as AT91SAM ARMs
-No battery chargers in MCUs...
-Small - yes. Affordable - i guess.
Me an Atmel fan? Naa...
But really, in some sense this is like a shopping list for a high end Atmel chip. Of course the same might apply to other mfgs as well. The downside is that you need to design the actual dircuit/board. But then that's where the fun is for me, hence this kind of answer. As for ready made solutions - let others bother.