OpenRex PMIC Testing and Programming

For our new open source board we decided to use a configurable power management chip as a main board supply. On this page you can find how to program and test these kind of circuits. Our selected component MMPF0100A is designed to provide all the important power rail for i.MX6 processor series.

Overview

The main advantage of this solution is the number of components needed and thus a board cost. On the other hand, before we will use this IC, we need to configure it first . Because of our special requirements, we could not use any of the offered pre-programmed version for this PMIC (we used a NP version). The programming procedure affects the One Time Programmable (OTP) registers. This PMIC series offer also an option to try it without permanent programming - Try Before Buy mode. For more info about the procedure have a look at the product datasheet (original document here) and at the programming application note (or here).

Testing with development board

Before we will program the OpenRex board, we will test the configuration using MMPF0100 evaluation board. This board provides all the PMIC options and capabilities. We also test configuring PMIC with PF Series Programmer. The procedure described below is slightly more complicated than the recommended programming steps, but this way we will emulate how the OpenRex board will be used.

Programming procedure with the development board:

1. Download and install the latest software for the PF family (you may need to sign up at the NXP site). Note: From version 4.1 and above, you don't need to download any other software and drivers (as described in datasheet).

2. Open PF_Series_HID.application and connect PF Series Programmer with PC using USB Mini cable.

3. Check development board jumpers. Use default jumper configuration as described in evaluation kit datasheet with these exceptions:

Programming the PMIC on OpenRex board

First batch of our OpenRex board arrived non programmed. During the initial testing we will use TBB mode. After the interfaces will be tested and after we are sure that all voltages are working as expected, we will program the PMIC permanently.

Hardware connection

Temporarily we will connected the programmer into our board this way:

Important notes:

Remove resistor bypassing I2C1 with PMIC I2C (Remove R238 and R247)

Place pullup resistors to I2C signals

PMIC VDDOTP voltage should be disconnected for Try-Before-Buy mode (just to be safe)

+3V3 power voltage is protected from backward leaking from board to programmer (we used a standard 1A Schottky diode)

Here is how we wired up the programmer:

Position - Ribbon color

Programmer header

OpenRex

Pin 1 - brown

VPGM

PMIC_VDDOTP (for TBB NC)

Pin 2 - red

V3V3 ->diode->

+3V3 (R226-pin 2)

Pin 3 - orange

GROUND

GND (U23-pin 2)

Pin 4 - yellow

SCL

I2C1_SCL_PMIC (big VIA)

Pin 5 - green

SDA

I2C1_SDA_PMIC (big VIA)

Pin 6 - blue

PWRON

PWRON (big VIA)

Pin 7 - violet

GPIO1

NC

Pin 8 - grey

GPIO2

NC

Try-before-buy programming procedure

For temporary programming we will use slightly updated process as we use with development board:

1. Open PF_Series_HID.application and connect PF Series Programmer with PC using USB Mini cable

2. Connect 5V input voltage to the OpenRex board

3. Plug the connector with soldered wires into the PMIC programmer

4. Enable Target and scan for the devices in the application. At this point you should see these messages in the log area: