USB low-full-high speed peripherals Forum Discussions
I'm a newbie programming a FX2 device using the standard driver on Windows Vista. I'm having problems (sometimes) connecting to the device (CreateFile() returns -1) and then call GetLastError() to deterine the error condition.
Unfortunately, I have not been able to locate the list of software driver error codes and their meaning. Where are these defined (which document) in the development kit or somewhere on the web site?
Thanks, R
Show LessThis is the first time that I have posted on the Cypress forums so hopefully someone can help out. And this is my try at using an FX2. I've been working on trying to get the EZ-USB FX2 to transfer data from an ADC (Analog devices 9251) but just can't get it to work. I've tried just about everything at this point so now I'm going to the developer community for help.
Our board has 3 main components at this point: a Microchip PIC32 micro-controller, the AD9251 ADC and the FX2. The PIC32 is something that I'm very familiar with and that part of the project is working well [now], The PIC32 controls the ADC and all communication with the host is done with the FX2. The idea is that you send a [vendor] command to the FX2 which uses GPIO pins to signal the PIC32 to start the ADC so that data (which is connected to the FX2 via the FD0:15 bus) will flow to the FX2 (which is configured in salve FIFO mode) and to the host.
So that's how it's supposed to work. I know that the PIC32 is doing what it is supposed to do as is the ADC. Unfortunately, no data from the ADC ever gets into the EP6 FIFO of the FX2. I've read through the TRM many times, looked at what few examples there are and added a lot of debugging vendor commands so that I can see what's in the EP6 FIFO and the various registers. Everything looks like it should be working but I get no data from the ADC into the EP6 FIFO.
I've attached my periph.c file (I didn't rename it yet) to show what I have done. If anyone can take a quick look at it and see if I am doing anything wrong, it would be greatly appreciated. I had originally set AUTOIN to on for EP6 (that didn't seem to work) but then tried setting when I actually get the [vendor] start command so that it did a 0->1 transition. Again, that did nothing.
I'm really at a loss here. The FX2 is supposed to be a very simple chip to use. Using slave FIFO mode is "just supposed to work". Of course, like most other things that's not the case. So if anyone can point me in the right direction, it would be greatly appreciated.
Show LessWe are are a small design and manufacturing company. We have a product based on a CY7C64714 chip. It has worked really well in it's existing form for about 4 years. We are planning some added features which involve writing some extra code. We have tried for a long time to get this new code to work, but without success, so we are looking for someone to get it up and running for us.
The code is written in C using the Keil uVision development environment.
More details on request.
Thanks
Neil. Show Less
Here's a fabulous article from a Cypress author on making USB Flash drives secure using a West Bridge architecture: http://www.embedded.com/design/225402174. Enjoy!
Show LessCan anyone tell me the throughout of CY7C68013A configured in Bulk,EP2, 4x 512, GPIF?
Recently, I am involved in developing an application to transfer data at 20MB/s . Configured as described above, the data misaligned at the first 2K border. Do anyone know how to solve the problem.
Thanks!
Show LessI am facing a huge issue with making the USB work on this device. Unfortunately for some reason the USBUART module is not available for it and I am trying with USBFS.
Even executing the datasheet sample using one of the built-in HID templates causes the software to always hang on USBFS_bGetConfiguration(). I've tried all the possible configurations for USB - HID, no HID, templates, mine. No change whatsoever - the software always hangs on bGetConfiguration().
Speaking about the hardware - nothing specific there, it has been set exactly as from the suggested solution in the datasheet.
Would anyone be able to post here a confirmed working sample for USB on CY7C64343 ?
Thank you all.
PS. To the Cypress' guys:
why there is no USBUART UM for this device?
Show LessDear folks,
While performing GPIF FIFO READ/WRITE operation GPIFREADYSTAT which scans the status of RDYx signals always shows the value of 0x003f (which means all the RDY inputs are high, even after grounding the respective RDY input signal). what could be reason for this? Can any one suggest a suitable solution.
Show LessI am trying to do something with an Encore V MCU (7C64343). The problem I am facing has been described many times yet I have been unable to make it work for me at this stage:
On port 1 I have a few digital inputs and one output controlled by an interrupt function.
My problem is that I can never read the actual status of the inputs, they are always 0.
What I am doing is this:
The relevant bits P1.2, P1.3 and P1.4 are configured as StdCPUInput and drive Analog High Z in the PD
unsigned char P1;
and then in the interrupt function (executed around 100 times per second):
P1=PRT1DR; // supposedly reads the actual input states
P1^=0x20; // swinging the output pin
PRT1DR=P1; // update the output
Everywhere else in the code I only use P1 as read from the code above.
Where is my problem here?
Thanks!
I'm using the EZ-USB for pushing data from my host PC to the device. (Bulk transfers, one way only)
I'm using external logic (Lattice FPGA) that looks only at the Fifo-full interrupt.
I am interfacing the Cypress EZ-USB FX2LP (Cy7C68013A) to a Lattice FPGA. The data is transferred to FPGA through the slave FIFO interface in AUTOIN mode (auto-commit with size of 512-byte) from PC.
Endpoint 2 is used, the fifo uses double buffering with packet size of 512 bytes. The external interface is set to 8 bits wide.
No data handling is performed in the FW code. (TD_Poll is empty)
Problem:
Although I always validate that the overall data length sent from the Host is a multiple of 512 bytes, I guess that under rare conditions an error occurs and a different number of bytes is sent.
This rare condition causes my whole USB channel to come to a stall (I receive Timeouts in my WDU_TransferBulk call) in such a way that only a Hard Reset performed to the chip (pin #99) can resolve.
I am not concerned so much about data being lost in the specific corrupted transfer itself, but more in the ways to recover the channel for further transfers.
A hard reset is not an option, since it requires a redesign of the board, and a hence large delays in delivery.
So I thought to look for some "Soft Reset" that will be equivalent.
I tried two options, in some variants: (but without success) I added code to the ISR_Ures() that performs:
1. Perform FIFORESET to all endpoints. (Copy & Paste from TD_Init)
2. Perform EZUSB_Discon()
Both options brought the chip to some "non responsive" condition. I take it as an option that it is something wrong in my implementation.
I will be more then happy to get your recommendations, since this is a top priority issue in our company, that prevents from tens of machines from being delivered....
---- Please find our original code attached ----
Many thanks,
Shahar.
Hello
Thank you for any help you can provide. Presently we have the FX2 doing a boot loader from a large I2C EEPROM specifically an 24LC512 device from Microchip. That is located at address 1010001(A2=A1=0 and A0=1) as per the TRM. We also have another EEPROM sitting at address 1010101 for extra data store it is also a 24LC512. I would like to combine these two EEPROMs into an 24LC1025 device from Microchip. But this device only allows the setting of A1 and A0 and A2 is not setable. When you access the EEPROM you have to write a value into a Block bit to set whether you read from the upper half of the EEPROM or the lower half. So the address looks something like this 1010BA1A0 where in the setup above A1=0 and A0=1 => 1010B01. Unfortunately I do not think this will work for boot load applications. According to the TRM the FX2 on bootload checks the A2,A1,A0 bits to determine if there is an appropiate I2C EEPROM to boot from. I don't know how this plays with the 24LC1025 situation.
I didn't state above that we wanna boot load out of the EEPROM because we come up USB and enumarate to our own info.
So does anyone know if the FX2 can be setup to use the 24LC1025 or not and how.
Thanks
Gary
Show Less