I'm just starting to work with the Cypress EZ-USB FX2 chip (56 pin version), and the port pins are causing me trouble. I can't get them to output anything.
My code is based on the a3load example. I use the EZ-USB Control Panel to load my code into the chip. To verify the build and load procedure, I added an extra vendor request code. My code executes and returns a "hello world" string to the control panel log window.
However, the next step - to toggle an I/O pin - doesn't work. Whatever I try, the pins stay where they are. I use a pin that is not-connected on the PCB. I disable alternate functions in the PORTCFGx register, and I set the corresponding OEx bit. Then I toggle the IOx bit.
Nothing happens. I tried this with several pins (even all at once), and there is no toggling observable: neither with the scope, nor by reading back the pin status from the IOx register. On the other hand I DO read back the OEx register change. I also do read correctly the status of an input pin (a pin that I externally force to a level).
What's wrong? Am I missing a register setup (I browsed the TRM back and forth, but didn't find anything)?
Could my FX2 chip be bad (pin output drivers)? The PCB is a yet untested prototype and there could be I/O collisions. However, I'm using a not-connected I/O pin for testing, to avoid sideeffects from external components (rest of I/O pins set to input).
Thanks for any hints.