How do I decide which ARM board to go for if I am aiming to use it as a micro-controller to run sensors, actuators, motors, and solar panels? And I wish to power up the board via Li-ion battery pack.
Hi joabchua and welcome to the community!
For very low energy usage, it might be interesting for you to have a look at Cortex-M0+.
It is a good idea to make it possible for the MCU to turn off all the peripherals on your design, so you can save energy (especially if running directly on solar panels or a Li-ion battery, you may want to turn on a sensor once per second - or once per minute instead of keeping it on all the time.
You can also use the Watch-Dog timer to wake your MCU up after for instance a minute, and then turn on some sensors, take a measurement and turn off the sensors and put the MCU to sleep, then repeat.
A couple of things you will often find convenient, would be if the board has ...
1: Timers (I need those in almost every design I make)
2: DMA (this enhances the MCU's ability to transfer data, including copying data from memory to memory)
3: On-chip ADCs and perhaps a comparator. I don't use ADCs very often myself, but at times I find that I need one, and it's a good thing to have handy.
For motor control, I would like to mention NXP's LPC1500 series. If you need USB, a LPC1549 would be a good choice.
Embedded Artists make a nice board containing a LPC15xx, this board can be connected to a board which controls motors.
If motors are your primary focus, this is probably the best starting point. In addition, the LPC15xx series have a very strong feature called SCT (State Configurable Timer); it can be used for many different types of tasks, and remember that you can use it for more than one job in one design!
If you need WiFi, try taking a look at STMicroelectronics's STM32W108; the price just dropped a lot for this MCU (only £1.6)!
Let's imagine you've found a suitable board or microcontroller and you need a few I/O-pins extra. If that's the case, you can add 16 I/O-pins by using an I/O-expander. This can easily be done up to 8 times if using I2C. Again, NXP make such I/O-expanders; so do Microchip.
It's also possible to add external ADCs if your board does not have enough, or if you've used the pins for other things.
Many sensors have a digital interface (often using I2C). Almost all ARM-based MCUs have at least one I2C interface, where you can add more than one device.
SD/MMC cards can be read/written by using the SPI, which you also find on almost all ARM-based MCUs.
I find both NXP and STMicroelectronics Cortex-M based microcontrollers particularly easy to work with; there's also good support for these in OpenOCD.
-But perhaps you want to try out a board before you decide which one to go for.
I recommend that you take a look at this blog-post, perhaps you can win a board, so you can start doing a couple of tests.
Since you're a student, it might help you to know that the tools have free trial versions, but you can also build your own GCC+OpenOCD toolchain, which will be a fully working development environment. Thus you're not limited to a specific development computer; you can choose any platform as long as it can run OpenOCD and GCC.
joabchua yes like you have say. I mean you can start with an ST nucleo kit for practice. But if you want to be efficient in your project you'll may have to change of board or to produce your own board to be close as possible of your hardware components.
Based on my personal experience I would suggest you to start with a simple development kit. If you plan to have WiFi or Bluetooth buy one that has already the module in it (it will remove a lot of pain ...)When you have your dev kit in your hands and a decent screen (LCD, OLED or E-Ink) you will start to create your prototypes in mbed OS and trust me that part takes a lot of time.
When you have a stable prototype with your development board and you tried different sensors (sometimes you buy one motor or sensor but it is not the one you though) you will have more experience and being able to choose a more advanced or specific development board.
Only when your dev board is doing what you though you can try to design your PCB, outsource the creation and try it again with your mbed OS firmware and the sensors
I would kindly suggest you to not follow the path of choosing an expensive board as the first prototype because most of the time you realize that you need less or more power and other things like more connections, memory and so on.
I think that starting with a dev board like the RF51 is a good start, plenty of example available, Bluetooth out of the box and plenty of flexibility
Choosing a good arm card is quite complex because there are many. Everything will depend on the project you want to realize. The number of associated peripherals, uses (WiFi, ethernet, HDMI, ...). The environment is also important (embedded or not use, the electric power available: battery, power, solar panel, ...). We can help you in your choice but you should be a little more explicit when at the final use you want to do.
For make the good choice you have to tell us, expressly the numbers of captor, actuators, motors, the electric consummation you mean acceptable and the approximate size of software you mean use on it.
Will STM board be able to do that?
I guess you can connect sensors, actuators etc. to any ARM board as long as you have proper interface circuits. So you will need external driver for motors, signal processing for the solar panels and so on. I am not yet aware of a board with these circuits on-board.
You will need to find out the number of I/O required and any other feature you need such as LCD or Ethernet or USB etc.
As for the low battery, pretty much all ARM processors are quite good with low power requirements.
Have a read at the blogs by carissal - A number of boards are reviewed and explained there.
View all questions in Cortex-M / M-Profile forum