Author Topic: Why is nobody implementing ARM Cortex MCU's in their projects?  (Read 16693 times)

0 Members and 1 Guest are viewing this topic.

Offline DijitalTopic starter

  • Contributor
  • Posts: 18
  • Country: us
Why is nobody implementing ARM Cortex MCU's in their projects?
« on: January 11, 2017, 02:02:50 am »
~~~~Edit: I am talking mostly about the Cortex Ax series. The crazy 400 ball BGA chips. I don't really know much in this area so sorry if I wasn't clear about that or botched my nomenclature.~~~~



I should start by stating that I have very little knowledge in this area. I have done lots of work with 8 bit micros, but never anything beyond that. What I really love about them though is the ability to slap them on my own designs. It seems like with bigger micros though, this isnt the case. Everyone seems to use an auxiliary Cortex dev board.

Digging around online  it seems that nobody is spinning their own boards using these SoCs, yet all the components are readily available off the shelf. What is it that is preventing people from using these SoCs in their own projects, outside of the need for a custom multilayer PCB (or is that the biggest barrier?). I have seen a bazillion projects with a raspberry pi or other arm board slapped on, but I can't find any where someone did their own implementation. I can't even find info to help those who would want to do their own implementation.

Raspberry pi even offers a compute module that seems like a dead simple implementation, yet it seems no one has attempted to make their own compute module with any other cortex based SoC. Whats going on? Is the software end incredibly complex? Are the chips available from digikey crippled without paying some license fee?

I feel like with the advent of high powered SoCs there would be an explosion of people building their own mini computers, whatever the cost, just for the fun of it. Instead there seems to just be this giant void outside commercial products.

Edit: Should say I am talking mostly about the Cortex Ax series. Like I said I don't really know much in this area so sorry if I wasn't clear about that or botched my nomenclature.
« Last Edit: January 11, 2017, 04:22:02 am by Dijital »
 

Offline Scrts

  • Frequent Contributor
  • **
  • Posts: 797
  • Country: lt
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #1 on: January 11, 2017, 02:10:44 am »
It is complex indeed. Especially high speed memory stuff, BGA components, etc. This will bring the PCB price up and it becomes cheaper to buy a ready-made PCB.
 

Offline Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1674
  • Country: us
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #2 on: January 11, 2017, 02:21:22 am »
I make my own boards and use ARM Cortex MCUs on them. It's not too hard with modern tools and loads of companies offering very inexpensive PCBs. I do up to 4-layer boards routinely.
Complexity is the number-one enemy of high-quality code.
 

Offline timb

  • Super Contributor
  • ***
  • Posts: 2536
  • Country: us
  • Pretentiously Posting Polysyllabic Prose
    • timb.us
Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #3 on: January 11, 2017, 02:31:55 am »
Uhh, the ARM processor on a Raspberry Pi is *very* different from an ARM Cortex-M...

The ARM SoCs used in RPi's, BeagleBone's and your iPhone are CPUs, whereas the ARM Cortex-M series are microcontrollers...

I routinely make boards with ARM Cortex-M chips on them, whereas I wouldn't even attempt to do a full ARM SoC design from scratch for a personal project. It's so complex that my time is better spent just using a ready to go BeagleBone Black and integrating it into my project.

(That said, I *am* capable of doing a full ARM SoC design and would do so for a client's project, if required. But in that case I'm being paid for my time.)
« Last Edit: January 11, 2017, 02:45:42 am by timb »
Any sufficiently advanced technology is indistinguishable from magic; e.g., Cheez Whiz, Hot Dogs and RF.
 

Offline rs20

  • Super Contributor
  • ***
  • Posts: 2318
  • Country: au
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #4 on: January 11, 2017, 02:33:50 am »
You probably want to be more specific, ARM encompasses a huge range of chips range from cheap, easy to use microcontroller style chips to full-on PC CPUs (e.g. RPi).

I use NXP ARM Cortex M0+ chips quite often now (LPC11U37H and friends) -- not specifically endorsing NXP btw, it's just that's what I'm familiar with now -- thanks to their affordable dev boards.

QFN packages, which is no problem, and it's no more difficult to code for than a 32-bit AVR. Easy decoupling requirements, built-in USB, nice peripherals.
 

