1 month, 1 week ago.
LPC 11u68 "hello world" freezes @ 30min
My first post here, I've been beating my head against the wall for days on this issue.
I've designed two separate boards using the 48 pin 11u68 mcu. One has an SPI display, and the other does not. I had both programmed and communicating with each other over RS485, no issues. They've run for hours and hours straight, no freezing, no problems at all, over weeks and weeks of use.
Recently, I changed the code in the non display one to include a second PWM output. That didn't work, I assumed it should, but it does not. (This is not the issue this post is about, since I'm not sure that it should allow you to output PWM on more than one pin (even though I think the datasheet says 3 outputs). I tried two PWM outputs on the 68 pin version of the 11u68 (has a second PWM timer) and it works, so I have designed new boards to fit that version of the chip.)
After changing the code I noticed the non-display board would freeze. I started noticing it was predictable, and it always froze around 30- 31 minutes. Seemed like a timer overflow, so I removed the timers, same thing, freezes. Then I tried loading the blinky example, with a fresh Mbed library, same thing, freezes around 30 minutes.
Of course I questioned my hardware, so I tried this on an LPC11U68 LPCXpresso board I have and it too freezes at 30 min. By freeze I mean that the output stops inverting and stays high. I used pin P1_13 with the blinky code. The interesting thing is that I can load my display board code and it runs fine, no lock up, and I can even add the blinky code bits to it and it does not freeze up.
I noticed that the 11u68 target code changed recently (month ago) in the mbed github, but I don't understand the code well enough to know if the changes could have resulted in this issue. I don't mean this to be a red herring, but it is at least a coincidence.
Hoping there is some obvious explanation for this, as this has my product (a remote control programmable coolant nozzle for CNC milling machines) stopped dead in it's tracks right before shipping to the first customers!!!
Thanks in advance for any assistance you can provide.
1 month, 1 week ago.
Looks like you're going round in circles, join the club!!
You say both the boards worked before you changed the code. Roll back your code and Mbed library to the point when they were working properly assuming you 'committed' your programs as you were developing. If not, roll back your Mbed library to the version that worked before and check again. If you haven't updated one of your other earlier programs, copy and paste the library from there (I do this all the time).
Get the boards back to where they were working. Then do not update the Mbed library for that project. If it worked correctly then it will not work more correctly if you update the Mbed library. I use some libraries going back 5 years.
When you say blinky example I assume you mean this one:
If not, use that one on your development board and see if that stops after 30 minutes on both the working Mbed library and the latest. That will indicate if it is a Mbed library issue.
Generally it's best to use the same MCU version that is on the development board, some MCU's can have slight differences depending on the package.
To post an answer, please log in.