USB low-full-high speed peripherals Forum Discussions
May I ask if the driving strength of the 68013 can be adjusted? If the device is unstable, the device will not be found. Can this drive strength be adjusted?
Show LessHello,
fx2lp is interfaced with image sensor in slavefifo mode .to diplay image on the pc side,we are developed GUI in control center application.for frame synchronisation ,we are included 8bytes header in the fx2lp firmware.This header is added when fx2lp is interrupted by frame valid using ISR.When frame valid is get asserted by image sensor ,this isr will get called.I am commiting this 8bytes header when it enters to the isr function in the bulk endpoint 6 and same header is looked in the control center and displaying image between two consecutive header bytes.frame valid get asserted for every 360960 bytes of image.image sensor is having 60frames per second and 752x480 resolution.we are able to recieve the image data in the windows side.but we found that there is 361480 bytes between two consecutive headers.that is extra 512 bytes are adding because we are inserting 8bytes hearder in the manual mode and bulk endpoint buffer size is 512bytes.fx2lp(8051) can support level sensitive(low or high) and only be falling edge trigger interrupt.currenty i made falling edge trigger interrupt.that is when frame valid becomes high to low transistion,i am adding this header that is at the end of frame valid.i am having doubt regarding this header inserted time/position matters in the windows side.so i am not sure about this.previous frame portion is also displaying in the current frame.is it because of this header posistion?or because of 512 extra bytes are coming ?please help me to sort out this problem.i have attached the screeen shot of images(video stream).
some times imges shifting is happening because of these reasons.we are not sure about this.
1)some times there is no exactly 360960+512 bytes between two consecutive headers,may be less or more
*fx2lp is not transmitting exactly 360960+512 bytes
*windows is not recieving exactly 360960+512 bytes
*data loss in fx2lp
*data loss in windows side
*data loss in the boundary between fx2lp and windows.
2)frame valid is not getting asserted in proper time.
please help me
regards,
geetha.
Show LessHi All,
I am using CY7C68013A to design a USB camera, and confused by the waveform design, especially the state machine design.
The CY7C68013A is operating in GPIF mode. The data is transferred from GPIF to endpoint directly.
The hardware connection is:
- camera pixel_clk ==> IFCLK
- frame_valid ==> RDY0
- line_valid ==> RDY1
- Data[7:0] ==> Data[7:0]
The timing of camera signal is: (For simplicity only 2 lines are drawn in each frame, and 2 pixel data (clk) in each line.)
and I want to use the frame_valid and line_valid as the conditional term for decision points (DP).
So I designed a state machine like this:
The state machine is triggered to S0, and wait for (0,0) to S1, then wait for (1,0) to S2, and wait for (1,1) to S3. In S3, the data is sampled with loop (re-execute).
When the frame_valid is deasserted, state with get back to S1, and wait for the next frame_valid asserted. The state machine will run like this forever to get the camera images frame by frame. Also the state will not get back to IDLE state forever.
For decision points S2 and S3, they have 3 branches. For example, the 3 branches of S2 are loop-back, goto-S1, goto-S3. But I found in GPIF designer, only two branches (If and else) are allowed for state transition.
Also, the logic combinations of two signals in GPIF-designer is a little confusing. I can not get 4 combinations (00, 01, 10, 11) using the given options, like this:
My questions are:
1. How to deal with the 3-branch problem?Is this state machine a correct design for camera application using GPIF disigner? It looks that my state machine design doesn't suite for the GPIF utility.
2. In the host application end, how can I identify the different data from different frames? I am not familiar with the USB host data-receiving mechanism, and I think the data will be received packet by packet. Is there any method to separate the different frames? Is it possible that the data from different frames will be packed in one packet (for example, the end part of frame-1 and start part of frame-2)?
Any help will be greatly appreciated.
Thanks in advance.
Zheng
Show LessWe've got a bunch of devices that interface using a Cypress EZ-USB FX1 via a Win10 64-bit driver based off of cyusb3.
Most of our fixtures connect fine, and show up in NI-MAX as a VISA device that communicates on some COM port. Yay.
But some of the fixtures don't connect to NI-MAX. We get the following error: "VISA returned this device when finding resources, and MAX was able to use VISA to parse the resource name. MAX was not able to successfully open a VISA session to the device."
Obviously, if this was an NI-MAX issue then I'd be in the wrong place. But I think that MAX is just the messenger, because the COM device associated with the EZ USB FX1 also gets a yellow caution sign in the Windows Device Manager, too.
I'd appreciate any hints or direction to get this working for every device. Thanks!
Show LessHello,
fx2lp pin 50 is connected to another device.i wanted to generate 2 mili second pulse(active high) from this pin.
so i am using timer for delay genaration.i need 2ms active pulse .how to make pin no 50 initaily low .
fx2lp is operating at 24MHZ,TIMER run at the same rate,
how to put this in code.??
pin 50 at logic low
2ms_delay(); //pin 50 at logic 1 upto 2 mili seconds.
pin 50 at logic low.
regards.
Show LessHi ALL,
I am using CY7C68013A on Ubuntu 16.04 with a x64 computer. The USB device works fine in Windows and also can be recognized by Linux with cyusb_linux application.
The firmware is the same as that in windows and I just want to develop host application on Linux.
I installed the cyusb_linux step by step following the user guide and readme.
But, when I try to select the device in the device list on the GUI, the application crashed and pop the error in the console:
cyusb_linux: symbol lookup error: cyusb_linux: undefined symbol: libusb_get_ss_endpoint_companion_descriptor
I tried to figure out the reason, but without luck.
What may cause this error?
Any clue or help will be appreciated.
Thanks,
Zheng
Show LessHi~
I am migrating our FX2LP Windows device driver from CyUsb to CyUsb3.
The device is used as a bulk/interrupt transfer based video grabber,
so our Windows application repeatedly calls CCyFX3Device::BulkInEndPt->XferData() for video data and CCyFX3Device::InterruptOutEndPt->XferData(), CCyFX3Device::InterruptInEndPt->XferData() for command transmission in a loop.
I have an issue with the surprise removal of USB hub connected with our device.
- In case that the device is connected through external USB hub to PC's USB port
- In case the Windows application is running
- Surprise removal of USB hub (not device) is well detected and the device disappears normally on Windows OS 64 bit.
- Surprise removal of USB hub does not properly handled and the device is remained on the Device Manager window on Windows OS 32 bit. At the point, if I force close(by terminating process) the Windows application then the device is removed on the Device Manager.
- In case the Windows application is idle
- No problems
- No problems
- In case the Windows application is running
- In case that the device is connected directly to PC's USB port
- No problems
When the above issue is tested with old CyUsb drivers on Windows OS 32 bit, the device disappears on the Device Manager after 5~10 seconds after the removal of USB hub.
Is there any solution on this problem?
The below is test environment
- Driver version: CyUsb3 v1.2.3.14 (included in FX3 SDK 1.3.3)
- Chipset: FX2LP (CY7C68013A-128AXC)
- Host Chipset: Intel USB 2.0/3.0 Host
- OS Version: Windows 7, 8.1 and 10 (32/64 bit)
Thanks and regards,
Ken Kwak
We use EZ-USB FX1 on in-house test equipment. These were programmed with a custom VID and PID to report to Windows as one of our products. Then we switched to Win10 which necessitated turning-off the requirement for signed drivers before we could install USB-Serial drivers. But we don't like disabling signed drivers so we'd like an alternative.
For further background, I'm not the creator of the original drivers, I didn't program these chips, I don't know a ton about these things, and the people who did this have left the company. So I've got a folder with some .iic files and I've got your kind help.
From what I've gathered after extensive searching through old threads with conflicting information, my best bet is to use the cyusb3 driver files, which opens the door to three plans of attack:
(1) Modify the .inf to use our VID and PID, then sign the driver with a full-blown WHQL signed driver that can be used by anyone, even non-admin users,
(2) Modify the .info to use our VID and PID, then sign the driver with a test certificate that will still require an admin to approve the installation, but at least won't need us to disable the driver signature check, OR
(3) Possibly, reprogram our test equipment to use a Cypress VID and PID, then install using the Cypress-signed drivers.
Is this enumeration of options actually correct? Am I missing another good option?
Further, I'll list some more info on why I do/don't want to take each option, so please let me know if I'm misunderstanding anything:
(1) WHQL-signed drivers are overkill for a test device that we use in-house only, we don't have external customers using this device and we don't need some publicly registered driver as far as I can see.
(2) Test certificates seem OK, but I would like to avoid requiring admin privileges. I suppose this may be the best option.
(3) Ugh, I don't want to reprogram these things.
Show LessI am using the CY7C68013A-128AXC to control a document scanner; the scanner transports items through an imager and lifts ~12MB of data.
Approximately 1 document is processed per second up to 75 documents can be managed as a bunch and stripped.
Command and response is managed over EP 4 & 2. EP 6 and 8 are used as BULK IN EPs for image and other data transfer.
The system is running at high speed (USB 2.0).
The system works well and I can see the normal flow of data on USB as we run commands over the BUS and ARM the image EPs to collect the data.
The BULK IN system works effectively and I can see the use of NAKs where appropriate.
Rarely though I will get a short window (100us) of BUS timeout/turnaround errors.
If I get three turnaround errors on a single EP the EP is halted and this effectively stops our transport, as we can't progress documents if we can't shift the image data.
This is an example of the issue.
I have just lifted 512 bytes from EP 8.
I then hit the window where each EP is effectively ignored by the FX2.
EP8 gets three strikes and the EP is halted by the USB HOST.
Interestingly EP 6 and 2 only get three strikes and actually recover with NAKs then deliver the data.
It looks like the FX2 has had it's Interrupt masked as the system has totally ignored the Host requests.
We are struggling to reproduce this at will, it is very rare but is impacting performance.
Is there a know weakness in this area, what could explain the turnaround errors.
My feeling is that I have some kind of race condition, I don't think this is noise or a ESD event it is too controlled and specific.
I suspect that all EPs are unresponsive, it was only EP 2 6 and 8 that were active during this window (100us).
Thanks in advance.
Don