Offline JPortici

  • Super Contributor
  • ***
  • Posts: 3461
  • Country: it
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #5 on: January 11, 2017, 02:53:30 am »
"lazyness"?
actually i have yet to make something that i can't do with an 8 or 16 bit micro with acceptable tradeoffs in performance, let it be a commercial product or hobby project. It's I who have to say ok let's do it with a 32 bit mcu just because, as the degree of added complexity for simple stuff is, huh, discouraging.
Most of the time 16 bit to me is enough. i usually wish i had more 32 bit timers in dspics but that's it, i can always get around these things and the little 32/64 bit integer math i have to use

Let me tell you, i got much more excited when microchip presented the two newest pic18 (Added among others 12 bit adc + computation... AND AN INTERRUPT VECTOR TABLE! WOOOO! don't need to respin my board to use a pic24/dspic anymore*) than when the STM32F7 line came out

*and the rest is also very exciting.. a really flexible 8 bit mcu
« Last Edit: January 11, 2017, 02:55:05 am by JPortici »
 

Offline DijitalTopic starter

  • Contributor
  • Posts: 18
  • Country: us
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #6 on: January 11, 2017, 03:13:34 am »
I guess I should be more clear.

Look at the raspberry pi compute module

https://www.raspberrypi.org/wp-content/uploads/2014/04/Untitled.png

Is it really that difficult to make something like that for any other Cortex A series SoC? I feel like homebrew (well minus the PCB) analogs of this should be pretty common, but it seems no one does them. Why are there no "Here's my little pocket linux pc I made from scratch" projects?
« Last Edit: January 11, 2017, 03:16:21 am by Dijital »
 

Online ataradov

  • Super Contributor
  • ***
  • Posts: 11269
  • Country: us
    • Personal site
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #7 on: January 11, 2017, 03:26:00 am »
They need 6-8 layer board and cost of doing one-off is going to be astronomical.
Alex
 

Offline rs20

  • Super Contributor
  • ***
  • Posts: 2318
  • Country: au
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #8 on: January 11, 2017, 03:55:45 am »
+1, and the thought of single-handedly wrangling linux to run on your custom-design board is a giant unknown (from my personal perspective, at least).
 

Offline Bud

  • Super Contributor
  • ***
  • Posts: 6915
  • Country: ca
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #9 on: January 11, 2017, 04:04:44 am »
Beside, you need an adult PCB design package and perhaps a fair knowledge of high-speed design.
Facebook-free life and Rigol-free shack.
 

Offline capt bullshot

  • Super Contributor
  • ***
  • Posts: 3033
  • Country: de
    • Mostly useless stuff, but nice to have: wunderkis.de
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #10 on: January 11, 2017, 08:06:35 am »
I guess I should be more clear.
 Why are there no "Here's my little pocket linux pc I made from scratch" projects?

There's one:
https://pyra-handheld.com/boards/pages/pyra/
and it's predecessor:
https://pyra-handheld.com/boards/pages/pandora/

Both are great devices if you like to own a "little pocket linux pc". The development process of these things took many years, Pandora is out of stock, Pyra waiting to finish. They have to solve many problems associated with these chips: BSP (drivers for the actual hardware), various hardware issues like power supply decoupling, ...
It is way (a hundred times, I guess) much easier to build your own little pocket Cortex-M based toy than such a monster ...
Safety devices hinder evolution
 

Offline vealmike

  • Regular Contributor
  • *
  • Posts: 192
  • Country: gb
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #11 on: January 11, 2017, 08:31:43 am »
The bigger PSoCs have Cortex processors and are excellent hobby jobbers. An oversized USB stick with an embedded micro and CPLD / programmable analogue all in one package for less than a tenner, what's not to like?
 

Offline MK14

  • Super Contributor
  • ***
  • Posts: 4540
  • Country: gb
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #12 on: January 11, 2017, 08:43:35 am »
Take the Raspberry PI as an example.

It has taken MANY released production versions, even to get as far as we have so far. (I'm NOT 100% sure, but there have been something like 5 or so versions so far, including the small intermediate versions, such as B+).

It has also taken (I estimate) many years (and longer), and a huge team of engineers and software guys (I have been led to believe), to release some of the significant later linux (and similar) OS's for the Raspberry PI.

The main guy who did the Raspberry PI (Eben Upton, http://www.itv.com/news/anglia/2016-06-10/man-behind-the-raspberry-pi-is-among-the-honours-in-cambridgeshire/) is NOT some small time electronics hobbyist. He actually use to work at the Arm chip manufacturer, (Broadcom), in a very significant position, for a somewhat long time. Which gave him the knowledge/experience and influence at Broadcom, to get the project done.
Broadcom don't even sell their arm chips to small (quantity) time players.

tl;dr
Look at an early PC (e.g. Pentium), especially all the electronics on the motherboard, inside the cpu and chipset. Then look at all the the effort/work needed to create the software for it.
So in very rough terms, basically all of that has been crammed into a Raspberry PI, plus all the software into the Raspberry PI's Linux (or similar) releases.

Although Linux already existed. That was for X86 processors (and some others). The work to bring it into the Arm realm (not just for the raspberry PI), is still an ongoing process. Then there are all the hardware drivers, and all sorts of other issues which need sorting out.

Even now, the Raspberry PI with latest OS's, is still not a complete functioning PC, by a long chalk.
E.g. Try Playing GTA5 on it or getting a x86 windows 10 application/program, which you DON'T have the source code for, to run on it.

These things can be done, but it is not a 5 minute task.

My understanding is that there is a team of 60 people, who are working full time on the Raspberry PI project. Under the employ of the Raspberry PI foundation.
« Last Edit: January 11, 2017, 08:47:13 am by MK14 »
 

Offline ebclr

  • Super Contributor
  • ***
  • Posts: 2328
  • Country: 00
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #13 on: January 11, 2017, 09:54:16 am »
A lot of profissional products use arm M0, a lot of amateurs product use mega328 why ?

Arduino is easy to cut and paste from internet, Arm need a litle more google for that
 
The following users thanked this post: JPortici

Offline donotdespisethesnake

  • Super Contributor
  • ***
  • Posts: 1093
  • Country: gb
  • Embedded stuff
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #14 on: January 11, 2017, 10:59:07 am »
For Cortex A class, we are really talking desktop PC level complexity. I don't recall many hobbyist projects making their own PC motherboards. Generally speaking, even hobbyists have an application they want to implement rather than simply re-invent wheels.

4 reasons:

1) level of difficulty. 6 layer board, BGA escape routing, DDR timing, 32 bit busses.
2) small volume cost. expensive to get 1 or 2 off prototypes
3) software complexity. Linux is not trivial.
4) opportunity costs. For all the time spent doing the above, you could spend $15 and get on with something more interesting.

