I'm trying to write the CY7C68013 registry through the control endpoint using ReqCode 0xA0. My purpose is to enable the slave FIFOs without programming the 8051. For some reason the following code doesn't work. Reading the register 0xE600 always produces 176 (0xB0). Writing to other areas of the RAM seems to work, e.g. writing to address 0, the written value is retained. Is there something missing from the code?

When you want to write something into the RAM, you have to keep the CPU in RESET by writing 0x01 to 0xE600 register by using 0xA0 vendor command. Please refer the Technical reference manual chapter Section 3.8. In your code it seems that the 0xA0 command is not sent to device(please correct me If I am wrong).

When you want to write something into the RAM, you have to keep the CPU in RESET by writing 0x01 to 0xE600 register by using 0xA0 vendor command. Please refer the Technical reference manual chapter Section 3.8. In your code it seems that the 0xA0 command is not sent to device(please correct me If I am wrong).

The code first reads, then writes. If I run the program again, the 8051 should still be in reset, shouldn't it? And I should be able to read the previously written content.

I've also tried changing the order, write first and for good measure, reassigning the Target, ReqType, etc. variables each time. If using 0xA0 I write 0x01 to 0xE600, as in the code. Shouldn't CLKSPD be set to 0. Why do I get 0xB0 when reading back the contents of 0xE600. Also I always get 0xB0 when reading address 0xE601, which is the IFCONFIG register.

When you want to write into RAM you have to keep the CPU in reset and once it is done you have to make it to get out of reset by writing 0x00 to 0xE600 register. For reading the contents no need to keep the CPU in RESET.

Is there any EEPROM connected to the FX2LP? Is it programmed?may be the bootloader has loaded the contents on EEPROM inot RAM and the contents that you are trying to write is failed.

The device does not have an EEPROM connected, so it resets to the default firmware. I'm not sure what traces you mean. I've attached a picture showing the USB Control Center, where I've read 64 bytes starting from address E600. Other than the 8051RES bit, are these registers at all accessible via the 0xA0 request or do I need to upload my own 8051 firmware to program them?