Problem with i.MX28 ROM BOOT

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Problem with i.MX28 ROM BOOT

4,744 Views
Jan_E
Contributor II

Hi,

We just received a batch of first prototypes based on the i.MX28. The following happens at the debug-port:

0x80508002 ERROR_ROM_NAND_DRIVER_NO_NCB

0x80502008 ERROR_ROM_USB_CONNECT_TIMEOUT

(Repeats with some seconds interval)

It is not strange that the FLASH fails as it is empty and the USB0 is not connected at the time.

When we connect the USB0 to be able to flash our system Windows does not recognize it as an HID-device. (Happens in Linux too)

We did the same using the EVK and it works fine.

Noted was that the debug-info stopped when USB0 is connected.

We use external +5V (or USB if available) to power the PMU through the VDD5V but the voltage levels are a little strange:

VDDIO 3.155V

VDDA 1.797V

VDDD 1.175V

VDD4P2 0.838V

VDD1P5 0V

The first three are reasonable, but the VDD1P5 is not used and has only a 33uF capacitor connected. VDD4P2 seems odd too and is not used externally.

The PMU is configured according to the i.MX23 reference design with 5V only (no battery).

The DC/DC inductor is in place.

Current consumption is around 110mA@5V.

This has really put a stop for us and I would very much appreciate any help.

Thanks,

Jan

Labels (1)
Tags (4)
31 Replies

2,419 Views
peb
Contributor II

We built a working USB powered i.mx28 dongle.  The power was very simple.  You keep mentioning a I.mx23 app note, which may not be appropriate.  The quiescent power while waiting to boot was very low but had to be careful once running EMMC and other devices you could exceed the 500mA capability of USB and it would do very strange things.    The USB is nothing special and the power filter is just a ferrite bead, a bulk and bypass cap before it comes onto this page. 

mx28pwr.JPG.jpg

0 Kudos

2,419 Views
Jan_E
Contributor II

Hi and thank you for your answer.

The i.MX23 reference design is more or less exactly as your design. I read in another post that the PMU is identical. I later found an i.MX28 ref-design that was the same. Our design can be powered by external 5V, USB or PoE with no support for other memories than onboard NAND-Flash (and RAM). No battery. I have it running off of external 5V for now.

I get the power rails powering on in sequence and they are nice and clean. The clock turns on fine and the debug port prints the two error messages per above post. This lead me to believe the device is up and running as intended but when the USB cable is connected to USB0 neither Windows nor Linux recognize the device and I cannot get the RAM bootloader loaded. I have been trying to get it running with different modifications for a couple of days now without success. As it doesn't run anything else than the basic ROM-code (measured peak current @ 5V ~250mA), the regulators should be able to handle it.

An extra EVK is in the mail now so that I can compare the two designs at the signal level. Hopefully I will find something then.

The documentation describing what is going on at power on is somewhat lacking so it took a while before I got to know the 4.2V and the DC/DC is not started until much later. That ghost I chased for a while...

Regards,

Jan

0 Kudos

2,419 Views
jimmychan
NXP TechSupport
NXP TechSupport

This is a document talk about some common issue met when using i.mx28. Hope this useful for you.

http://www.docin.com/touch_new/preview_new.do?id=735290638

0 Kudos

2,419 Views
Jan_E
Contributor II

Hi,

This was a good document. I tried to find the word-version of it but could only find an older revision that stopped at page nine. The document at the link you provided has a lot of embedded files you cannot get to. Is it possible to get the updated version as a file?

Unfortunately, it didn't help me at this stage. I wait for the EVK to arrive so that I can compare signal levels etc to my design.

Thanks,

Jan

0 Kudos

2,419 Views
igorpadykov
NXP Employee
NXP Employee

Summary:

problem was caused by using the wrong crystal. After scavenging the crystal from the EVK the

USB0 appear as an HID-device properly. VDD4P2 is generated fine now as it executes some more code.

~igor

2,419 Views
denniedegroot
Contributor I

Hi Igor,

We have exactly the same issue as Jan describes. The measured voltages and ROM error codes behavior is the same.

However our boards do boot sometimes but mostly it will get stuck and displays the ROM error codes.

You wrote that the problem was solved by replacing the crystal. We also tried this but it did not make a difference.

How did you came to the conclusion that the crystal was wrong and could there be another reason for this behavior?

0 Kudos

2,419 Views
igorpadykov
NXP Employee
NXP Employee

Hi Jan

what is about TESTMODE, how it is tied on schematic ?

If unconnected, this may explain such behaviour.

~igor

0 Kudos

2,419 Views
Jan_E
Contributor II

Hi,

It is connected to GND.

/Jan

0 Kudos

2,419 Views
Jan_E
Contributor II

I honestly don't know how to proceed.

What puzzles me is that I get the two debug messages as described above (repeatedly). This in itself must mean that the ROM-code is running properly (voltages, clock etc are OK). Can someone explain why the debug-messages stop when the USB-cable is plugged in? And then reappear when disconnected?

I have tried setting boot-mode to USB0 only (resulting in no debug printouts, my design is boot from NAND as default), pressing the recovery switch at power on with and without USB power, different lengths of the USB-cable, USB over hubs, on USB3.0, USB2.0 WIN7 64 and 32 bit, WINXP and Linux.