I can't really imagine any reason why a hobbyist would design a CortexA system rather than buy an off the shelf module. Raspberry Pi has been the best selling thing ever made.

Bob
"All you said is just a bunch of opinions."
 

Offline Kjelt

  • Super Contributor
  • ***
  • Posts: 6460
  • Country: nl
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #15 on: January 11, 2017, 11:30:22 am »
You need to be a HW guru and SW linux guru to pull it of on your own.
If you take the raspberry pi or beaglebone as example it took probably twenty times as much software engineering effort to adapt the specific linux version for this platform than it took to design and produce the hardware. A lot of people worked on it.
Beaglebone is open HW if you make your own version of it and use the exact same components you are in business within a month.
If you change the processor, you change the Phy chip and change some other peripherals you will be spending a year with three SW engineers to get the platform as stable and working as the free to download software that is now available.
It is no longer a "one man can do it all within weeks" kind of project even if you use standard linux versions where you custom choose the needed modules, integration can be a long PITA.
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4199
  • Country: us
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #16 on: January 11, 2017, 11:24:29 pm »
Two more reasons:
1) many projects do not need the complexity of a cortex A processor.
2) The "payback" for designing that class of board is very low or negative.  When the Arduino was $30, but I could design an ATmega328p into my project for $4, that made a lot of sense.  But for a CortexA-complexity design, it's extremely difficult to design and build one yourself for the cost of a Raspberry Pi.  (manufacturing efficiencies are pushing the use of modules even at the low end, what with  Arduino Pro Mini, STM32f103 and  STM8  reference design clones selling for less than the sum of the parts.  not to mention various cheap manufacturer "eval boards.)

