PSoC Bugs, Problems And Annoyances
The PSoC development environment tends to be mostly bug free. However, there are a few bugs I’ve noticed… * The MiniProg programmer can have trouble working when other USB devices are plugged in that emulate a COM port. * Find and replace can freeze when a search is started in a large number of files, even after the search is supposedly ‘cancelled’.
The PSoC 3 and 5 range of microcontrollers are relatively new (as of writing this, September 2011), and therefore have a few issues here and there that need to be smoothed out. Let it be mentioned here that all-in-all they are already a very capable and powerful microcontroller, with this being more like little annoyances than huge problems. This page does not detail all issues, rather just some of the more major ones.
Problem | Affected Revisions | Status |
---|---|---|
Wake-up sources not selectable when putting micro to sleep | PSoC ES2 or earlier | Fixed |
USBUART v1.0 is not compatible with power reduction modes (such as standby or sleep). Communication is impossible without re-enumerating USB device after PSoP device has returned from a sleep state | USBUART v1.0 with PSoC 5 | Problem as of 09-11 |
The internal die temperature sensor does not work | PSoC 5 ES1 | Problem as of 09-11 |
PSoC Creator does not report all build errors in the condensed ‘Notice List’, meaning the build can fail without any apparent cause. However, if you check the Build Output tab (next to the Notice List tab), you can find the cause. | PSoC Creator | Problem as of 09-11 |
PSoC Creator Crashing
Debug Crash
Sometimes PSoC Creator crashes when running the debugger. If I investigate the exception using Visual Studio, the exception I see is caused by “Invalid characters in path”.
Programming Crash
I’ve also had PSoC Creator crash while attempting to program a PSoC, if the PSoC chip has been programmed before, but now unavailable because it is unpowered/disconnected from MiniProg header. PSoC Creator crashes while the “Selecting Target” message is displayed at the bottom of the screen.
I have found that you can recover from this error by closing the “Select Debug Target” application from Task Manager, without killing PSoC Creator (and without losing any unsaved work).
Flash And SRAM Sizes Incorrect
The Flash and SRAM sizes calculated when you build a project don’t take into account the Stack size defined in the Design-wide resources file.
Even when Creator reports this
After adding another single-byte variable to the project, you might receive this error.
Invalid Input Module
This applies to PSoC 3 and the Keil tool chain.
This is caused it you select “True” for the “Browse Information” setting under Build Options->Compiler->General.
Math Functions Won’t Work In PSoC 5
If you keep getting “undefined reference errors” at build time when trying to use PSoC 5 math functions, don’t fret. This is a well known problem, and the fix is discussed in this documentation on the PSoC website. Basically, you have to type m
into the Additional Libraries field in the linker settings.
Find/Replace Stepwise Search Resets On Edit
When using Find/Replace in PSoC Creator, you will notice that the search resets itself if you edit any text while doing a stepwise search. This becomes really annoying, because every time it resets, you end up iteration through all the previously found strings before searching for any new ones.
PSoC Creator Doesn’t Delete Old Files When Renaming Project
PSoC Creator automatically creates a number of project files that incorporate the project name in their file name. When renaming a project, the old files are not deleted, leaving old, redundant files in the working code directory.
The workaround is to delete these manually. This is not hard, as you can group them altogether based on file name. You can safely delete this without corrupting your PSoC Creator project.
You Can Use The Two USB Pins As GPIO, But…
But they have to set-up with either the “strong drive” or “open-drain drive low” drive mode first (even if they are inputs)! See the Pins section on the PSoC->Components page for more info.