imx233 weird DCDC capacitor problems

Image

We started our OSHW Linux computers with imx233 processors from Freescale. The reason was that it was cheap and possible to buy in any quantity + they came in TQFP package and are easy for DIY at home, so anyone can build his own Linux computer.

Many thousands of imx233 based OLinuXino devices are sold and work reliable in many applications, but recently we were bumped in weird problem with the imx233 DCDC.

imx233 is highly integrated SoC as it’s purpose when designed was media player, so the all internal voltages are generated with internal DCDC.

If you look at the schematic above you will see L1 with C74 C75 are used in the internal DCDC. Freescale recommends C74 and C75 to be not populated in the users manual, but we found when ran the first lot of OLinuXino that if C75 is missing the board will never start when powered by LiPo battery only. Touching the C75 pads with scope probe started the boards, so initially we decided to put there small 10 pf capacitor, with this value the boards were starting reliable if LiPo is only connected.

We all know that processors and components have tolerances, after we ran more boards we got some statistic and some of boards didn’t want to start with 10 pf, we play more than week and found that if we rise C75 to 100 pf this solve all startup problems and all boards which were failed on the test for this condition were cured with C75=100 pf

So far so good, we put 100 pf in the production manuals and continue to manufacture imx233 boards, while last week we got call from customer, who bought 50 pcs imx233-mini and some of them failed to work with USB. He did some analyze and found that the difference between boards which work and do not work use different date code USB hub chips GL850. We asked these boards back and start investigation.

When we received them we run them on our functional tests and … all they pass the test, this was weird as customer reported these to have problems. After a while we found the difference – in our tests we use ARCH linux image, while the customer was using Debian, we run Debian Linux and same boards which worked with ARCH image start to give errors ONLY in case you attach USB flash drive to the USB port!

NOW this was really weird, as with the old data code USB GL850 hubs the boards were working with both Debian and ARCH but with the new date code hub only ARCH image was working and Debian image was giving errors when USB Flash drive is attached.

We spent about week to chase this problem as it is some mix of both hardware and software issues and after a week of investigation we found the problem is caused by … C75(!) reducing C75 to 15 pf solves the USB port problems. Now this is really weird.

If C75 is lowered problems with startup of the DCDC when powered with only LiPo occur, when C75 is with higher value the DCDC becomes very sensitive to the overall power consumption and when USB flash drive is attached to some USB hubs which obviously have different power consumption due to tolerances the USB port start to give errors.

We obviously have no intern knowledge how this DCDC is implemented in imx233 and why it interference with USB ports to dig to the root of the problem, for the moment replacing the C75 solves the problems, but anyway this still is weird bug.

We can’t also understand why ARCH linux image is more immune to these problems and what is the difference between USB port initialization with ARCH and Debian images.

Any help and comments on above is welcome from people who know more :)

 

EDIT: Here is some more information which I forgot to attach at the beginning:

this is with ARCH Linux distribution build with Kernel 2.6.35 we use when mass storage is plug in USB: http://pastie.org/9283768

this is with Debian distribution built with Kernel 3.11 when MOD-RTL8188CU is plug in USB: http://pastie.org/9283772 everything is normal

these are the error messages with same Debian distribution when USB flash drive is plug in: http://pastie.org/9283780

 

EDIT2: This issue only happens when hub is connected to imx233 USB host – either GL850 either LAN9512, the issue do not happens on Micro and Nano where there is no hub between imx233 host and USB mass storage.

Slackware live image for imx233-OLinuXino

Image

guanx posted on our forum that created Live Slackwarearm-14.1 System image for imx233-OLinuXino.

Here is the readme.txt , the sources and microSD card image

Friday Free Board Quiz – Week #55 prize is iMX233-OLinuXino-NANO

Image

iMX233-OLinuXino-NANO is the smallest Linux Single Board computer from the Open Source Hardware OLinuXino project.

The board dimensions are just 76.2 x 20.8 mm (3 x 0.8″).

You have chance to win this board if you participate our Quiz.

Today at 17.00 o’clock our local Bulgarian time (GMT+3) we will post on Twitter our questions.

You have one hour to reply to our tweet with the correct answer.

At 18.00 o’clock we will count the correct answers and ask random.org to generate random number in range then announce the winner and ship the board by airmail in Monday.

Debugging iMX233-OLinuXino with OpenOCD and SJTAG Tutorial

Image

Christian Jann posted wonderful tutorial how to setup OpenOCD and SJTAG to debug iMX233-OLinuXino.

Reading the post I see Christian had no SJTAG and borrowed one from a company, we are going definitely fix this and next week will send him one of our iMX233-OLinuXino-NANO which now is assembling and iMX233-SJTAG so he could continue with his interesting tutorials :)

OpenWRT for iMX233-OLinuXino trunk now with 3220 packages

Image

Few weeks ago I blogged for OpenWRT – the lightweight Linux distribution for routers which now officially supports iMX233-OLinuXino http://olimex.wordpress.com/2013/07/08/imx233-olinuxino-is-supported-by-openwrt/ .

At that time the package trunk was not complete, but now there are 3220 packages inside!

There is nice set of useful tools: sip, apache, avrdude, ctorrent, gawk, gdb, lua, perl, php, python, ruby, svn and many others the full list is here: http://downloads.openwrt.org/snapshots/trunk/imx23/packages/

So now under OpenWRT is possible to make IP phone, small torrent downloader, internet radio or streaming device with iMX233-OLinuXino.

We may need to add small Serial Flash instead of SD-card for future version as most of the routers which run OpenWRT need only few MB of Flash.

On top of this OpenWRT is using latest Kernel 3.10, well done OpenWRT team!

Meet the iMX233-OLinuXino new member: Nano

Image

Fresh out of the reflow oven: iMX233-OLinuXino-NANO is the smallest iMX233 board we have.

We try to shrink it to the max and the size now is just 76 x 20 mm (3 x 0.8″).

The board features are:

  • imx233 at 454Mhz
  • 64MB RAM
  • micro SD-card
  • USB host
  • LiPo charger
  • UEXT connector

When we designed this board we had two goals:

  • to make it breadboard friendly and we did this with 0.7″ between the header pins on the two edges, so you can easily plug it to BREADBOARD-1
  • to enable creation of handheld devices with it, the board have LiPo charger and step-up converter which allow USB devices to work even when the board is LiPo battery powered, so you can make Handheld WIFI deveices with this board running Linux and with all GPIOs available in two row headers

It’s pity as we try hard but couldn’t shrink NANO to DIP 0.6″ width but we got close to it :)

Image

Now we have to do some serious testings and if everything goes well will run production by end of July. The price will be similar to iMX233-OLinuXino-MICRO.

iMX233-OLinuXino-NANO was designed in 6 layer with proper care taken for noise immunity.

FRIDAY FREE BOARD QUIZ ISSUE #38 PRIZE IS iMX233-OLinuXino-MICRO

Image

iMX233-OLinuXino-MICRO is the lowest cost OLinuXino OSHW Linux computer which price starts from EUR19.20 for50+ pcs order

You have chance to win this board if you answer today’s Quiz question.

Today at 17.00 o’clock our local Bulgarian time (GMT+3) we will post on Twitter our questions.

You have one hour to reply to our tweet with the correct answer.

At 18.00 o’clock we will count the correct answers and ask random.org to generate random number in range then announce the winner and ship the board by airmail in Monday.

Do not forget at 18.00 o’clock we will post our Weekly Programming Challenge #6, yet another way to challenge your programming skills

Previous Older Entries

Follow

Get every new post delivered to your Inbox.

Join 529 other followers