USB superspeed peripherals Forum Discussions
1. our purpose to generate following i2c sequence:
START-0xDA-0x33-0x05-0x00-0x00-0x00-0xa1-0x00-0x80-0x01-0x01-0xa2-restart-0xDB-(read)0x33-0x41-0x02.....0x78-STOP
2. we are trying to use CyU3PI2cTransmitBytes API. but Preamble Values more than 8 bytes are not supported.
3. we are also try CyU3PI2cTransmitBytes + CyU3PI2cTransmitBytes to generate the sequence. the signal between these APIs is stop-start not restart.
START-0xDA-0x33-0x05-0x00-0x00-0x00-0xa1-0x00-0x80-0x01-0x01-0xa2-stop-start-0xDB-(read)0x33-0x41-0x02.....0x78-STOP
our i2c slave device not support it.
4. from the following link, seems fx2 also have this issue. and there is an workarround. can you help check our fx3 can also take this method and how to do?
CY7C68013A I2C repeated start condition.
thanks
xingxing
Hi all,
I working on Fx-3 I2C interface. Fx-3 acts as master and stv0913 (Demod) and RDA5815S (Tuner) acts as slave.
In cypress I2C code as below.
CyU3PReturnStatus_t I2C_Write ( uint8_t slaveAddr, uint32_t count, uint8_t *buf)
{
CyU3PReturnStatus_t status = CY_U3P_SUCCESS;
CyU3PI2cPreamble_t preamble;
CyU3PDebugPrint (1, "I2C Write operation - dev:0x%x, size: %d,\r\n",(slaveAddr<<1), count);
/* Update the preamble information. */
preamble.length = 1;
preamble.buffer[0] = ((slaveAddr<< 1) | I2C_Operation_Write );
preamble.ctrlMask = 0x0000;
status = CyU3PI2cTransmitBytes (&preamble, buf, count, 100);
if (status != CY_U3P_SUCCESS)
{
return status;
}
/* Wait for the write to complete. */
status = CyU3PI2cWaitForAck(&preamble, 100);
if (status != CY_U3P_SUCCESS)
{
return status;
}
/* An additional delay seems to be required after receiving an ACK. */
CyU3PThreadSleep (1);
return CY_U3P_SUCCESS;
}
Note 1: this function i am using 2 API
1. status = CyU3PI2cTransmitBytes (&preamble, buf, count, 100);
2. status = CyU3PI2cWaitForAck(&preamble, 100);
1. This code is working fine for Demod I2C write operation ( I am able to wirte the data to specific memory and i can read the data from same memory). the above 2 API gives status as CY_U3P_SUCCESS.
2. If i am try to writing data to tuner i am getting CY_U3P_SUCCESS after calling status = CyU3PI2cTransmitBytes (&preamble, buf, count, 100); API. But I am getting status value 74 after calling status = CyU3PI2cWaitForAck(&preamble, 100); this API.
Note 2: 1. if i am sending only I2C_slave address with count value=0 its working fine.
1. if i am sending I2C_slave address with count >0 its not working.
I probed the I2C bus with CRO. i am getting ACK at 9th clock cycle of every byte i attached the Image also ( slave address is 0x18).
Note 3: If i am writing the data to tuner to some register, i am getting status value 74 (CyU3PI2cWaitForAck) means NACK. But i am able to read the same register its giving the correct value what i sent in previously.
Q1. why i am getting error code 74? if slave responding a ACK signal.
Thank you
With Best Regards,
Thrimurthi M
Show LessHi,
I am implementing the CYUSB3064 IC in my design. I am iterating the SI simulations on this Cypress bridge IC and need to validate its CSI 2 lane interfaces for both the CSI channels.
Please share any references or document for CSI-2 lane eye mask specifications if the CSI signals are referenced to the clock speed range of 250MHz to 950MHz.
Thanks,
Dhara
Show LessHi All,
According to the snippet in the "AN75705 Getting Started with EZ-USB FX3.pdf" chapter 7:
However, I got the error message "CYU3P_PIB_ERR_THR0_WR_OVERRUN" from CyU3PPibRegisterCallback(), while trying to receive a higher FPS data and then transfer it to PC.
I'm confused whether the error conflicts with the snippet in the pdf?
How to explain the error message?
Hope someone could provide any suggestion. Thanks a lot!
Show LessI've been receiving the following windows error on both the Superspeed Explorer Kit and custom hardware using the same CYUSB chip:
"The driver for this device has been blocked from starting because it is known to have problems with Windows. Contact the hardware vendor for a new driver. (Code 48)
Click 'Check for solutions' to send data about this device to Microsoft and to see if there is a solution available."
There have been numerous posts showing people having this issue in the past and it was typically resolved by installing the latest driver, 1.2.3.20. For my purposes, this has not been adequate to mitigate this issue.
- I've received this same issue on 2 PCs, both having Windows 10 with version 1809 (10.0.17763.503).
- I've tried reinstalling the cypress SDK.
- I've tried using old drivers including 1.2.3.14 and 1.2.3.9 without any success.
- I've reinstalled (manually) the latest driver (1.2.3.20).
- I've also completely reformatted my computer with no success.
Also, I was previously able to connect to these devices with my PC but am no longer able to.
Has anyone else had this issue or know of a work-around?
Show Less
I am using CY3065 to capture RAW12 video stream of 640x480@ 120 FPS, MIPI receiver configuration as follow:
I set the delay time: CyU3PMipicsiSetPhyTimeDelay(1,5); buffer length: 27648; buffer count: 4
Correct situation:
I configure sensor and receive data, data length is : 640*480*1.5 = 460800 -> this is correct.
I catch the LV signal, the +width of FV is 3.33us, equal to CX3 MIPI interface configuration H Active.
the -width of LV is 4.17us.
the total time of the LV is 3.66ms, so i can calculate the line numbers are: 3660/(3.33+4.17) = 488 ≈ 480 -> this is correct.
Error condition:
I configure sensor using another parameters and capture data length is : 350640 - > error data length.
the FV signal as follow:
the +width of LV is 3.33us, equal to CX3 MIPI interface configuration H Active.
the -width of LV is 2.04us.
the total time of the LV is 2.66ms, so i can calculate the line numbers are: 2660/(3.33+2.04) = 490 ≈ 480 -> hence, this is correct.
I try to set other parameters to image sensor, so i can change the -width of the LV, and find that if -width of LV less than 4.0us, i can't capture correct data length. The smaller -width of LV, the shorter data length i can capture. if the -width of LV more than 4.0us, i can capture the total frame data: 640*480*1.5 = 460800 Byte.
How to solve this problem?
Show LessCould you provide below test item required for CYUSB3014?
Test Item | Required |
USB2.0 Tx | Test Packet/Test J/Test K/SE0_NAK/Suspend/Resume Command |
USB3.2 Tx | CP0/CP1 Command |
IOP | Target Peripheral List |
Thanks,
Mitchell
Show LessHello,
I am using the FX3 in serial in- and output GPIF mode at approx 100Mbit/s with pin DQ14 as input and DQ15 as output, based on info in the firmware include file gpif_regs.h.
It works fine using a simple state machine. Also word length can be set, and packing into 32 bit words etc.
My question is: can a compare data action CMP_DATA be done in the GPIF state machine in serial mode?
What is the data representation in the state machine with serial input data? Is it just a bit at a time, so should one just compare with either a 1 or 0 or must one compare on the word level?
My goal is: I would like to look for a certain pattern in the serial input data (say a word with all 1's) and once this is detected write data in the data sink socket. Can this be done using CMP_DATA?
regards
Show Less