Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Research Collaboration and Enablement
    • DesignStart
    • Education Hub
    • Innovation
    • Open Source Software and Platforms
  • Forums
    • AI and ML forum
    • Architectures and Processors forum
    • Arm Development Platforms forum
    • Arm Development Studio forum
    • Arm Virtual Hardware forum
    • Automotive forum
    • Compilers and Libraries forum
    • Graphics, Gaming, and VR forum
    • High Performance Computing (HPC) forum
    • Infrastructure Solutions forum
    • Internet of Things (IoT) forum
    • Keil forum
    • Morello Forum
    • Operating Systems forum
    • SoC Design and Simulation forum
    • 中文社区论区
  • Blogs
    • AI and ML blog
    • Announcements
    • Architectures and Processors blog
    • Automotive blog
    • Graphics, Gaming, and VR blog
    • High Performance Computing (HPC) blog
    • Infrastructure Solutions blog
    • Innovation blog
    • Internet of Things (IoT) blog
    • Operating Systems blog
    • Research Articles
    • SoC Design and Simulation blog
    • Tools, Software and IDEs blog
    • 中文社区博客
  • Support
    • Arm Support Services
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • Community Help
  • More
  • Cancel
Arm Community blogs
Arm Community blogs
Embedded blog Practical example: Why use an ARM microcontroller in a device
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI and ML blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded blog

  • Graphics, Gaming, and VR blog

  • High Performance Computing (HPC) blog

  • Infrastructure Solutions blog

  • Internet of Things (IoT) blog

  • Operating Systems blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tags
  • upgrades
  • fix
  • bugs
  • error
  • network
  • dns
  • bug
  • devices
  • problems
  • router
  • upgrade
  • networking
  • mac
  • mac_os
  • errors
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Practical example: Why use an ARM microcontroller in a device

Jens Bauer
Jens Bauer
April 8, 2014

For 3 years, my Mac has been very, very, very (and I mean very, very, very) sluggish.

Typing on the keyboard would give me approximately 1 character per second.

Sometimes I even had to resort to using my laptop, because it was so painfully slow.

This changed recently. Not by changing to a different computer, not by re-installing the operating system (which I tried a few times, but it did not help).

-But why did it happen then ?

Well, it all started a few days ago, my ISP shut down my internet connection for maintenance. My Mac froze completely, because I had mounted a network drive, and it suddenly disappeared while I had documents open.

I could not open my programming IDE, because it remembers what files i had open in the project last time, and it kept trying to open those files that were not accessible.

After having my internet connection back a few hours later, I decided to look at my DNS setup in my D-Link DIR-655 router.

So I thought: "Something is called 'Advanced DNS', it's disabled, might be a good idea to set up some local DNS; how do I enable it ?"

I started searching for "DIR 655 Advanced DNS" and after reading about it a little, I decided that it might not be just yet.

But I did notice that D-Link had a firmware upgrade available for my router.

I decided to upgrade my firmware, because the changelog said something about a "DNS fix".

After doing so, my PowerMac has been running like if it was brand new.

So this is a practical example on why it is a good idea to use an ARM based microcontroller in a device, for instance a router:

If there is an error, you can fix it and provide firmware upgrades easily.

Of course, it's possible with other microcontrollers as well, but if you use ARM, it's even easier, because there are plenty of different MCU vendors, thus there are plenty of example-code, because each vendor provides example code for how to do things, and there's usually at least one Linux distribution available for each Cortex-A (sometimes also for Cortex-M) MCU out there.

And since there are so many Linux distributions available, there are solutions available for most problems that have been through the times.

Firmware upgrade saves you money, because you don't have to have 200 people working in your support department, in order to service your customers. The customers nowadays often have internet and can download firmware upgrades and upgrade their products themselves, and it can be done safely, without the fear of the device never working again, if it was turned off during an upgrade.

If you plan on implementing a firmware upgrade feature for your device, I Recommend reading: Bootloader Design for MCU's in Embedded Systems by jacobbeningo. This excellent document gives you insight in how a bootloader works, which can support firmware upgrade and how to implement it in a safe and robust way.

