USB low-full-high speed peripherals Forum Discussions
Hello
Is there a way to check if the program is written correctly after writing the program to the CY7C65211A device using the USB serial configuration utility?
(For example,Check Sum on PSoC Programmer)
There is an item called Verification, but it is not highlighted and I feel that it cannot be used alone.
Or is it possible to perform Verify or Check Sum of CY7C65211A on PSoC Programmer?
Best Regards
Haya
Show LessHi Cypress
Whether MCU support Windows update as below and attachment file for reference , Thank !!
Hello.
1) What is the max baud rate supported by the CDC driver and the CY7C65213A? For example, max baud rate with CDC driver on Windows / Linux.
2) The GPIO on the CY7C65213A are non-volatile and configurable using the Cypress GUI tool. Are the API calls documented to allow us to configure the same GPIO pins using custom code?
3) If using the 2 port device CY7C65215A, is the enumeration guaranteed to be with UART #0 to be first and UART #1 next? This important for our connector to map the proper UARTs and in sequence.
4) In reviewing this important correction:
CY7C65213A TXDEN signal polarity
The UARTs inside the CY7C65215A are also impacted by the same typo? Please confirm that the TXDEN is ACTIVE HIGH which is most popular with RS485 transmitter ENABLEs.
5) Guessing these devices are PSOC based? Are the project files available to build our own version of these UARTs using the PSOC with flow control lines (8 pin) & RS485 support? Ideally to make use of the non-volatile pins to customize for our designs.
Thanks.
Show LessHello. The CY7C65213A is noted to be CDC driver compatible. Using only the CDC driver, can the RS485 mode be supported or is the Cypress driver required to be loaded to enable this mode? This is not clear to us from the datasheets.
Thanks.
Show LessHello,
I am interfacing to an I2C 128x64 OLED display with the FX2LP. I would like to display a graphic on the OLED while the other parts of the system are booting. I would need a maximum of a 1024-byte array to hold the graphic. How can this be done for the FX2LP? I've tried to make such an array and when I program the FX2 it does not enumerate.
Thanks,
Dave
Show LessDear all,
My company has purchased a few PassMark USB 3.0 Loopback plugs.
The company has an API for C++ for using this plug, but since we mostly develop in C# I asked them if they supplied their API for .NET which they don't.
However their hardware uses Cypress hardware (they link to Cypress EZ-USB FX3 SDK) so I thought of using the Cypress SDK in conjunction with SuiteUSB 3.4.
So far I've managed to establish a connection and send data back and forth, using SuiteUSB 3.4, over USB and this works fine.
However, there are a few vendor specific (PassMark) commands that I would like to send to the plug.
I've looked into how this is done in PassMarks C++ console implementation and it works fine.
My idea is to mimic this behaviour using SuiteUSB3.4.
For instance they perform
double Voltage = 0;
SendVendorCommand(CurUSBDevice, VENDOR_REQ_READ, GET_VOLTAGE, (UCHAR*)&Voltage, sizeof(Voltage));
bool SendVendorCommand(CCyUSBDevice *USBDevice, USB30_VENDOR RequestType, WORD wValue, UCHAR *buf, LONG buflen)
{
CCyControlEndPoint *ept;
if (USBDevice->IsOpen() == false)
return false;
ept = USBDevice->ControlEndPt;
ept->Target = TGT_DEVICE;
ept->ReqType = REQ_VENDOR;
ept->ReqCode = 0x00;
ept->Value = wValue;
ept->Index = 0;
if (RequestType == VENDOR_REQ_READ)
ept->Read(buf, buflen);
else
ept->Write(buf, buflen);
return true;
}
which is fairly straight forward for reading the voltage for the device.
I want to perform the same in C#
ReadVendorCommand(device, GET_VOLTAGE, sizeof(double));
private byte[] ReadVendorCommand(CyUSBDevice device, ushort wValue, int lengthToRead)
{
var controlEndPoint = device.ControlEndPt;
controlEndPoint.Target = TGT_DEVICE;
controlEndPoint.ReqType = REQ_VENDOR;
controlEndPoint.ReqCode = 0x00;
controlEndPoint.Value = wValue;
controlEndPoint.Index = 0;
controlEndPoint.Direction = 1;
byte[] data = new byte[lengthToRead];
var result = controlEndPoint.Read(ref data, ref lengthToRead);
if (result) return data;
return null;
}
However, the data returned is all zeros (8 of them to be exact) and the lengthToRead (which was 8 when calling controlEndPoint.Read) is now only two bytes.
I've checked and the data and all patterns up to the call seem exactly the same as in the C++ code.
Since SuiteUSB 3.4 has not been updated for some quite some time (9 years) I was wondering if anyone else has any leads or tip that could point me in the right direction to resolve the issue.
Thanks a lot in advance,
Magnus Sydoff
Show LessHi, I bought a CYUSBS234 DVK and used the quick start guide to test i2C-USB bridging functionality, which worked perfectly using the USB Serial Test Utility provided with the CYUSBS234 kit setup. But now I have a few questions before I can start using the kit:
1. I found this page which explains pretty well how to hook up an external i2c device to my kit. But I do not know how I could interface with this device once plugged in. Should I use the USB Serial Test Utility?
2. Actually, I need to understand what happens when you leave the shorts on the jumpers J17 and J21 on the kit, and run the I2C-USB test with the USB Serial Test Utility like I did. Is the software sending data directly to the CYUSBS234 chip (and then where do the jumpers lead??), and then the chip is programmed to exactly retransmit the received bytes via USB?
3. What would happen if I removed the J17 and J21 shorts and connected the external device as explained in the link above? would the utility still reach the chip, and then the signal would be sent via the jumpers to the external device?
4. Is there a way or a software I could use to test sending I2C commands from my computer through USB through the kit and then to an external device? This is basically what I want to do, but I want to understand what is going on in the kit and how i can do that.
Thank you!
Show LessHello,
I am using the bulkloop example project to build a USB to I2C data bridge. I am using the example that includes the fxlpi2c.c and fx2lpi2c.h files. I currently have an I2C display connected to the FX2LP and working. I have been trying to figure out how to take USB data from EP2 in the TD_Poll() function from EXTAUTODAT1 and send it out over I2C. I've tried the code below but it doesn't seem to work. In USB Control Center I can transmit a byte fine.
void TD_Poll(void) // Called repeatedly while the device is idle
{
WORD i;
WORD count;
BYTE __xdata buf;
// FX2LPI2C_XmitString("Packet of Byte Count = ");
// FX2LPI2C_XmitHex4(count);
// FX2LPI2C_XmitString(" being moved to EP6\r\n");
// FX2LPI2C_XmitChar('R');
if(!(EP2468STAT & bmEP2EMPTY))
{ // check EP2 EMPTY(busy) bit in EP2468STAT (SFR), core set's this bit when FIFO is empty
if(!(EP2468STAT & bmEP6FULL))
{ // check EP6 FULL(busy) bit in EP2468STAT (SFR), core set's this bit when FIFO is full
APTR1H = MSB( &EP2FIFOBUF );
APTR1L = LSB( &EP2FIFOBUF );
AUTOPTRH2 = MSB( &EP6FIFOBUF );
AUTOPTRL2 = LSB( &EP6FIFOBUF );
count = (EP2BCH << 😎 + EP2BCL;
// loop EP2OUT buffer data to EP6IN
for( i = 0x0000; i < count; i++ )
{
// setup to transfer EP2OUT buffer to EP6IN buffer using AUTOPOINTER(s)
EXTAUTODAT2 = EXTAUTODAT1;
}
EP6BCH = EP2BCH;
SYNCDELAY;
EP6BCL = EP2BCL; // arm EP6IN
SYNCDELAY;
EP2BCL = 0x80; // re(arm) EP2OUT
buf = (BYTE __xdata)EXTAUTODAT1;
EZUSB_WriteI2C(0x3C, 1 , &buf);
}
}
Thanks,
Dave
Show Lessi have an fx1 cip (cy7c64713 mcu) on 8 of my equipments
after an power crash one of the equipment is dead usb is not recognized
what I need to copy the code from 1 *64713 to another?
can I do this thru the usb port of the equipment wich is directly connected to the 64713?
thanks
Show Less