Getting a little depressed here...

Regards,

Jan

0 Kudos

2,419 Views
igorpadykov
NXP Employee
NXP Employee

Hi Jan

you can create SR and submit ticket for schematic review.

It is highly recommended for board bring-up to use jtag.

~igor

0 Kudos

2,419 Views
VladanJovanovic
NXP Employee
NXP Employee

Hi Jan,

please also check why those voltages are wrong. Something is pulling them down оr connection issue?

br,

Vladan

0 Kudos

2,419 Views
Jan_E
Contributor II

Hi,

I see I got to you from two fronts :-). I asked the local Arrow FAE for help yesterday. I guess we can continue here.

The 4.2V is not loaded by anything other than the two 1k resistors per the i.MX233 reference design (connected to DCDC_BATT and BATT) and the 33uF. Measuring resistance when powered off is high impedance on both the 4.2V and 1.5V.

I understand some high currect event during power on can stop it from working properly. What do you suggest I start doing? Measuring voltage turn-on sequences?

Thanks,

Jan

0 Kudos

2,419 Views
VladanJovanovic
NXP Employee
NXP Employee

Have you checked that soldering on the board is fine?

Voltage turn-on sequence is good to check and verify as well.

Vladan

0 Kudos

2,419 Views
Jan_E
Contributor II

Yes,

The soldering is good. We have tried multiple boards with the same symptoms.

According to the reference manual:

"When the voltage

rails have reached their target values, the digital logic reset is deasserted and the CPU begins

executing code."

As I get debug info, all voltages must have been at correct levels.

I'll get going checking the sequence.

/Jan

0 Kudos

2,419 Views
Jan_E
Contributor II

Ok, just finished measuring.

The sequence is as follows:

- Power on 5V

- 1ms delay

- VDDIO (3.3V)

- 1ms

- VDDA (1.8V)

- 1ms

- VDDD (1.2V)

The 24MHz starts ~6ms after the 3.3V has turned on.

I also note a slight drop in the generated voltages ~5ms after they have stabilized.

To me the above seems reasonable. I don't really know where to go from here.

VDD 4.2V starts to rise at the same time as VDDIO but starts to drop slowly again after ~3ms. It never reaches more than ~0.8V.

Regards,

Jan

0 Kudos

2,419 Views
jimmychan
NXP TechSupport
NXP TechSupport

What are the following pins connected to? Please double check the following pins are connected properly. For details, please read the Table in Special Signal Considerations in i.MX28 datasheet.

pastedImage_0.png

0 Kudos

2,419 Views
Jan_E
Contributor II

Hi,

They are all connected per the table except DEBUG that is unconnected (freefloating).

What can cause the 4.2V to be unoperational but the VDDIO, VDDA and VDDD operational? From what I understand the only difference between them is the current limiter to the 4.2V. The DC/DC doesn't seem to work (from the lack of 4.2V?) so the voltages measured must be from the internal linear regulators that are supposedly weak but are enough to power the external memories leading me to believe there are at least no short cuts. The information on the PMU is however far from detailed so it is not easy to pin-point the source of my problems.

I'll start isolating the i.MX28 and see where that leads. Any further help is of course welcome!

Thanks,

Jan

0 Kudos

2,419 Views
igorpadykov
NXP Employee
NXP Employee

Hi Jan

processor behaviour greatly depends on fuses, so one can compare

fuses on i.MX28 EVK and custom board for example with OBDS fuse example

(can be run with jtag) and check sect.12.3.1 OTP eFuse Table 12-8. General ROM Bit MCIMX28RM

such as ENABLE_PIN_BOOT_CHECK fuse and others

one can also check p.15 imx28_evk_revD_sch.pdf boot selection and 24MHz crystal

IMX_OBDS : On-Board Diagnostic Suit for the i.MX28.

IMX28_EVK_DESIGN_FILES_R10 : i.MX28 EVK Design Files: Hardware Schematics

Regarding USB connection one needs to try Windows XP computer, probably try

different PCs.

Best regards

igor

0 Kudos

2,419 Views
Jan_E
Contributor II

Hi Igor,

Tahnk you for the answer.

The JTAG-pins are unfortunately not exposed on our design (the i.MX28 is straight from the box).

I have checked the 24MHz and it is running.

I will go on checking so no external power sources does anything stupid. There is an external regulator for the LAN transceiver but it is controlled by the VDDIO. I have also played around with the capacitors for the VDD4P2 with and without a resistor for the high capacity ones but nothing really helps.

Are there any good documentation on the exact behaviour of the PMU? I have already read the AN4199 but it is not very exact in how everything operates and what dependencies there are at boot time.

Thanks,

Jan

0 Kudos

2,419 Views
igorpadykov
NXP Employee
NXP Employee

Hi Jan

from log seems board is trying to boot from SD.

LCD_DATA0-3 should be low for USB boot.

LCD_RS needs to be pulled HIGH to enable Resistor Boot Mode.

if LCD_RS is pulled low, the i.MX28 will attempt to boot from OTP.

(p.15 imx28_evk_revD_sch.pdf).

Also one can try to put chip to recovery mode connecting PSWITCH

with 10 kΩ resistor to VDDIO (set PSWITCH HIGH LEVEL > 2.45V)

~igor

0 Kudos