This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Microcontrollers Vs FPGAs

I'm working on the design of dialysis machine....it includes a number of analog n digital sensors (temp,pressure,flow,conductivity,air detection), valves, pumps etc along with control of heaters, interfacing with display etc...what should I work on- will MSP430 coupled with a beagle board be a cost effective approach?

or how about FPGAs? keepin in mind the advancements in FPGAs frm Xilinx and Actel....

Looking for cost effectiveness plus reduced size...but on par with the efficiency of current machines

  • Is this dialysis machine for dogs? Using beagle board may be cute but boarders animal cruelty. Do not even try to use your dialysis machine on animals big or small.

    If this is just an exercise to practice you skills, go ahead and use anything that you want to practice on. FPGA is good for fast (relative to micro-controllers) digital operations. Micro-controllers are more cost effective for complex digital processing if the speed is acceptable. MSP430 is a micro-controller with some on-chip analog peripheral that you may need.

  • From a technological perspective you could use the Beagle board class CPUs / DSPs, OMAP, Sitara, and you could use MCUs like the MSP430 or C2000, or you could use mixed signal FPGAs like Actel SmartFusion or digital FPGAs like Altera Cyclone III/IV, Xilinx Spartan 6/IIIA, or whatever.  The technology isn't that complicated, so most of the commodity parts from most IC vendors could solve your technology related sensor / signal processing needs.

    However if you're talking about designing something that has to comply with various medical use certifications and FDA testing and all that you will have to plan from the beginning about what ICs are even available with the right kinds of medical use licenses, quality grades, et. al.  Furthermore the software for each and every MCU including the libraries and such may need to be developed / tested / certified specially for your application to ensure it is able to pass the approvals necessary and be safe and reliable in the end application.  Not every consumer oriented MCU / FPGA or its available "free software libraries" may be suitable because of any applicable compliance requirements and licensing issues.  I suppose the requirements for a non-implantable non "life support" sort of theraputic device like you're after may be a bit less strict than for something like a pacemaker, but, still, you should understand how your compliance / quality / reliability requirements shape the kind of hardware and software you use.  Also consider issues like vendor assurances for long term availability, notification of product changes, ability to provide certified "same as before" product revisions licensed for your end use etc.  Whether they provide any kind of 100% burn in or other higher than consumer grade reliability screening and parameter testing or what not.

    Further you say nothing about the volume you're expecting to sell.  What is a cost effective solution for something that has a market lifetime of 3 years per model at a volume of 1 million units / year is probably totally different than something that has to be on the market for 10 years at a volume of 10k units / year. 

    Offhand it sounds like you're after something like a TFT LCD capability for a display / UI otherwise I'm guessing you might not need a processor in the class of the OMAP on the beagle board if you just had a need for segment LCD / simple dot matrix graphical UIs as you could achieve with an MSP430 or Stellaris part or embedded MCU in a FPGA or such.  So, yes, if you want a big TFT LCD you should look at the OMAP class parts or Sitara or some of the Cortex M3/M4 parts with LCD controllers due on the market within the next several months by various vendors.  If you just need a segment or dot matrix type of display or can use a SPI / I2C type of interface for one, there's really not a lot of need for something like an OMAP/Sitara if you don't need a high powered DSP and megabytes of RAM and USB / Ethernet and such.

    MSP430 apparently gets used in various medical devices from the look of their app notes like pulse oximetry and what not.  The pricing isn't bad for some of the higher end parts that would compete with small FPGAs or low end Cortex M3 sorts of parts, and the software is more "bare metal"  on the MSP430 so maybe it'd be easier to get written and approved.

    On the other hand spending a couple dollars more on a Cortex Mx or A8/A11 type CPU maybe with a DSP like the OMAP or Sitara or whatever does get you a lot more processing power and easier software development if you're able to take advantage of the free or commercial libraries and such that you'd likely want to run an RTOS and other sorts of application oriented middleware on those parts.

    One reason companies push FPGAs to the specialty device markets is that they claim that using a soft-CPU inside a FPGA gives you more insurance against part obsolescence since they say that some FPGA families may be easier to find in continuous multi-year production than some kinds of MCUs, and that you can probably port your code / hardware design / soft CPU FPGA IP more easily and transparently between successive generations of FPGA than you could hope to maintain software and design compatibility to some extent from one generation of MCU to another.  I don't think there's a clear winner, but for some applications and some types of designs and some MCUs they're probably right.  The other reason to use FPGAs is that you can custom synthesize various kinds of state machines and logic and such in addition to software controlled I/O so for speed / reliability reasons it may be better to implement some control systems "in hardware" rather than "in software" where possible if they're performance or reliability critical and it would be difficult to have adequately quality assured control software due to the risks of software reliability uncertainties.  Other than that, FPGAs are usually quite a bit more expensive for any given control function if they're competing with what you could otherwise accomplish using a MCU like the MSP430 or OMAP or Cortex Mx; they'd have to offer some other compelling performance or design flexibility / portability advantage to your application to be worth going from say a $15 MCU to a $25 FPGA or whatever though really it depends on how much MCU you need and how much FPGA you need -- the soft FPGA CPUs usually at least take enough FPGA in the case of the 32 bit soft CPUs to be priced a fair bit more than vanilla 16 bit / 32 bit commodity MCUs though.

    You will probably also find the design complexity being a lot higher for the FPGA approach than the MCU approach if a COTS commodity MCU with some ADC/DAC/peripheral drivers can implement your application, so that's something to think about.  If you're going to be implementing things like LCD TFT controllers and DDR DRAM interfaces and  whatever it will certainly cost a lot more for FPGA IP for 32 bit CPUs and DRAM controllers and LCD controllers and whatever than just using what is "free" with say the OMAP/Sitara that includes all those peripherals and drivers (albeit IDK about the certifiability/licensing issues for any of that).

    There are various mixed signal ADC / DAC / PWM control MCUs like the Stellaris ones and ADUCxxx ARM based parts and whatever in the Cortex M0-M4 families that are pretty low cost and simple to develop with, so for the control / DSP functions those may be adequate, but I don't know about the UI or networking aspects you may want that would dictate something higher end.  A couple of the LM3S9B9x eval kits do have LCD interfaces and such, though I'd expect higher performance from some of the next generation Cortex M3/M4 parts coming out in 2011 with DRAM interfaces and TFT controllers on them.

     

     

  • Hi,

    if you still can't decide if you want to use a microcontroller or a FGPA why not use them in one package? Have a look at Microsemi's website for the SMARTFUSION series (FPGA + Cortex M3) - http://www.actel.com/products/smartfusion/default.aspx

    Rgds
    aBUGSworstnightmare 

    Pls note: Cheap is something different!

  • Hi all,

     

     

    You can use a soft core processor.. it means a processor desing in an FPGA(processor in VHDL+ some hardware architecture blocks), it's not so performant but it works well... there's some options in altera and in actel in proasic and Igloo with an ARM Cortex M1 inside,

     

     

    Gabriel Legarda

  • Thank you C. Hayes;

    That was one helluva good comment from your understanding of both sides of the fence. You must have done a thorough design study before on the same topic; hence the insightful knowledge 

**Attention** This is a public forum