To some extent, the fact that a Beagleboard is "Open Source Hardware" is rather academic, because my chances of being able to modify the design slightly and build it myself (which is one of the big goals of OS, right?) are very slim :-(

 

Offline AlfBaz

  • Super Contributor
  • ***
  • Posts: 2184
  • Country: au
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #17 on: January 11, 2017, 11:49:09 pm »
I did a design using a bga micro-controller, ddr memory, flash, ethernet, usb, LCD etc, etc just for kicks. I learnt  a hell of a lot with regards to breaking out BGAs, signal integrity and the huge cost of doing one off 8 layer boards.

It's also not just the number of layers that's costly it's also defining the layer stack up and hoping that after spending all that money on making the thing, the impedances turn out to be what you thought and you don't end up with crud on your transmission lines.

All up I was looking at well over $1000AUS and countless hours to build the thing with very good chance the thing would fail or I could simply buy a SBC for sub $100
 
The following users thanked this post: Someone

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26912
  • Country: nl
    • NCT Developments
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #18 on: January 12, 2017, 12:14:18 am »
Beside, you need an adult PCB design package and perhaps a fair knowledge of high-speed design.
Not really. In one of the projects I was involved I guided someone through the PCB design and he used Geda and PCB for a 6 layer board with an iMX5x SoC.
Still count on 100 to 200 hours for a board (depending on space constraints) and another 200 hours to get Linux up & running reliably.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline DijitalTopic starter

  • Contributor
  • Posts: 18
  • Country: us
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #19 on: January 12, 2017, 04:21:34 am »
I did a design using a bga micro-controller, ddr memory, flash, ethernet, usb, LCD etc, etc just for kicks. I learnt  a hell of a lot with regards to breaking out BGAs, signal integrity and the huge cost of doing one off 8 layer boards.

It's also not just the number of layers that's costly it's also defining the layer stack up and hoping that after spending all that money on making the thing, the impedances turn out to be what you thought and you don't end up with crud on your transmission lines.

All up I was looking at well over $1000AUS and countless hours to build the thing with very good chance the thing would fail or I could simply buy a SBC for sub $100

Did it work?  Did you do a write up anywhere on the project?
 

Offline mac.6

  • Regular Contributor
  • *
  • Posts: 225
  • Country: fr
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #20 on: January 12, 2017, 10:34:47 am »
It's quite difficult, if not impossible, to do a one sided populated board with big cortex A bga package, as most designs require heavy decoupling between bga balls.
Then you have DDR trace length matching/impedance control (or going to the POP route), so either good PCB package or design help from manufacturer.
You also need good pmic design, as most cortex-A cores need multiple package, this means following manufacturer "blessed" design with matched component, ie you need FAE support.
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #21 on: January 12, 2017, 01:19:00 pm »
modern tools and loads of companies offering very inexpensive PCBs. I do up to 4-layer boards routinely.

What do you use ? Altium?
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26912
  • Country: nl
    • NCT Developments
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #22 on: January 12, 2017, 05:22:41 pm »
It's quite difficult, if not impossible, to do a one sided populated board with big cortex A bga package, as most designs require heavy decoupling between bga balls.
It is possible (been there, done that) but only if you see the circuit board as a component which needs very careful planning. In case of the designs I have worked on the first order of business was doing placement of key components versus power distribution planes, matched impedance signals and grounding. That alone can be a very challenging puzzle (before even starting on the schematics).
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1674
  • Country: us
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #23 on: January 14, 2017, 12:18:33 am »
modern tools and loads of companies offering very inexpensive PCBs. I do up to 4-layer boards routinely.

What do you use ? Altium?

KiCad
Complexity is the number-one enemy of high-quality code.
 

Offline AlfBaz

  • Super Contributor
  • ***
  • Posts: 2184
  • Country: au
Re: Why is nobody implementing ARM Cortex MCU's in their projects?
« Reply #24 on: January 14, 2017, 08:20:57 am »
Did it work?  Did you do a write up anywhere on the project?
Don't know if it worked as I didn't build it 4 or 5 years ago the bare 6 layer board was going to cost around 700AUD for 5 boards from PCBcart. I did end up making just the power supply section it worked but I never got around to load testing it. It alone was a behemoth, 3 voltage rails 3.3V, 2.6V and 1.2V switchable to 0.8 for low power mode to the core. A boost converter for the LCD backlight  LEDS and a LiIon charger that was dual purposed so that it could act as a pre-regulator if the battery wasn't used. This needed some load switching so that the charger IC would come out of battery testing mode and supply the rest of the circuit
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf