Author Topic: Design review for MX6 single board computer  (Read 2716 times)

0 Members and 1 Guest are viewing this topic.

Offline datasheetTopic starter

  • Newbie
  • Posts: 8
  • Country: ca
Design review for MX6 single board computer
« on: November 06, 2022, 04:32:30 pm »
Hey, I am new here. I have asked for reviews on Reddit in the past, but I was told this is a good place for more advanced stuff. I was inspired by a Jay Carlson blog post to make a 50x50mm single-board computer based on the NXP iMX6, for which I got free samples. I'm using JLC's impedance controlled 4 layers stackup: signal, power/GND, power/GND, signal. I decided on the small dimensions and not using 6 layers for the challenge and to save on costs. The PCB was designed in KiCAD 6, all the files are available below for review. Total board cost is around 25 CAD$.

The board is powered through a dedicated USB-C connector. An input load switch is used to limit inrush current, current limiting, reverse protection, etc. A 3-channel buck converter (RT7273) creates the 3.3V, 1.8V, and 1.375V power rails from VBUS. There's current sensing on each rail using an amplifier and the MX6 ADC.

The processor (MCIMX6Y7DVM09AB) runs at 900 MHz, which requires a 1.375V core voltage. Power sequencing for the different rails is done with the buck converter. The power good flag (active high) controls the reset pin (active low). I've used about 30% less decoupling than recommended by the manufacturer due to space constraints.

The processor is connected to a single 512MB DDR3L x16 device (Samsung K4B4G1646E). A lot of swapping was involved during routing: byte groups are swapped and nearly all data lines within a byte were swapped. No attempt has been made to length match any traces since they are very short (all under 30mm) and the device operates at only 400MHz while being rated for 933MHz. Also the trace impedance is closer to 70Ω than 50Ω but I needed thin traces for space so I chose to ignore it. The DDR is powered by the 1.375V rail.

The board also includes a 8GB eMMC 5.1 device. There's no special reason why I decided to include it other than to have the chance to try it. I'm a bit worried about the fine BGA pitch (0.5mm), but worse case scenario I'll just remove it and rely on the micro SD card slot. I've had to use NC pins for routing, and while the datasheet doesn't say anything about it, several sources indicate that it should be fine. The eMMC runs on 1.8V IO and 3.3V core voltages.

There's an Ethernet port with a 100Mbps PHY (LAN8720A, RMII) and a RJ45 magjack. This is the only place where I've used series termination resistors though I'm not sure they are necessary. The PHY runs on 3.3V IO and core voltages.

Finally there's 2 USB 2.0 device ports (USB-C). The ADC is connected to the CC pins of the input power receptable to know the current capability of the power supply, in order to limit current to USB devices to 50 mA if that capability is below 1.5A (hence the load switch per USB port).

I've picked unused processor pins for the GPIO header as to maximize the number of usable peripherals (UART, SPI, I2C, PWM, ADC). I've also used analog switches for current sensing to leave more ADC inputs to the header. All connectors except the GPIO header have TVS protection on them.
A power tree is available on the main schematic, which indicates a maximum input current of 2A. This is probably much higher than actually achievable since the processor, DRAM, eMMC, SD card, Ethernet and USB devices can't all be at maximum capacity all at once. I expect the maximum current to be at most 1.5A.

I appreciate any input on the design!

Files:
 

Offline DC1MC

  • Super Contributor
  • ***
  • Posts: 1925
  • Country: de
Re: Design review for MX6 single board computer
« Reply #1 on: November 06, 2022, 05:08:14 pm »
Hi, on a quick look the schematic and design sounds solid, the only thing that is a bit unclear IMHO is the choice of PMIC, why not a dedicated NXP one link PM3000/3001?
This power measurement stuff, is it really need it ?

In any case, if you materialize this board, I can help you with the bring-up, is kind of my day job  ;D.

Cheers,
DC1MC
 

Offline datasheetTopic starter

  • Newbie
  • Posts: 8
  • Country: ca
Re: Design review for MX6 single board computer
« Reply #2 on: November 06, 2022, 07:31:25 pm »
the only thing that is a bit unclear IMHO is the choice of PMIC, why not a dedicated NXP one link PM3000/3001?

