Making Custom Silicon For The Latest Raspberry Pi

The latest Raspberry Pi, the Pi 3 Model B+, is the most recent iteration of hardware from the Raspberry Pi Foundation. No, it doesn’t have eMMC, it doesn’t have support for cellular connectivity, it doesn’t have USB 3.0, it doesn’t have SATA, it doesn’t have PCIe, and it doesn’t have any of the other unrealistic expectations for a thirty-five dollar computer. That doesn’t mean there wasn’t a lot of engineering that went into this new version of the Pi; on the contrary — the latest Pi is filled with custom silicon, new technologies, and it even has a neat embossed RF shield.

On the Raspberry Pi blog, [James Adams] went over the work that went into what is probably the most significant part of the new Raspberry Pi. It has new, custom silicon in the power supply. This is a chip that was designed for the Raspberry Pi, and it’s a great lesson on what you can do when you know you’ll be making millions of a thing.

The first few generations of the Raspberry Pi, from the original Model B to the Zero, used on-chip power supplies. This is what you would expect when the RAM is soldered directly to the CPU. With the introduction of the Raspberry Pi 2, the RAM was decoupled from the CPU, and that meant providing more power for more cores, and the rails required for LPDDR2 memory. The Pi 2 required voltages of 5V, 3.3V, 1.8V, and 1.2V, and the sequencing to bring them all up in order. This is the job for a power management IC (PMIC), but surprisingly all the PMICs available were more expensive than the Pi 2’s discrete solution.

The MXL7704, with four switching power supplies. The four symmetric gray and brown bits are inductors.

However, where there are semiconductor companies, there’s a possibility of having a custom chip made. [James] talked to [Peter Coyle] of Exar in 2015 (Exar was then bought by MaxLinear last year) about building a custom chip to supply all the voltages found in the Raspberry Pi. The result was the MXL7704, delivered just in time for the production of the Raspberry Pi 3B+.

The new chip takes the 5V in from the USB port and converts that to two 3.3V rails, 1.8V and 1.2V for the LPDDR2 memory, 1.2V nominal for the CPU, which can be raised and lowered via I2C. This is an impressive bit of engineering, and as any hardware designer knows, getting the power right is the first step to a successful product.

With the new MXL7704 chip found in the Raspberry Pi 3B+, the Pi ecosystem now has a simple and cheap chip for all their future revisions. It might not be SATA or PCIe or eMMC or a kitchen sink, but this is the kind of engineering that gives you a successful product rather than a single board computer that will be quickly forgotten.

