4 ms·
I switched from MSP430 to the Freescale Kinetis line (ARM Cortex M0+ and M4) for larger projects. But these ARM chips are incredibly complex compared to the MSP
by jwr 12y ago
I switched from MSP430 to the Freescale Kinetis line (ARM Cortex M0+ and M4) for larger projects. But these ARM chips are incredibly complex compared to the MSP430 microcontrollers. So for simpler projects where I really need to get results quickly, I still prefer the MSP430.
I'd argue that if you want to learn about microcontrollers, the MSP430 (especially the G2 value line) is a very good place to start. I am not very fond of Arduino, because if you really want to know how a microcontroller works, you will not learn that with Arduino. It hides everything from you, presenting an overly-simplified API.
- minthd 12y agoWhat your opinion about the Stm32Cube libraries, that try to have high level api's while still offering low level api's as needed - while still saving you some effort in learning the device?
- jwr 12y agoI am not familiar with those. But I will offer a general comment: most vendors completely miss the boat as to the code they provide. What I'm looking for is a way to quickly build numerous applications which will be maintained for a long time. To really utilize the microcontroller I will need to get low-level anyway, so there is no point in "high-level abstractions": they always come back and bite you in the end. Give me libraries, but make them low-level libraries, and maintain them well. Give me a way to easily upgrade those libraries in my projects (e.g. code templates, code generated from an IDE are no-nos). Don't give me a "universal abstraction layer for cross-device portability". Give me good bootloaders, clock management libraries, simple APIs for switching energy modes, low-level libraries for comms. So far I found nothing of the kind, which is sad. I think it's one of the reasons the software world is really lagging behind the hardware.
- minthd 12y agoGood answer. Instead of using the templates,can't you just read the docs and use the libraries yourself? this will help with upgrading - although it won't solve the issue of compatibility breaking changes. What's wrong with "universal abstraction layer for cross-device portability" - aren't they using the same peripherals through the family ?