- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Rashi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Rashi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Rashi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Rashi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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