To be honest I chose the cheapest part on LCSC that filled my requirements. I hadn't checked the NXP PMIC dedicated for the MX6, but they seem a bit overkill. 14 channels on the PF0100 when I need 3... A PMIC with a serial management interface would have been nice though.

This power measurement stuff, is it really need it ?
No, I just thought it would be cool to have current measurements and I had space for it.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 30273
  • Country: nl
    • NCT Developments
Re: Design review for MX6 single board computer
« Reply #3 on: November 06, 2022, 07:36:20 pm »
I'd leave the current sensing stuff out. The sensing resistors are too high and could impact power delivery performance. I don't know for the iMX6 but later SOCs like to have an impedance below 20 mOhm on their power supplies.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline coromonadalix

  • Super Contributor
  • ***
  • Posts: 8809
  • Country: ca
Re: Design review for MX6 single board computer
« Reply #4 on: November 06, 2022, 08:52:31 pm »
hum you're gonna hate me

We are using mx6  boards and we are phasing them out,  underpowered, outdated   and the covid thing  made pricing higher, we are creating a new pcb version with raspi ...  less costly

i understand all of your project

futur availability ??? how long you want to maintain it ?    what will run on it  etc .... BSP packages  etc ...  ,  the "os" is not in it  ??  what will you use ?  will it be under gpl ?

You have tons of baseboard on the web,  sure pricing is a thing

but now with the raspi  world / ecosystem  ???  even at your 25$ cost

boards cost are for qty of 100, 1000 ??


And yes     i would not add any current sensing / power measurements  on this  it could mess with a watchdog or a power supply startup sequence(s)
 

Offline DC1MC

  • Super Contributor
  • ***
  • Posts: 1925
  • Country: de
Re: Design review for MX6 single board computer
« Reply #5 on: November 06, 2022, 09:16:20 pm »
hum you're gonna hate me

We are using mx6  boards and we are phasing them out,  underpowered, outdated   and the covid thing  made pricing higher, we are creating a new pcb version with raspi ...  less costly

i understand all of your project

futur availability ??? how long you want to maintain it ?    what will run on it  etc .... BSP packages  etc ...  ,  the "os" is not in it  ??  what will you use ?  will it be under gpl ?

You have tons of baseboard on the web,  sure pricing is a thing

but now with the raspi  world / ecosystem  ???  even at your 25$ cost

boards cost are for qty of 100, 1000 ??


And yes     i would not add any current sensing / power measurements  on this  it could mess with a watchdog or a power supply startup sequence(s)

Wow, so much wrong, where to start on, well, in no particular order:

- Future availability: iMX6ULL has extended availability until 2032, that should be enough for everybody and I'm sure that by then nobody will never remember what was used in the 2022 year in RPi.
- Support: There are TONS of fully supported BSPs, from Yocto to Buildroot and PTXDist, iMX6 is the one of the most most supported MCUs in U-Boot and Linux kernel.
- Killer feature: the fully encrypted and signed firmware with HW root of trust, something that RPI doesn't have in any revision, that means, anybody can copy and "crack" your stuff and also compromise any crypto material that you'll use.
Why does this matter: EU has adopted the miserable named: Cyber Resilience Act that mandates signed and encrypted firmware.
- Anecdotal stuff: I have seen companies attempting to make commercial products of RPi,  even using those Computing Modules, they were really laughed out of the room, except for some billboards and that's it. The safest way to be considered a joke is to start your sales and/or funding pitch with: "Yeah, we have this idea based on RPi platform..." 

@datasheet: If you want more power, consider also iMX8M or 8MM and eventually the new Nuvoton 35D1xx, they all support encrypted and signed images with HW anchor of trust and can be safely used in products that will not be copied in the next 5min. Also available in industrial and automotive temperature grades. Hell, there are even some suitable Rockchips if you need much multimedia.

 Cheers,
 DC1MC

 

Offline datasheetTopic starter

  • Newbie
  • Posts: 8
  • Country: ca
Re: Design review for MX6 single board computer
« Reply #6 on: November 06, 2022, 10:06:12 pm »
To be clear this is my first project using a microprocessor, so I started small. This is not meant to be a commercial project, it's purely for learning. MX6 apparently has good software support and is widely used, and I already have the free samples. The board will be manufactured in quantity of one, maybe two if I have enough pieces left. I don't expect this to be a powerful computer, in fact I'm fully aware that I could've bought a RPi Zero for 10$ instead of spending 150$ making a single, less powerful board. The 25$ thing is what it would cost me had I made significant quantities.

