Advertisement
Help Keep Boards Alive. Support us by going ad free today. See here: https://subscriptions.boards.ie/.
If we do not hit our goal we will be forced to close the site.

Current status: https://keepboardsalive.com/

Annual subs are best for most impact. If you are still undecided on going Ad Free - you can also donate using the Paypal Donate option. All contribution helps. Thank you.
https://www.boards.ie/group/1878-subscribers-forum

Private Group for paid up members of Boards.ie. Join the club.

Microcontroller of choice?

  • 16-07-2018 11:54PM
    #1
    Registered Users, Registered Users 2 Posts: 6,341 ✭✭✭


    I was going to put a poll but there will be always 'but what about ...'?


    Have always been a PIC man meself, used the arduino for a while and the msp in Collitch but since Microchip took over Atmel I wonder what is the long term future for PIC. The architecture itself for the 8-bit ones seems inferior and loads of things seem to be "Going ARM".


    For a lot of consumer stuff people won't buy it unless it has wifi (even ethernet is old-fashioned for many or people don't even know what it is). This drives up the processor requirements. I ordered a PyBoard the other day, ARM of course. Will every toaster and hair dryer soon be ARM Cortex-m0 based?


Comments

  • Registered Users, Registered Users 2 Posts: 768 ✭✭✭14ned


    I have a lot of bad memories of trying to get code to work on older PIC chips. The 6502 was a much better experience, but power consumption was much higher, and PIC was a standard.

    Now I know that recent PIC is nothing like as awful as it was, but from a quick flick through https://en.wikipedia.org/wiki/PIC_microcontroller, it still looks a highly retrograde development experience over what's available for very slightly more money i.e. an ARM CPU, or likely soon a RISC-V CPU. The great advantage of those Cortex M0's is that you can convert an ARM Chromebook over into a very cheap but potent all-ARM Linux development workstation running Ubuntu LTS, do all of your benchmarking and debugging and testing on said all-ARM workstation, then write the firmware file to your Cortex M0 device with a very high expectation that it will work perfectly. The great advantage of those Chromebooks is their mobile ARM CPU which usually comes with a low power cluster of Cortex A53s or equivalent, these are oodles more powerful than a Cortex M0, but their timings are not dissimilar because they are in-order cores, albeit with far wider instruction decode. So you get a "feel" for how the code will perform which is not inaccurate on the actual device.

    You also get a modern toolchain for ARM, literally latest versions of the compilers, with C++ 20 if you so desire. And unlike PIC, C++ 20 if stroked right works very well on a Cortex M0 device. Big improvements to embedded C++ are expected to come in C++ 23, it should finally supplant C. If you want something more exciting, look into https://micropython.org/ which is a Python implementation for microcontrollers. Unthinkable on PIC!

    For all these superior development environment reasons, and especially the dropping cost of bottom end ARM Cortex CPUs, I entirely expect ARM or RISC-V to completely supplant the bottom end of all embedded computing. Indeed, I just this week bought two tiny ARM Cortex M0's on a USB plug, I'll be reprogramming them to act as a gnuk token device so I no longer need to keep my SSH or GPG keys on my laptop, which I don't entirely trust. See https://blog.danman.eu/2-usb-crypto-token-for-use-with-gpg-and-ssh/

    Niall


  • Registered Users, Registered Users 2 Posts: 8 HakunaPatata


    I mean, it really depends on what you're trying to achieve in the real world, unless it's only for hobby stuff in which case go with something that has a nice toolchain and support forums as Niall suggested. And even if it's choice for a commercial project, there are so many other factors that come into play besides chip features. Some of these might not even appear that obvious until you're actually supporting a product in the field or doing board revisions. To name a few:
    - Unit cost (engineers often forget about the accountants)
    - Proven track record of stability and performance in the field
    - Whether your PCB manufacturer's eng team has much experience with it
    - Operating temp characteristics
    - Pin count, other rather, amount of unnecessary tied to ground :-P

    I could go on but you get the point I'm sure. The real questions are always:

    - Do you (really) need feature X?
    - Have you considered the guys that gotta diagnose and repair the **** afterwards?
    - Would you have it controlling something that could potentially be dangerous to the safety of yourself or someone else?

    There's a reason ECUs in most vehicles and industrial machines are usually a tried and tested version of an older architecture.


Advertisement