CyU3PMipicsiInit() fails error 0x55 (CY_U3P_ERROR_BLOCK_FAILURE)

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
ScGr_289066
Level 5
Level 5
100 replies posted 50 replies posted 25 replies posted

Hi All,

We just received a new shipment of circuit boards that are not functioning.  When I watch the debug serial port, I see CyU3PMipicsiInit() is failing with error 0x55, a block error.  When I search around, I found an FX3 release note about this happening while using the I2C port.  However, my error is reported during initialization, so there has been no communication before the failure.  Both SCL and SDA signals are pulled high with 1.5K resistors and are sitting high prior to the Init call.  I should further mention that this same firmware works OK in a prior set of hardware.

USB communication is working properly, I can load firmware both into RAM or an external SPI Flash without error.  I can also communicate with the running firmware with vendor commands.

Any thoughts most appreciated.

Scott

0 Likes
1 Solution

Hello Scott,

The firmware you pointed to is working fine at my end.

The error 0x55  is due the I2C write timeout. It seems there is some issue on the I2C lines.

(You can refer to the source code C:\ProgramFiles(x86)\Cypress\EZUSBFX3SDK\1.3\firmware\fx3_sdk_1_3_4_src\fx3_sdk_1_3_4_src\sdk\firmware\)

To check the I2C connection please program the CX3 with I2CRegmode or I2CDmaMode example in the SDK. Please go through the readme.txt file to know the vendor commands to be sent and probe the I2C lines.

Regards,

Rashi

Regards,
Rashi

View solution in original post

0 Likes
7 Replies
Rashi_Vatsa
Moderator
Moderator
Moderator
5 likes given 500 solutions authored 1000 replies posted

Hello Scott,

Please refer to section (1) of this thread Re: CX3 AppInit:MipicsiInit Err = 0x55  and confirm whether you are using I2C multi-master implementation in your design.

Also if you are using custom boards, confirm that you follow the hardware guidelines (section 8.1) as per the https://www.cypress.com/file/139936/download  (AN70707:EZ-USB® FX3™/FX3S™ Hardware Design Guidelines And Schematic Checklist)

Regards,

Rashi

Regards,
Rashi
0 Likes

Hi Rashi,

The CX3 is the only I2C bus master in the system.  There are two other slave devices, an accelerometer and image sensor OV5647.  I have had both of these devices connected to the bus on the prior version of PCB, fully functional.

On power-up (before loading CX3 firmware) both SDA and SCL are high (1.8V), and I see no activity on either signal before the CX3 reports the initialization error.

Thanks,

Scott

0 Likes

Hello Scott,

Please confirm that I2C block is initialized before initializing the MIPI -CSI block (i.e. before calling CyU3PMipicsiInit API)

Also, try sending vendor commands using the I2Cregmode or I2CDMAmode example in the sdk and probe the I2C lines

Regards,

Rashi

Regards,
Rashi
0 Likes

Hi Rashi,

I am using the firmware posted by Madhu Sudhan in this link:

https://community.cypress.com/thread/16971?start=0&tstart=0.

<https://community.cypress.com/thread/16971?start=0&tstart=0>To transfer

RAW10 data using vendor commands.

I have not changed the initialization code for DMA, I2C, Mipi, etc. 

This exact code runs correctly on my last set of hardware.

Can you pinpoint causes of error 0x55?

Thanks,

Scott

0 Likes

Hello Scott,

The firmware you pointed to is working fine at my end.

The error 0x55  is due the I2C write timeout. It seems there is some issue on the I2C lines.

(You can refer to the source code C:\ProgramFiles(x86)\Cypress\EZUSBFX3SDK\1.3\firmware\fx3_sdk_1_3_4_src\fx3_sdk_1_3_4_src\sdk\firmware\)

To check the I2C connection please program the CX3 with I2CRegmode or I2CDmaMode example in the SDK. Please go through the readme.txt file to know the vendor commands to be sent and probe the I2C lines.

Regards,

Rashi

Regards,
Rashi
0 Likes

Hi Rashi,

Of course it is.  It worked fine for me too.  This is an issue with our new PCBs, which of course you don't have.

Other than SDA/SCL must be high when the CX3 initializes its I2C interface, are there any other conditions?

As I said before, it isn't a firmware issue, this exact firmware works on our last generation of PCBs.

From a hardware perspective, I have one device attached to the I2C bus, a MMA8652.  I have carefully probed the SDA/SCL signals and see no activity on either one when the CX3 initializes.  So how can the CX3 timeout on an I2C transaction when neither of the signals change?

I should mention that we have having another issue with these boards.  I would refer you to this case: https://community.cypress.com/message/210309?et=watches.email.thread#210309 perhaps the two issues are related.  Admittedly, at face value they don't appear to be related but the I2C bus is running at 1.8V.

Thanks,

Scott

0 Likes

Hi Rashi,

It appears the issues may be related.  We modified a board by connecting 3.3V to 1.8V (all the 1.8V are also 3.3V compliant).  The I2C bus initializes without error.

Scott

0 Likes