USB low-full-high speed peripherals Forum Discussions
Hi all,
Apologies if I've selected the wrong forum; it wasn't clear to me where questions regarding CCGx USB-C devices should go. I am attempting to build a proof of concept for a simple DisplayPort pass-through using the CYPD3120 DP Dongle example firmware. So far all I have is a blinking LED and billboard info showing the vendor/product ID. I am also able to read the configuration using EZ-PD Configuration Utility.
What exactly is needed to prompt a HPD event? My understanding in reviewing the example is that this is done using events transmitted on the CC line. But I see nothing that calls eval_app_alt_hw_cmd, which appears to be the driver for the generation of the HPD events. Is there any way to prompt the HPD event/message programmatically?
I also have a DDI (an I2C slave device ready to provide an EDID on the correct address) connected to the AUX_P/AUX_N lines on the CYPD3120, but I have not been able to get the Mac to interpret the dongle as a display.
Has anyone been able to successfully prototype using the CYPD3120? Any pointers?
Thanks!
Show LessI encounter problem with comunicating with CY7c60813A-56LFXI chip. Originally it has a winXP driver and working well with my current software. Since I have to used a win7 machine, I download new driver for win7 64 bit. Now my software is not working anymore. is there any change in the CYUSB3.sys that break my software?( the old driver is CyUSB.sys for winxp)
Show LessI am trying to make some changes to the firmware of a device. It uses an EZ-USB FX with a serial eeprom (24lc02)
The firmware is uploaded via USB control A0
The original developers are long since left. and the source code was not found, so I disassembled it.
I need to add some debug to allow me to do single byte eeprom read/writes.
The eeprom read works fine and allows me to dump the full eeprom, but thee writes just don't happen (bytes remain unchanged) - no indication of error.
I have simplified my code to not do error checking so under normal case it should just work
At the start of this code, DPT points to 7CC0h, ie OUTBUF4 which contains 3 bytes
$31, $50, $62
The first byte $31 is the command number (EEPROM WRITE) - this causes my code to be called.
In this example, $50 is the eeprom address wish to change and $62 is the new byte value.
inc DPTR ; Get a byte from OUT4BUF[1] movx A, @DPTR ; / mov RAM_C, A ; Set the EEPROM address (RAM_C) to the byte inc DPTR ; Get a byte from OUT4BUF[2] movx A, @DPTR ; / mov RAM_D, A ; Set the EEPROM data (RAM_D) to the byte clr A ; \ mov DPTR, #7E00h ; Set IN2BUF[0] to 0x00 - Default to Success movx @DPTR, A ; / ;-------------------- I2C START mov DPTR, #7FA5h ; Get I2C-Compatible Control and Status (I2CS) movx A, @DPTR ; / orl A, #80h ; Set the START bit movx @DPTR, A ; / ;-------------------- I2C CONTROL BYTE mov DPTR, #7FA6h ; Get I2C-Compatible Data (I2DAT) mov A, #0A0h ; Device = EEPROM 24LC02, Direction = Write movx @DPTR, A ; / loop1: mov DPTR, #7FA5h movx A, @DPTR ; Get I2C-Compatible Control and Status (I2CS) jnb ACC.0, loop1 ; Wait until the DONE bit is set (1) ;-------------------- I2C WRITE ADDRESS mov R7, RAM_C ; Set R7 to the address mov DPTR, #7FA6h ; \ mov A, R7 ; Set I2C-Compatible Data (I2DAT) to the contents of R7 movx @DPTR, A ; / loop2: mov DPTR, #7FA5h ; Get I2C-Compatible Control and Status (I2CS) movx A, @DPTR ; / jnb ACC.0, loop2 ;-------------------- I2C WRITE DATA mov R7, RAM_D ; Set R7 to the data mov DPTR, #7FA6h ; \ mov A, R7 ; Set I2C-Compatible Data (I2DAT) to the contents of R7 movx @DPTR, A ; / loop3: mov DPTR, #7FA5h ; Get I2C-Compatible Control and Status (I2CS) movx A, @DPTR ; / jnb ACC.0, loop3 ;-------------------- I2C STOP mov DPTR, #7FA5h ; Get I2C-Compatible Control and Status (I2CS) movx A, @DPTR ; / orl A, #40h ; Set the STOP bit movx @DPTR, A ; / loop4: mov DPTR, #7FA5h ; Get I2C-Compatible Control and Status (I2CS) movx A, @DPTR ; / jb ACC.6, loop4 ; Wait until the STOP bit reads back as clear (0) mov DPTR, #7FB9h ; \ mov A, #1 ; Set the Byte Count for Endpoint IN2 (IN2BC) to 1 movx @DPTR, A ; / ljmp COMMAND_COMPLETEDShow Less
Hi all
I have programed the eeprom 24C64 in .hex format by external programmer and i have solder it. I have instaled the drivers on windows 8.1 but at the panel control i have the fallow message "Cypress FX2LP no eeprom device"
Can you tell me why the CY7C68013A not find the eeprom
Show LessThe http://www.cypress.com/part/cy7c67200-48baxi contains a lot of information about the CY7C67200 but no simple example designs except a complex example for which no link exists to download! How is that even possible? Is there a place that contains a lot of examples of application of CY7C67200 in its various forms starting from e.g how to implement it as a host of USB mouse and keyboard (what I need)?
In my case the CY7C67200 is connected to an external controller inside an FPGA on the DE2-115 board. Too bad the ISP1362 which has much information about how to use it from different places, became obsolete. Now I am stuck with CY7C67200 for which I do not find any example at all.
How is one supposed to get up and running with such a complex device without example designs?
Show LessHello,
I want send any number of bytes from host PC to the endpoint of FX2LP in full speed mode.My doubts are:
1. How can I configure the endpoints or registers so that firmware gets to know about the written bytes.
2. After reading the TRM ,I understand that bmEPxEMPTY bit will be set after the packet size is reached.Can I set packet size,if yes,How?
3. I understand that Packet end can be used for IN transfer to send any number of bytes from FW.Can it be used for OUT bulk transfer also.if yes,How?
4. Can I use PF flag to acheive this..if yes,How?
Thanks In advance.An example will be of great help.
Show LessHi,
I use two chips CY7C68013A connect with one computer,there is a failure often occurs,one device of them often communication failure,must power off and restart.
I can not find the reason of this problem,my board design or the driver program have some problem?
What should I do check this problem,look forward to your reply
Thanks a lot.
Hi,
Our company has a custom hardware that uses the CY7C64713-128AXC how can I update the ezusb to cyusb3? I am confused on what sdk i need i see EZ-USB FX3 Software Development Kit. I need some direction on how to get to the current cypress driver.
After that is done would this allow me to use C# to development applications for my hardware? I see there is a .lib but i believe i have to migrate first from ezusb.sys to cyusb3.sys
I use visual studio pro 2015.
thanks!
Show LessDear all,
I two fundamental questions about architecture of EZ-USB FX2LP.
1. How many packets could be hold in a Quad Buffered Output Endpoint? (e.g. EP2).
- - This question arises while testing the Bulkloop example. The EP2 is configured as double buffered OUT. My first thought is that two consecutive "transfer data out" could be performed. But it turns out that 4 consecutive "transfer data out" could be performed before encountering error (code 997).
2. The RAM space for Endpoint 2, 4, 6, 8 Buffer is as large as 1024 bytes due to the TRM, then how is the quad buffered 512 bytes EP2 (or EP8) be implemented?
Please be so kind to share your knowledge. Thanks
Show Less