I can remove the current measurement stuff, but with 10mΩ shunts and decoupling after I don't understand how it can be much of an issue.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 30273
  • Country: nl
    • NCT Developments
Re: Design review for MX6 single board computer
« Reply #7 on: November 06, 2022, 10:13:58 pm »
1A drops 10mV over a 10m Ohm shunt. At a supply voltage of 1.3V, that is almost 1% of margin you throw away. Dynamic voltage scaling (to make the processor run at various clock speeds can be steps as small as 50mV to make a difference between running stable at 800MHz or 1.2GHz. Don't underestimate the importance of the power distribution on a PCB where it comes to high speed SOCs and memory.
« Last Edit: November 06, 2022, 10:15:45 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline DC1MC

  • Super Contributor
  • ***
  • Posts: 1925
  • Country: de
Re: Design review for MX6 single board computer
« Reply #8 on: November 06, 2022, 10:26:47 pm »
To be clear this is my first project using a microprocessor, so I started small. This is not meant to be a commercial project, it's purely for learning. MX6 apparently has good software support and is widely used, and I already have the free samples. The board will be manufactured in quantity of one, maybe two if I have enough pieces left. I don't expect this to be a powerful computer, in fact I'm fully aware that I could've bought a RPi Zero for 10$ instead of spending 150$ making a single, less powerful board. The 25$ thing is what it would cost me had I made significant quantities.

I can remove the current measurement stuff, but with 10mΩ shunts and decoupling after I don't understand how it can be much of an issue.

Don't let anybody discourage you, the real and CV experience for doing successful mainstream MCU board from scratch, with all involved is invaluable. Also very few things that are not immoral, illegal or makes you fat  >:D could bring more of a satisfaction that comes when you have a board of your own concept running  :D. One can get RPis and play with them for a while and then forget them in a drawer to collect dust, because are mostly useless for anything else than low-code/no-code/Python crowd and kids in school, you really don't become a better professional from your level playing with RPi.

Regarding the current sensing resistors, leave them if you must, but drop the OP amps and just either use some larger parts or test-points to be able to either put scope probe or SMD twezzers to measure what you want. Also, if you want to do some analogue stuff, on the same PCB make some nice differential amplifiers for your DVM/Scope as detachable "biscuits" and you can reuse them on other projects, when you've done measuring replace the current sensing resistors with "real" 0ohm parts, there a lot of truth in the strange issues coming from hi-impedance power supplies. Also in place of the OP amps, put an RTC battery, see the app note and with the proper PMIC one can even go to a deep sleep more wit 6ULL.

 Cheers,
 DC1MC
 

Offline datasheetTopic starter

  • Newbie
  • Posts: 8
  • Country: ca
Re: Design review for MX6 single board computer
« Reply #9 on: November 07, 2022, 11:41:27 pm »
Alright thanks. Would it be fine if I kept power measurement for on the 5V rail only? If I use a 5-10mΩ shunt and plenty of decoupling afterwards, worst case scenario I have a 20mV drop and not on a power rail used by the SoC. I admit power sensing on other rails is not very useful, but on the input supply I still think that would be nice to have.

Don't underestimate the importance of the power distribution on a PCB where it comes to high speed SOCs and memory.
I think I'll have to revise some of the inner traces. Most of them are around 1mm on 0.5oz copper, that means 10mΩ per cm, not great... Maybe I could increase the regulator voltage to 1.4V just to be sure.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 30273
  • Country: nl
    • NCT Developments
Re: Design review for MX6 single board computer
« Reply #10 on: November 08, 2022, 01:16:07 am »
Always use poors when powering SOCs and memory and make sure to add enough decoupling capacitors using various values (like 10uf for bulk, 1uf, 100nf and 10nf) to create a wide frequency range where the power distribution network has a low impedance. Put the 10nf 0402 decoupling capacitors close to the SOC and memory. Typically I like to interconnect the decoupling capacitors where they are connected so the vias connecting them to the power plane are parallelled.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf

 

-->