This question is related to my original programming clarification case #00562834.
To summarize the case, I was having problems programming a 022001-00 module mounted on a board, but was able to program it with a MiniProg3 programmer. I had conference call with your staff, and in preparation for the call, I had switched to a much shorter cable (about an inch) instead of the original 18 inch cable I had been using. When I demonstrated the "problem" during the call, the module was acquired and successfully erased -- problem solved. Since the call, I have moved away from the project for several weeks, but have now returned to it.
So, using the erased module (and the same short cable), I am unable to set the CPU clock to 48 MHz to enable programming. Attempts to do so fail at pollsromstatus() immediately after WriteIO (CPUSS_SYSREQ, SROM_SYSREQ_BIT | SROM_CMD_SET_IMO_48MHz) at the bottom of Page 22 of CY8C4xxx, CYBLxxxx Programming Specifications, Document number 002-22325 Rev *E. pollsromstatus() returns 0x80000000 every time it is read for the entire timeout period of 1 second.
There is no mention in the programming document, but I believe there is a way to recover from this error because I was able to reprogram the module using the MiniProg3 without any issues. Having reprogrammed it, my firmware can now successfully acquire, set the IMO clock and read the CPU's ID. So my question is: how should firmware recover from getting this incorrect status value (0x80000000) back after (unsuccessfully) attempting to set IMO clock?
Solved! Go to Solution.
I'm sorry Dheeraj,
I meant to reply over the weekend. I had taken part of my programming code from the incorrect programming document and that code was apparently causing the issue. Since updating it from the pertinent document, everything is working well. I was able to update the part several times without any problems. So, in the end, the problem was caused by not using the correct programming document for my part.
Thanks for you help on this.