0
\$\begingroup\$

I am very new to picking microcontrollers for projects. I have a project in which I have 16-bit data coming in from an amplifier/ADC. Simply put, I would like the microcontroller (very low power and in dimensions in range of ~7mmSQ,STM32 based also preferable) to manage the 16-bit data coming in. Is there a specific property in microcontrollers that governs what resolution data it can manage? What is the name of that property? Also, is there a good website for understanding how to choose microcontrollers for projects? Any help appreciated!

I realize the question is very vague but I am just starting out and would love to learn more about how to pick the right hardware any way I can.

\$\endgroup\$
  • \$\begingroup\$ What's the sampling rate? Is the ADC external? Or can you consider MCUs that include a 16-bit ADC built into them? \$\endgroup\$ – jonk Sep 10 '18 at 3:36
  • \$\begingroup\$ One with 16 bit external data bus, obviously, and also needs to be fast enough for your application, and also some ways to pass on the data (SD card? USB to computer). In practice the best thing I know of is the parallel video input on various SoCs, like OMAP3, IMX6, etc. Those basically gives you some 24 bit ~100MHz synchronized parallel input with DMA. \$\endgroup\$ – user3528438 Sep 10 '18 at 3:36
  • \$\begingroup\$ There are 8 channels. Sampling rate ~500Hz. External ADC for now @jonk \$\endgroup\$ – user P520 Sep 10 '18 at 3:38
  • \$\begingroup\$ Plan is to use SPI bus for data transfer from 8-channel 16 bit ADC to bluetooth chip. @user3528438 \$\endgroup\$ – user P520 Sep 10 '18 at 3:41
  • \$\begingroup\$ also thought I should mention I am looking for very low power MCU's. And in the range of 7mmSQ \$\endgroup\$ – user P520 Sep 10 '18 at 3:42
0
\$\begingroup\$

You need at least 1 SPI port to transfer data to your Bluetooth chip. Many medium powered MPU's like the PIC32MX/MZ series have many SPI ports and a 16 bit data I/O port. Internally they are 32 bit MPU's.

If you need a digital filter, say take the average of 4 or 8 samples to remove noise and send that to the Bluetooth chip, then the PIC series is fast enough and cheaper than high-end MPU's.

Also a mid-level STM32 should be plenty. Avoid MPU's that have expensive peripherals such as a dram controller, video driver, USB ports, Ethernet abstract layer, timers, counters, capture logic, JTAG, loads of serial ports, including many SPI ports that you don't need. This greatly reduces the pin count and the package size.

If you need remote control to change modes, as you mentioned, then a serial port is all you need. If you did not mind losing the fast 32 bit core and 16 bit port, then another SPI port for the ADC is all you need and the pin count goes way down. Write down what you really do need, including crucial "what if" functions. Pick a MPU family you already know well, then pick a MPU that has only what you need.

At 500 samples per second any stripped-down 16 bit or 32 bit MPU will have time to do all your task with plenty to spare. Sorry but you will have to do the shopping based on your own research and our suggestions, as we do not do shopping here on EE.SE.

\$\endgroup\$
0
\$\begingroup\$

An 8 bit micro can do 128 bit complex floating point matrix math, just very slowly. Any CPU can perform any computation given enough time and space, due to the Church Turing thesis.

RAM and serial communication speed is often more of a constraint than processing, but that can change if you need to do lots of digital filtering. If it's just moving 4000 samples per second on to a serial port, then nearly any uC around 8+ MHz will be able to spend 2000 cycles per sample, which is plenty. Given the low cost of 32 bit ARM uCs these days, often with Bluetooth and analog inputs, you might even find a lower cost solution with a more powerful CPU.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.