| Products > Test Equipment |
| Warning about USBee |
| << < (5/7) > >> |
| coromonadalix:
Cypress Suite Usb 3.4.7 can and could on some fx + eeprom, rewrite and or work with an external eeprom, not sure it apply here ?? CY3684Setup.exe 51 megs .... i had to search a lot outside Cypress to get it |
| magic:
--- Quote from: kloetpatra on January 02, 2024, 10:40:30 pm --- --- Quote from: comox on January 02, 2024, 09:50:05 pm ---The question is, how do I program the bloody thing if even the Cypress software can no longer attach to the device? --- End quote --- Well two options: * short SDA line to ground -> FX2LP detects eeprom corruption and boots to VID/PID of 04B4/8613 * use external programmer --- End quote --- The short should work, of course it needs to be removed after the board shows up on USB but before accessing the EEPROM with Cypress software. Alternatively, I found a 3rd party tool for Linux which reads and writes EEPROM connected to FX2. It can work with any IDs. https://github.com/ribalda/fx2eeprom I checked that it reads my FX2 board, but it only reads 4KB. Perhaps that's the maximum transfer the bootloader can do in one go and moving more data is as simple as repeating the USB request with increasing 'address' variable, but I haven't tried. edit Yes, it can read and write to arbitrary addresses, up to 4KB per run. Patch below is all I had to change, 'offset' is the address to start reading/writing at. I have successfully reprogrammed my board's 8KB EEPROM a few times. --- Code: ---diff --git a/fx2eeprom.c b/fx2eeprom.c index 222b8eb..72d8883 100644 --- a/fx2eeprom.c +++ b/fx2eeprom.c @@ -47,7 +47,7 @@ enum {READ,WRITE}; void use(char *prog){ - fprintf(stdout,"%s w/r VID PID size\n",prog); + fprintf(stdout,"%s w/r VID PID size offset\n",prog); return; } @@ -60,7 +60,7 @@ int main(int argc, char *argv[]){ int address =0; int mode; - if (argc!=5){ + if (argc!=6){ use(argv[0]); return -1; } @@ -72,6 +72,7 @@ int main(int argc, char *argv[]){ vid=strtoul(argv[2],NULL,0); pid=strtoul(argv[3],NULL,0); length=strtoul(argv[4],NULL,0); + address=strtoul(argv[5],NULL,0); buffer=malloc(length); if (!buffer){ --- End code --- |
| coromonadalix:
oh forgot theses https://community.infineon.com/t5/Knowledge-Base-Articles/Reading-Serial-EEPROM-which-is-Connected-to-the-FX2/ta-p/254704 https://community.infineon.com/t5/Knowledge-Base-Articles/Programming-the-Serial-EEPROMs-on-the-EZ-USB-FX2LP-Development-Kit-Board/ta-p/248738 if some want the cypress suite ... 30 days from now jan 1 2024 Drivers https://ufile.io/qlrlhsx4 Cypress Suite https://ufile.io/6lzy3wri |
| comox:
--- Quote from: magic on January 02, 2024, 11:00:53 pm --- --- Quote from: kloetpatra on January 02, 2024, 10:40:30 pm --- Well two options: * short SDA line to ground -> FX2LP detects eeprom corruption and boots to VID/PID of 04B4/8613 * use external programmer --- End quote --- The short should work, of course it needs to be removed after the board shows up on USB but before accessing the EEPROM with Cypress software. Alternatively, I found a 3rd party tool for Linux which reads and writes EEPROM connected to FX2. It can work with any IDs. https://github.com/ribalda/fx2eeprom --- End quote --- I tried shorting SDA to GND and connecting to USB, letting it start, but it didn't change the VID/PID. There is a convoluted Windows process involving VisualStudio to change the VID/PID of the drivers, but seemed like too much work. I think fx2eeprom is the way to go, but I am struggling to get it compiled. I have some Linux VMs, mostly Red Hat 7.9 x64, and have managed to connect the device through to the VM (VMWare on Windows) and lsusb displays the 2 Cypress devices, so promising. Just struggling to get the fx2eeprom software complied. Installed libusb, had to download and install the rpm libusb-devel, but perhaps it is the newer flavor of Linux I'm using? I am tempted to bin the thing and just buy a cheapo Sigrok compatible logic proble from Spark Fun. |
| magic:
C25 :wtf: --- Quote from: comox on January 03, 2024, 08:26:46 pm ---I tried shorting SDA to GND and connecting to USB, letting it start, but it didn't change the VID/PID. --- End quote --- You failed to short it properly. But forget it, I tried with my board and the FX2 simply hangs forever waiting for the EEPROM read to complete and never responds to enumeration requests from the host. Same thing when shorting SCL. My board has a jumper to disable the EEPROM but it works by disconnecting SDA from the chip. --- Quote from: comox on January 03, 2024, 08:26:46 pm ---Just struggling to get the fx2eeprom software complied. Installed libusb, had to download and install the rpm libusb-devel, but perhaps it is the newer flavor of Linux I'm using? --- End quote --- This should do it. What happens? What's the libusb version you installed? Was it the same for -devel? ;) |
| Navigation |
| Message Index |
| Next page |
| Previous page |