75 thoughts on “Making Custom Silicon For The Latest Raspberry Pi

    1. eMMC has a faster transfer rate than MicroSD. eMMC tends to be cheaper when you consider the cost of an microSD card + the connector. But eMMC complicates supply chain and bill-of-material costs can rise as the flash market is very volatile. Factory bulk flashing is also a bit of a pain in the neck as you need a way to load factory diagnostics onto the device, and you may want to flash software for the end user over the top of your diags and that adds a lot of time on your factory line. I imagine RPi diags is just a microSD card they throw in at the factory. There might be some funky USB-OTG booting possible on the BCM2835/2837 family but I suspect it’s not the way most factories would use as that requires additional hardware for test stations.

      I think for a Pi Zero a small eMMC makes more sense than a microSD socket. Plus with the recent ability of some of the Pis to use USB as a boot drive the complexities of loading an initial image on eMMC goes away.

      1. First off, how fast does the storage need to be?

        Second, you compare cost of eMMC to microSD & socket a RPi does not include the microSD card, or the eMMC – the only valid comparison is socket vs socket.

        Finally, wouldn’t an eMMC option require a fair amount of board space, somet that is at a premium on all Pi’s, esp. the Zero and it’s variants.

      2. Half the reason I like Raspberry Pi’s is that whenever I swap projects, all I have to do is pull an SD card and put an image on it. For example, my “IOT” freezer monitor’s pi died recently, and all I had to do to fix it was pull the SD card and replace the Pi with a different one. To me, maybe not the best thing, but the most sensible is to use is something that has more than one use and is easily attainable- e.g. a flash drive or a SD card. IIRC, Pi’s also already have UHS-II and possibly UHS-III support, both of which are blazing fast.

        Also, do you really want to have a Pi where you have to choose how much storage you want to pay for up front?
        I don’t, especially if the onboard eMMC took the place of the SD card slot.

          1. The Odroid crew got it right by using a socket shared between their models for daughterboards carrying the eMMC IC.
            they even got cheap passive adapters so the eMMC can be accessed via a modern generic SD card reader.
            Theoretically it should be possible to make a adaptor board going the other way around, providing a SD card socket that plugs into the eMMC interface.

      1. Good. I Googled it too. Not much help for a non programmer. I can find first class seats to Mars on Google too, but that doesn’t help me either. Was needing real advice from an experienced builder with links et al.

      1. Don’t have an idea what those are. It would be for research I’m doing. Actually, I have to create an autonomous robot with a way to capture relative humidity and other environmental data. I found a lot of autonomous robots using Arduino. Isn’t the RPi better? Thanks

        1. Which is better depends entirely upon what you want to do with them. If you’re not getting the kind of responses that you hoped for it’s for a few reasons.

          1) You’re not being as specific as you think you are.
          2) This kind of question is better served in a forum on a similar project.

          For example, you say that you need to build an autonomous robot to measure humidity. This could mean a lot of things. How automatic? Are we talking indoors/outdoors? Pavement, grass, sand, gravel? Can it roam, or does it need to be gated somehow? Will it be measuring humidity in the atmosphere or does it need soil moisture as well? Will it be storing the data, transmitting it, or simply providing an alarm based on readings? How many data samples are we talking about? Do they have to be at specific locations, times, both? Can you place markers? RF transmitters? Does it need to use GPS and are there obstacles that would interfere? Do you need to record other atmospheric conditions, rain or cloud cover for instance?

          These are just a few questions off the top of my head. There are no doubt countless others to be answered. This isn’t just a matter of which board has better performance, there’s a lot of variables that you need to identify and place best guesses into for the design process.

  1. Incidentally, most of the Allwinner-based SoCs that you find in many Raspberry Pi competitors also have matching custom PMIC chips that they’re intended to be paired with, often quite sophisticated ones which support multiple possible power sources and LiPo charging. The fancier features tend to be a little under-utilized in hobbyist boards built using them though. (The exception is most of the H line of SoCs, which tend to use cheap off-the-shelf parts.)

    1. and Allwinner + pmic was being sold at $5 in bulk ~5 years ago. Intel spend couple Billion dollars subsidizing Atoms in china in a failed attempt to break into cheap tablet market. Best part came after Qualcomm got fined for monopolistic practices and Intel got so scared they “licensed” Atom to Rockchip for free.

      1. hey whats the smallest x86 part available. would make a cool badge to run dos on, then add cheap wifi chip to do the networking(telnet in from phone) and add some blinkenlights

    1. If you are talking about the RPI, the RPI3B+ models are in stock. Bought one from Adafruit and it has been working great with Raspbian Stretch Lite. Most all of my RPIs run headless and I use ssh to access. For $35 getting you a 1.4Ghz 64bit 4 core processor, 1G of Ram, ethernet, wi-fi, camera interface, i2c, spi, serial, GPIO … Amazing. And then with all the Hats you can add to it for your projects (or roll your own)…. Crazy! No complaints here. I remember the day when we ran a whole Hydro Plant on a 16Mhz 68000 based system. Now we are swimming in processing power and memory!

      1. >Now we are swimming in processing power and memory!

        Which we waste on multiple layers of abstraction, so much that it feels like i never left my 386 from days of yore.

        1. Sure, “waste”, if you’re thinking of spending your whole career on a single project. But for anyone who is moving from project to project the ability to reuse the same abstractions (high level programming language, some standard I/o interfaces, off-the-shelf h-bridge drivers, i2c, etc) means your productivity is way up and cost to the client is way down. 99% of things don’t need the ultimate drop of performance squeezed out when you can radically reduce your up front engineering costs by throwing a bit of extra hardware at it. How much engineer time does it take to make it worthwhile to use a $35 RPi instead of a $5 traditional uC?

          1. At this point in my career, I don’t mind the layers of abstraction so much as I used too… And I still say swimming :) . Because even with all the overhead of Linux and the protocol stacks, my RPI3 is running 30M of memory used. That’s 841M still available…. Checking one of my PI Zeros, I see 20M used with 359M available…. That’s swimming in memory! As for CPU power, I’ve yet to tax that either… CPU idles at about 0.7% of just one of the four processors according to htop. So here we sit with a full blown OS with all it’s services at our finger tips. Only thing missing is true Real-time, but there are ways around that… Then use Python, C, Assembler, Perl, etc. for your projects, all on the same little box. Unless compiling the kernel, you can run/develop/debug right on the target device. Not how we used to do it! How cool is that? And then if you ‘dedicated’ timing processes, off load to an Arduino or some such…. I have set up a cross compiler for fun on my Linux desktop machine, but no real need.

        1. It isn’t the electrical interface that is the problem since that is handled by the MIPI DSI standard. The problem is that you need to poke secret registers + firmware in the VideoCore to configure the controller + panel and they won’t publish that. A combination of not wanting to help competitors and NDAs with Broadcom.

          1. competitors of what? last phone with videocore was Lumia 1020 5 years ago.
            I think the problem is lack of paid man hours. One dedicated ex Broadcom engineer spend some time and managed to open up camera MIPI interface – you can connect anything you like there talk with it in userspace.

  2. While I don’t discredit the claim that “all the PMICs available were more expensive than the Pi 2’s discrete solution”, I also find strange that the AXP series of PMICs found on dirt-cheap tablets are *that* expensive then (and in high quantities, to add to it).

    1. AXP is very cheap for PMICs, but the Raspberry Pi CPU has quite high current demands. In that sense it is more comparable to an FPGA or very high end SoC than a normal tablet/mobile phone SoC. You then quickly get to more advanced/fancy/less used PMICs that cost a lot more.

  3. It’s sad that there is still nothing to support powering pi with battery/li-ion (and I’m not talking about non-sense allways-on system with big power bank). If they managed to make custom power supply IC it would be small part of cost of it to add some stuff to power from/charge li-ion cell. They could also finally push Broadcom to add any sleep mode/suspend in their chip (or maybe only drivers?).

      1. And is virtually impossible to use because there’s no support.

        I can set up a fresh RasPi in under and hour and start pounding out code.
        I spent an afternoon trying to get a BeagleBone Black running because it’s objectively more powerful. Never got it working, because I switched back to a Pi and had a working prototype by the end of the day.

        Usability outweighs functionality.

        1. Makes sense, although the BeagleBone Black is almost an industrial product. I don’t think it is really intended for quick results.

          Using an Orange Pi is exactly the same as a Raspberry pi from a usability point of view. Download armbian to SD card, insert SD card, connect power, start developing. If you have an Orange Pi with eMMC you may want to take the extra step to install the OS onto it, it will be much much faster than from the SD card.

      1. No. That advice is absolute rubbish!

        USB2 is much slower than SATA. Sure, you can connect a hard drive that way but if you are using it as a file server, as desktop or anything where speed matters you will not be nearly as happy as if you just buy a Banana Pi or other SBC that has an actual SATA port. (careful, some are just USB SATA adapters that happened to be soldered on the board).

        Or… maybe some day we can have USB3. That might be ok as a SATA substitute. USB2 just isn’t.

      2. Sorry, didn’t realize what you replied to.

        I’ve heard that about newer model Banana Pis but had not verified it. The older ones had SATA right on the chip. Those may not be the fastest for processing these days but if your goal is something like a tiny, energy efficient personal file server one of those old Banana Pis with the ‘real’ SATA port is just about perfect!

        Why did they go to USB for their SATA port? Is it that nobody makes a suitable processor with SATA built in anymore? In that case.. the board with the built in USB-SATA might still be slightly better than a Raspi with an external SATA adapter plugged into a socket. Maybe it will at least be a separate USB bus so it doesn’t have to compete with whatever else is plugged into the device.

        I do wish manufacturers would stop taking away functionality.

        Maybe some day we will have SBCs with a whole bunch of USB-C ports so we can use them for video, storage, peripherals or whatever we want. Instead of having to find a board with the particular features you need for your project it will just be a matter of having enough of that one generic kind of port.

        1. Look to a CPU for a NVR/DVR. They will have gigabit ethernet, SATA, sometimes PCIe and some specialized video interfaces. You can get a lot of resources on this from China, but the support will not be like a Raspberry pi. If you know what you are doing you can make it work relatively easily.

    1. The Raspberry Pi was built for a purpose, and that purpose had no use for a SATA port, has minimal need for a gigabit Ethernet port, and a power switch on a board with no supplied power source would be odd.

      That the Raspberry Pi has found uses outside it’s original market is great, but you seem one step away from demanding that the Raspberry Pi 4 include an x1 PCI-Express expansion slot or on-board RAID controller.

      The Raspberry Pi has been phenomenally successful for a number f years in spite of it’s missing ‘must-have’ features you list. BTW, the latest Pi, the 3B+, includes Gigabit Ethernet.

      1. >demanding that the Raspberry Pi 4 include an x1 PCI-Express expansion slot or on-board RAID controller.

        Honestly, a PCIe port would vastly increase the functionality of the Pi. Virtually everything people ask to be added is available as a laptop PCIe card.

        You’re right that the Pi was developed for a specific purpose (cheap PCs for poor kids) but it has seen a LOT more demand outside of that use. It’s been adding new features with each generation, and it is not unreasonable to suggest it target the broader user base with some future features.

  4. “The new chip takes the 5V in from the USB port and converts that to two 3.3V rails, 1.8V and 1.2V for the LPDDR2 memory, 1.2V nominal for the CPU, which can be raised and lowered via I2C. This is an impressive bit of engineering, and as any hardware designer knows, getting the power right is the first step to a successful product.”

    It’s surprising and interesting that this didn’t already exist.

    The Raspberry Pi is really just a basic “breakout board” or reference design around the Broadcom BCM2837, and even in more general terms, with different processors, these voltage rails are certainly not unusual for this sort of embedded computer.

    1. There are chips like this, but not exactly of course, for example: http://dl.linux-sunxi.org/AXP/AXP209_Datasheet_v1.0en.pdf
      It has only 2 buck converters (plus an extra one for li-po charging and 5 LDOs). This chip can be bought in smallish quantities for around 30ct per piece. It gets cheaper if you buy bigger quantities. The available output current is lower than the chip in this article.

      PS: This chip is publicly available: https://www.digikey.be/product-detail/en/exar-corporation/MXL7704-AQB-T/1016-2200-ND/8548033 It seems very suited for powering the Xilinx MPSoC FPGAs, with respect to the voltages and currents it can deliver.

      1. AXP209 is the companion power management chip for the Allwinner A10/A13/A20 so it’s primarily designed to meet the needs of those chips, in the same way that this is designed for the Raspberry Pi 3A and its SoC.

  5. Sigh. Oh Brian you and your strong opinions. Here we go again!

    How do you get to define what are ‘unrealistic expectations’? For example, how can SATA be an unrealistic expectation when the Banana Pi did this years ago?

    Also, we all have different wants and needs. Perhaps I might say that the Raspberry Pi Foundation makes poor choices sacrificing SATA, eMMC or whatever in order to save money and room for ‘unrealistic expectations’ such as built in wifi, bluetooth and dedicated LCD and camera connectors.

    Of course if I said that I would be wrong. I would be wrong because I would be projecting my priorities and wants onto the whole market and assuming everyone else wants or needs the same as me.

    You could write such better articles if you could just stick to the facts and keep your more abrasive opinions out of it. Do you always write stuff like that because you really don’t know any better or is it just a trolling method to get more people typing comments and reloading the page?

    1. > ‘unrealistic expectations’ such as built in wifi, bluetooth and
      > dedicated LCD and camera connectors.

      These features are included on the 3B+ AFAIK

      > Of course if I said that I would be wrong. I would be wrong
      > because I would be projecting my priorities and wants onto
      > the whole market and assuming everyone else wants or
      >needs the same as me.

      No, you’d be wrong because those things are already included in the Raspberry Pi 3B+…

  6. Really cool to see some custom silicon in a consumer / hacker product. I’m well used to custom ICs for specialised use cases but this really demonstrates how cheap it has become

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.