Anonymous
  • Jens Bauer
    Offline Jens Bauer over 9 years ago

    I don't like all that work, but as there is no dislike button, I clicked "Like" instead...

    I'm not sure I will be able to do this, though.

    But I might be able to convince some swedish guys to do it (they're always able to do way past what seems impossible).

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • Alban Rampon
    Offline Alban Rampon over 9 years ago

    Well spotted, I hadn't checked both...

    I hadn't heard about the MBAN (Medical Body Area Network) before! It seems to be a target application for the KW2x

    Now I hesitate between two replies:

    1. Say it's not possible so you prove me wrong and I can see it working
    2. Accept this is possible but never see it realised
    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • Jens Bauer
    Offline Jens Bauer over 9 years ago

    Hi Alban.

    I haven't received the chips yet, so they'll be without solder balls.

    LGA is probably not as difficult to solder as the BGA, it's almost a QFN, so I think I can do it manually.

    There's a pad that need to be connected to GND under the chip, but the 6 small pads should be left unconnected.

    That means you'll only need to worry about getting the pins along the sides lined up right.

    If it's too difficult, I'll just send a chip to Jaco, and they'll do it for me.

    I think that at least the KW02 (M4) can be used for WiFi.

    KW0x: Sub-GHz.

    KW2x: 2.4GHz

    According to my understanding of the datasheet, they're both ZigBee compatible.

    Both uses the IEEE 802.15.4 Standard, so you could cheat and make a translator for the M0+.

    -Eg. connect one KW2x to one KW0x and make the KW2x do the WiFi-talking, make the KW0x talk to other KW0x chips.

    That might be complicated, because you'll have to make your own router or switch - but I certainly think it would be possible.

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • Alban Rampon
    Offline Alban Rampon over 9 years ago

    Did you but some solder balls yourself or having some paste on the PCB was enough?

    I don't think I would have taken the challenge: BGA would already be painful without adequate equipment.

    This looks like two chips in the same package, a Kinetis MCU and an ISM RTX. It's also a good way to integrate two different technologies/processes in a single package: MCU in smaller geometry and high voltage in a separate die. The less chips you have to solder, the less risk of them to go wrong.

    They don't look like WiFi though as they are in the 300MHz - 900MHz range and not above 1GHz. I think they are more for remote control than bandwidth intensive applications.

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • Jens Bauer
    Offline Jens Bauer over 9 years ago

    They're called KW2x for the 50MHz Cortex-M4 and KW0x for the 40MHz Cortex-M0+.

    Both are equally attractive. The M4 for its speed and instructionset; the M0+ for its low energy consumption.

    One of the Cortex-M0+: MKW01Z128CHN (LGA60 package) [Farnell: 2383234]

    One of the Cortex-M4: MKW21D256VHA5 (LGA63 package) [Farnell: 2401869]

    The M4 can be delivered around June 24. 2014 if you order it now.

    The only thing I don't like about them is the LGA packages. They caused me a lot of pain during PCB-design.

    -I had to make those footprints by myself, and Freescale didn't make it clear whether the drawing was mirrored or not. So I ended up re-doing it twice. If I hadn't had to do it, though, a bug in the PCB layout program would not have been corrected. (I'm so lucky that I have the developer's ear).

    I hope Freescale will grant you an evaluation board, so you can try it out.

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
>
Embedded blog
  • The flexible approach to adding Functional Safety to a CPU

    James Scobie
    James Scobie
    Find out more about Functional Safety with SoC designs and Software Test Libraries.
    • November 8, 2022
  • The importance of building functional safety into your design right from the start

    Madhusudan Rao
    Madhusudan Rao
    Currently, there are many processors that are not designed with functional safety standards in mind and the use of these can lead to lengthy and costly qualification processes for safety relevant applications…
    • November 8, 2022
  • Arm Safety Ready program: Building confidence into your application

    Madhusudan Rao
    Madhusudan Rao
    To demonstrate Arm’s commitment to functional safety, we announce the launch of our Safety Ready program.
    • November 8, 2022