USB low-full-high speed peripherals Forum Discussions
I'm working on USB serial i2c example based on cy7c65215 USB to serial bridge.
I find that if change the variable CY_I2C_CONFIG and CY_I2C_DATA_CONFIG to a static variable, the waveform output from cy7c65215 goes to an unexpected waveform, quite different from what I set
the picture up there is the right waveform that I expect the slave address is 0x69 when I did not add the 'static' before the variable definition.
but if I add the 'static ' keyword before the variable definition, the waveform goes bad, like the picture below
Does anyone know what goes on after I add the static keyword?
We have a CY7C68013 FX2LP processor connected to an FPGA device. Data is received from a host processor via Full Speed USB on EP2. Since it is FS USB, each packet is 64 bytes. The FX2LP processor then commits each 64-byte packet in EP2FIFOBUF to the peripheral domain and writes data to the FPGA via GPIF. I noticed that the data stream from the host processor contained large batches of contiguous zeros. To reduce USB transmission time, I devised a scheme for the host to send a special command to the FX2LP processor to generate the zeros locally. After receiving the command, I want the FX2LP processor to write the specified number of zeros (more than 64) to the FPGA. After much experimentation, I found that I can achieve this by clearing the EP2FIFOBUF to zero, then setting the GPIF transaction count (GPIFTCBx) to the desired count, and initiating a GPIF FIFO write transaction from EP2FIFOBUF. In the example below, 4000 zero bytes are written to the FPGA.
byte_cnt = 4000;
memset(EP2FIFOBUF , 0, 64); // clear EP2FIFOBUF
OUTPKTEND = 0x2; // commit EP2 buffer to peripheral domain
GPIFTCB1 = byte_cnt>>8; // MSB of data count
GPIFTCB0 = byte_cnt; // LSB of data count
GPIFTRIG = GPIF_EP2; // launch GPIF FIFO WRITE Transaction from EP2 FIFO
while( !( GPIFTRIG & 0x80 ) ); // wait for GPIF Done bit
This seems to work, but I don't understand why. By experimentation I have found that when the data count is larger than 64, the 64th byte in EP2FIFOBUF (i.e. EP2FIFOBUF) is repeatedly written to the FPGA. I would like to understand why this is working so that I can be assured that it is a reliable solution. I have not been able to find any information in the FX2LP documents to explain this behavior. I would appreciate if someone could provide some explanation.
I use USB Control Center to wite to EEPROM as shown in Figure 7-17 in CY3674/CY3684 EZ-USB Development Kit User Guide. But I found I can not write an image file larger than 512 bytes. Could you help? Thanks.
Hello Everyone !
I have attached Flash Nands with my Controller and am using it as a usb(MSC) drive.
How to read/write file or data to a certain address to the nand and verify it by a fixed command over uart before enumerating as msd.
Basically the purpose here is to verify health of the attached nands
Any help would be highly appreciated.
We have been using CY7C65211-24LTXIT USB-I2C bridge on one of our products for years. Surprisingly, USB-Serial IC failed to load custom configuration on all of the newly assembled boards. Please help to fix the issue at the earliest as the production is on hold now. If needed, we can arrange a board for debug.
Firmware version: 18.104.22.168.
我从8051发了数据到PC，在EP6IN看到的数据是对的，但是我在PC看到的是ffffffff... ； 我重新从8051再发一次相同数据到PC后，EP6IN和PC的数据就都是对的了，也就是说我需要发两次请求才可以得到想要的数据。于是我就想了一个方法，第一次先arm一个不使用的EP（比如EP2IN）,再arm真实需要的EP6IN就可以在PC只得到想要的数据了（不会有第一次的ffffff数据）。能帮忙分析一下是因为什么问题吗？如果可以的话麻烦留个邮件地址以便及时和您沟通，谢谢。Show Less
Hi, I got the same problem. "Why in manual mode the slave fifo interface flags don't change?"
and I can not get the answer from this case. It has been a long time since this case created.Show Less