Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie
Hi there,
There is an issue with role permissions that is being worked on at the moment.
If you are having trouble with access or permissions on regional forums please post here to get access: https://www.boards.ie/discussion/2058365403/you-do-not-have-permission-for-that#latest

Microcontroller of choice?

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


    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