Saturday, February 25, 2012

Measuring boot voltage on PandaBoard ES - part 1

What am I trying to do?

Pandaboard ES OMAP4460's main voltage rails are vdd_mpu, vdd_core, vdd_iva.

MPU and IVA domains have dependency on Core (obvious since Core drives the common bus on OMAP called the L3 bus). Our intent here is to measure voltages of these rails and ensure they are the right voltage levels and in the right sequence as U-boot SPL comes up.

Stage #1 - knowing what to measure
This is pretty easy on most other boards, but on PandaBoard ES, things are a mite more interesting.  Unlike most other OMAP3 and OMAP4430 boards,  OMAP4460 on Pandaboard ES is powered by 2 PMICs!. A TPS62361 drives it's vdd_mpu rail while TWL6030 supplies the vdd_iva and vdd_core rails.

lets look at each one in detail: (the following figures are excerpts from schematics of PandBoard ES)

As seen in the schematics, TPS62361 is a slightly different beast to deal with. Three paramaters play an important role for the voltage to appear in the inductor at L23.
  1.  is "EN" (signal PHO_SYSEN)
  2. The internal registers used to select the voltage is selected by VSEL0 and VSEL1 (only VSEL0 is controlled by OMAP over the signal H_GPIO_WK_7) - this basically means that VSEL0 allows the selection of 2 registers - SET0 or SET1 register inside TPS (SET0 default is <1V, which SET1 defaults approx to 1.4ish volt - refer to latest dataasheet for accurate spec).
  3. and finally the voltage itself which is send from OMAP to TPS over I2C (SRI2C for OMAP).
This chip is like any other chip - Programming sequence in a nutshell is simple:
ensure that EN pin is active and VSEL0 is set properly, program the voltage and bingo, the voltage appears on L23 inductor. A small point to remember is that EN pin actually is driven by SYSEN line of TWL6030. SYSEN is asserted when OMAP4460's PWRREQ is asserted - so this allows for TPS to hit 0V when OMAP4460's "OFF" mode is achieved. Kinda wicked if you saw this the first time coming from simple OMAP <-> PMIC story..

Now to vdd_iva and vdd_core:

Good news: this side of the story is rather simple :). Since VDD_MPU is now driven by TPS, TWL6030 VCORE1 supplies vdd_Core (VDD_VCORE3 in the schematics) and VCORE2 supplies vdd_IVA (VDD_VCORE2 in the schematics) - without going into much details, it is just programming the voltage register over SRI2C.

Bottom line:
vdd_MPU =  L23
vdd_Core = L14
vdd_IVA = L16

Remember typically the inductors when probed show noisy signal towards PMIC and clean signal towards OMAP (duh.. that is exactly what an inductor is supposed to do in the first place) - so use it to figure out which side of the inductor to solder the wire on..

umm... where are the inductors on the board??
A long story short  download the user manual and look it up. I was told to RTFM after a failed experiment with gerbv and following which I ended up getting access to a windows machine and installing allegro - converting the brd file to search-able PDFs.

Stage #2 - An soldering strategy
Deciding to solder is usually easy, but the hard part is looking at the components. Disclaimer: Am just a code junkie, so many of my personal thoughts on soldering may be outright wrong ;).. Read at your own risk..

If the wire is too thick, e.g. a 22guage on a tiny resistor puts a lot of pressure on the poor little thing and will break off eventually. if too long it picks up all kind of noise distorting the measurements.

Now, I have a DSO Quad (handy little oscilloscope that could be praised in it's own right). Anyways the connectors are standard passive scope connector like + "clumsy me" factor - I always tend to get something caught in power wire or in the scope cable or so and.....

Found some of PCB board headers I had lying around and decided to stick them with super glue to the PCB. This lets me connector jumpers that I can remove + add more wires in the future as I need, once I am done probing, I wont have wires waving in the air looking for the closest ground source either ;) - of course stick it someplace close to a ground point..

[Update: 2012025:1931: David Anders pointed that the entire steps have been simplified here I still think this series is useful as it explains the fundamentals of the same.]