Hello all, I'm working with the FXTH87E Demo Board I had made via the gerber files. I also have the PE USB-ML-Universal Rev C. My goal with my current project was to create my own design based on the FXTH87E Demo Board with USB for power and an onboard programmer/debugger. I don't like all the wires and programmers strewn about. I'm also doing the same thing with a CC1101 so I can develop my own TPMS solution.
Anyway, I had the USBDM_SWD_SER_JS16CWJ V4 made, followed the documentation, getting the bootloader, etc on the board as well as everything setup in CW for MCU v11.1. I'm currently using the FXTH87_E_FW_Periodic_RF_Tx project to get something coming out of the board. I had the board working, communicating with the CC1101 when I programmed it with the PE. However, when I tried to use the USBDM to program the board, I got an error, "Expected BDM command ACK missing".
I can't get past that error using the USBDM to program/debug the FXTH87E. The interesting thing is, if I switch back to the PE programmer and try to program/debug the chip, I receive the Device is secure warning. I didn't secure the chip which makes me think the USBDM has somehow corrupted the FXTH87E now it's unrecoverable :(.
I've attached several screenshots of what I'm seeing. Not sure what I'm doing wrong but it appears the FXTH87E is in a weird state, even after reprogramming with the PE programmer. When trying to debug using the PE programmer, in the main(), it always fails on, TPMS_LF_ENABLE(CLEAR); sending me into ASM and never sending any packets.
Any thoughts would be greatly appreciated as I'm not sure how to proceed. If I can supply any further information, please let me know.
Kindest regards.
Solved! Go to Solution.
Hi,
In hind sight after looking at the details for the chip it is not a good idea to mass erase it before preserving (making a copy of) the pre-programmed area of the chip (0xE000-FFFF). I think it contains calibration data and utility routines!
This would explain why program would no longer run.
I presume the program you are testing is arranged to work with the existing routine in Flash?
bye
Hi,
In hind sight after looking at the details for the chip it is not a good idea to mass erase it before preserving (making a copy of) the pre-programmed area of the chip (0xE000-FFFF). I think it contains calibration data and utility routines!
This would explain why program would no longer run.
I presume the program you are testing is arranged to work with the existing routine in Flash?
bye
pgo, thank you so much for your patience and guidance, I was able to bring my chips back to life, whew!. I guess I just didn't know what to search for. I have since found the section on the FXTH87E on your website and everything is working/debugging using the PE.
Next up is to try and get the USBDM working within CW so I can debug. Can't thank you enough!
Kindest regards
Hi,
Gee that was so long ago that I had forgotten writing that web page!
I'm glad you found it useful.
bye
Hi,
It is not possible to permanently secure the FXTH87E.
When secured, it only requires a mass erase operation to unsecure it. This erases the entire chip but this would not be a problem in your case unless there is calibration data or similar you need to preserve.
I am surprised the PE interface has any problem with a secured device.
Anyway, if you are having problems programming, firstly try mass erase the chip using the stand-alone programmer.
If you already have a working program you can test the programmer by programming the image using the stand-alone programmer.
I can't do any testing with Codewarrior - it is well an truly out of date (it is based on an obsolete version of Eclipse) and I no longer have access to a suitable setup. I'll see what I can hunt up for testing.
I suggest you try selecting the mass erase operation under erase options when programming with the USBDM interface.
bye
Thank you pgo for your reply. I have done as you described:
I have the same results, the chip does not send any data and if I reconnect the PE and try to debug, it fails on the same line again.
If I use another board, exactly the same as the failing boards and use the PE programmer the same program works correctly. At this point, I'm just trying to save the two boards that stopped working after trying the USBDM.
Any other suggestions to try? These are the settings I'm using in the stand-alone programmer.
Thanks again, kindest regards
The USBDM is definitely doing something to the FXTH87E to put it in an unusable state even though the PE can successfully program it, eventually. When trying to debug using the PE, after programming with the USBDM, the FXTH87E won't go past the call to, TPMS_LF_ENABLE(CLEAR); in main(). I've now tried it with two of the FXTH87E demo boards and it's made both of them unusable. Ugh, not sure where to go from here. Thanks!