022001-00 programming

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
ScGr_289066
Level 5
Level 5
100 replies posted 50 replies posted 25 replies posted

Hi All,

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?

Thanks,

Scott

0 Likes
1 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.

Best,

Scott

View solution in original post

0 Likes
3 Replies
ScGr_289066
Level 5
Level 5
100 replies posted 50 replies posted 25 replies posted

Hi All,

I finally have the firmware programming code worked out to the point where I don't get any function call errors uploading the entire hex file from my BLE project into the 022001-00 module.  Unfortunately, after programming I am running into the same problem I described above -- not being able to set the CPU clock to 48 MHz.  I can successfully reprogram the module with the miniprog3 and then my firmware can again set the clock and program the device, so I really need to know how to recover from the error I described above.

Thanks,

Scott

0 Likes

Hello Scott,

Can you please provide the script you are using to program the module? When you get the error, which particular system call seems to be failing can you please let me know?

Please try adding some extra delays after erase row function call and see if it solves your issue.

Regards,

Dheeraj

0 Likes

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.

Best,

Scott

0 Likes