USB low-full-high speed peripherals Forum Discussions
Hello:
I am using the fwDownload.exe command-line utility to reconfigure my CY7C65211's GPIOs etc. I am using this utility within a windows application, and as such I have created a C# System.Diagnostics.Process to run the EXE, with passed arguments for the configuration file, VID, etc. When the process finishes, I examine the exit code. I find that with one configuration file the exit code is a "0" and with another file it is a "2".
I would like to know what the exit codes for the fwDownload.exe utility mean, so I can know what to do in my code depending on the codes.
Thanks,
Gary
Show LessHello,
I'm working our project with cybulk example which is located in
c:\Program Files\Cypress\Cypress Suite USB 3.4.2\CyAPI\examples\cybulk\ .
And MCU (CY68013A) code is refered on c:\Program Files\Cypress\GPIF Designer\fifo\ .
Structure is below.
host sends cmd by ep0 for uploading 32MB. -> mcu set GPIF and others in TD_Poll().
Now, WaitForXfer() has some bug. in previous bulletin, somenoe had same problem.
you can compare below 3 codes. it is extracted from BulkLoopDlg.cpp.
- WaitForXfer() has expired time every test.
- if TD_Poll() function is continuously uploading , WaitForXfer() will be success.
in oscilloscope , GPIF counter has 6 cycle completely, but WaitForXfer() has complete
receving then.
Maybe, BeginDataXfer() doesn't set event , when it has received by Length argument.
current correctly return of WaitForXfer() is returning by over received or other problem.
if you test this problem, don't operate example directly.
example code for MCU is wrong. it uploads infinitly by IN packet. Thus it fake bulkloop codes of WaitforXfer() as
correctly operation.
UINT XferLoop(){
.................................
#if 0//original code
UCHAR *outContext = dlg->OutEndpt->BeginDataXfer(data,outlen,&outOvLap);
UCHAR *inContext = dlg->InEndpt->BeginDataXfer(inData,inlen,&inOvLap);
dlg->OutEndpt->WaitForXfer(&outOvLap,2000);
dlg->InEndpt->WaitForXfer(&inOvLap,2000);
success = dlg->OutEndpt->FinishDataXfer(data, outlen, &outOvLap,outContext);
success = dlg->InEndpt->FinishDataXfer(inData,inlen, &inOvLap,inContext);
#elif 0//modified to use Bulkendpoint instead Endpoint class. it is still using WaitForXfer().
//UCHAR *inContext = dlg->InEndpt->BeginDataXfer(inData,inlen,&inOvLap);
UCHAR *inContext =dlg->USBDevice->BulkInEndPt->BeginDataXfer(inData,inlen,&inOvLap);
SendCmd(VX_B3);// send upload command by ep0. it release once if(in_enable) variable in
Fx2_to_extsyncFIFO.c file.
//dlg->InEndpt->WaitForXfer(&inOvLap,6000);
dlg->USBDevice->BulkInEndPt->WaitForXfer(&inOvLap,6000);
//success = dlg->InEndpt->FinishDataXfer(inData,inlen, &inOvLap,inContext);
success = dlg->USBDevice->BulkInEndPt->FinishDataXfer(inData,inlen, &inOvLap,inContext);
#else //this is good!!
//UCHAR *inContext = dlg->InEndpt->BeginDataXfer(inData,inlen,&inOvLap);
UCHAR *inContext =dlg->USBDevice->BulkInEndPt->BeginDataXfer(inData,inlen,&inOvLap);
Sleep(100);
SendCmd(VX_B3);
//dlg->InEndpt->WaitForXfer(&inOvLap,6000);
//dlg->USBDevice->BulkInEndPt->WaitForXfer(&inOvLap,6000);
Sleep(400);//32MB is consume about 349.5ms. 349.5ms/20.83ns=16M WORD. //it is correct.
//success = dlg->InEndpt->FinishDataXfer(inData,inlen, &inOvLap,inContext);
success = dlg->USBDevice->BulkInEndPt->FinishDataXfer(inData,inlen, &inOvLap,inContext);
#endif
Hello,
Downloading the latest CyUSBSerial SDKs for Mac and Linux, I notice the Library header is licensed with terms:
/*
## Cypress USB Serial Library header file (CyUSBSerial.h)
## ===========================
##
## Copyright Cypress Semiconductor Corporation, 2012-2013,
## All Rights Reserved
## UNPUBLISHED, LICENSED SOFTWARE.
##
## CONFIDENTIAL AND PROPRIETARY INFORMATION
## WHICH IS THE PROPERTY OF CYPRESS.
##
## Use of this file is governed
## by the license agreement included in the file
##
## <install>/license/license.txt
##
## where <install> is the Cypress software
## installation root directory path.
##
## ===========================
*/
The license.txt then containing a standard LGPLv2.1 license.
What is meant by "CONFIDENTIAL AND PROPRIETARY INFORMATION"?
The only way of adhering to these two conflicting licensing terms would be to not use CyUSBSerial in any end-products (where the customer can
demand me for this "Cypress Confidential" info, as per LGPL terms).
But in the SDK documentation preamble, Cypress explicitly forbids the use of this technology in life-critical applications, which would implicltly
imply this this software is indeed intended to be used in (non-life-critical) applications.
Am I misinterpreting something?
Or are the conflicting restrictions "CONFIDENTIAL AND PROPRIETARY INFORMATION" just a 'bug' in the software?
thanks in advance,
kalle
Show LessHello,
My apology for writing in Japanese.
Device:CY7C65211-24LTXI
上記デバイスに対してプログラムする時に使用する設定ファイル(.cyusb)について質問があります。
■参考:USB Serial Configuration Utility
http://www.cypress.com/documentation/software-and-drivers/usb-serial-software-development-kit?source=search&keywords=usb%20serial%20sdk
私の認識は下記の通りです。
・.cyusbはUSB Serial Configuration Utilityで作成する。
・USB Serial Configuration UtilityはWindows版しか存在しない。
・LinuxやAndroid OSからもデバイスにプログラムする方法が存在する。(上記URL参照)
・プログラム時に使用可能なファイル形式は.cyusbのみ。(.hex形式は対応していない)
・デバイスへのプログラムはUSB経由で書き込む以外に方法が存在しない。(.hexが使えず汎用のROMライタが使えない為)
質問1:
上記の認識は正しいでしょうか?
質問2:
もしWindows環境が用意できず、Linux環境のみしか用意できない場合は、
どうやってプログラム用のファイル(.cyusb)を作成するのでしょうか?
質問3:
.cyusbファイルを.hex形式に変換する方法はありますか?
hex形式で書き込めるのであれば、汎用のROMライタが使えるのでプログラムしやすいです。
Hello,
My apology for writing in Japanese.
CYUSBS234評価ボードに対し、添付画像のようにUSB ProtocolをPHDCに設定して書き込んだところ、
以後PCとCYUSBS234評価ボードの接続ができなくなりました。
現状では私はPHDCのドライバを持っていないため、デバイスマネージャー上でもUSBの認識がされていません。
USB Protocolを初期設定のVendorに設定しなおして再度書き込むことができれば解決すると認識していますが、
USB接続ができないこの状態で、どうやって再度書き込みさせればよいでしょうか。
Show LessHi,
I am a beginner of using CY7C68013A. I have tried to use bulkloop example to test my CY7C68013A board. It can be run and connected to PC properly. Then, I try the cystream example, after I downloaded the complied hex file using Control Center. The board cannot be recognized as Cypress device in both the control center and cystreamer in PC, but the driver can run without problem.
How can I solve this? Thank you very much.
Best Regards,
Josh
Hi,
I have the CyUSBS234 devkit to test out Cypress' software support for USB-to-I2C bridges.
The devkit's userguide says I should use some tool to set the devkit (chip? doesn't say) into I2C mode.
But this tool is mentioned only in the chapter for "setting up on Windows". Also, I can find in the API only
functions to configure a I2C module, but not what this Windows GUI tools seems to do - i.e. changing some mode.
Does this mean the chip cannot be programmatically changed from I2C to SPI to UART mode, but
requires a Windows GUI tool to do this? Or did I just miss the part with the instructions for doing this over the Cypress USB stack?
I did get he CyUSBSerialTestUtility to see the chip, but instead of what the SDK README says here, i.e.:
$ CyUSBSerial
----------------------------------------------------------------------
Device Number | VID | PID | INTERFACE NUMBER | FUNCTIONALITY
----------------------------------------------------------------------
0 |4b4 |a | 0 | VENDOR_I2C
0 |4b4 |a | 1 | VENDOR_SPI
0 |4b4 |a | 2 | NA
----------------------------------------------------------------------
I'm seeing only NA as the functionality for each interface number.
If it was possible to switch modes run-time, surely the CyUSBSerialTestUtility could do this?
thanks,
kalle
Show LessHi ,
I'm new to CY7C68013A and try to do the example bulkloop to start.
After I load the bulkloop.hex into my board's ram ,the "USB Control Center" can NOT find the board anymore.
But I can still find my board "Cypress FX2LP Sample Device" through the windows device manager.
Can anyone give a hand?
Thanks.
I'm designing 68013 interface with FPGA using GPIF. FPGA work as slave FIFO.
CPU could send/read bulk data in need using GPIF
CPU could send/read control data in need (could I use GPIF, too ?)
FPGA could send control data by interrupt 68013.
but I have some questions need to make clear before I could start
1. how I could send control data using CTRL_WR wave form, like program trigger CTRL_WR waveform. CTRL data is 64 bytes. I planned to use ep1 to do this.
2. as above how to trigger bulk transfer for FIFO_WR/FIFO_RD ?
other questions:
3. could I use FPGA to make 68013 get into low power mode, or how 68013 could get into low power mode to save power ?
my design is send a data block to FPGA and then sleep for a while then wakeup again to transfer.
4. and, any way to interrupt 68013 to trigger CTRL_RD wave form and report to CPU via USB ?
Show LessI am trying to connect to a CY7C68013A on an Analog devices ADF4159 eval board using the CyUSB.dll .net library through Python. It appears that all functions work except XferData, which fails without giving me any useful information. I have attached the complete code. The return value for XferData is "False", while the value of endpt.LastError is 0 before running XferData and 87 after running XferData. Is there a way to understand what this error code means?
Show Less