The PSoC ecosystem by Cypress is a range of microcontrollers (PSoC 3, 4, 5 and 5LP) and IDE’s (PSoC Designer and PSoC Creator).
PSoC 3, 4, 5 and 5LP microcontrollers have bootloader support, with easy drag'n'drop bootloader modules to speed up the development process.
PSoC Creator comes with heaps of useful components that make design quicker and simpler!
How to read and write from all kinds of registers on a PSoC device.
|Creating And Editing Your Own PSoC Components|
PSoC Creator allows you to create your own (or edit existing) components, a powerful feature which allows you to capture both hardware (VDHL hardware) and software and package it into a reusable “block” which can be dropped into other projects.
All about the data types you can use while writing firmware for the PSoC.
Information on PSoC development kits (not just the Cypress ones).
A comparison between the PSoC 3, PSoC 4, PSoC 5, and PSoC 5 LP. Weighs up the advantages and disadvantages.
ContentsReset Cause DetectionReset Cause Detection PSoC provides the function CyResetStatus(), which returns information on the cause of the last PSoC reset. Like this:Like Loading...
|How To Route A PSoC Microcontroller|
Tips and advice when routing (wiring up/connecting) a PSoC microcontroller in your PCB design.
|Installing And Using emWin On A PSoC|
How to install and use emWin, the powerful graphics library by SEGGER that you can use for free with PSoC Creator.
How to use interrupts on a PSoC microcontroller. Covers both component based interrupts (also check out the PSoC Components page) and code based interrupts.
|Low-Volume Production With PSoC Microcontrollers|
Tips when entering the low production stage of production using PSoC microcontrollers.
|Outputting A Constant Length Pulse|
How to output a constant length pulse using a PSoC microcontroller (both hardware and firmware solutions).
How to port code from PSoC 3 to PSoC 5.
Tips on programming PSoC chips.
|PSoC Bugs, Problems And Annoyances|
Some of the bugs, problems and annoyances that you find after using the PSoC system for a while (not that it isn’t a great product!).
Tips regarding the PSoC Creator (IDE), such as: The types of files used (and SCM recommendations), debugging, and installing.
|PSoC Power Management|
All about the sleep modes and how to save power. Comes with great tips and code examples.
|Useful PSoC Macros|
Useful PSoC macros that you can use to determine what PSoC version the code is compiling for.
|Using C++ With PSoC Creator|
With a few hacks, C++ can be used with PSoC Creator.
PSoC devices are great in the fact that almost all hardware peripherals are reconfigurable to any port/pins. You don’t have specific ports/pins for UART peripherals, nor for ADC’s e.t.c. However, I have to say almost, because there are some restrictions. These include:
- Power/ground pins – These are fixed (not really a big surprise there)
- Reset pin – This is also fixed. You could make another reconfigurable reset pin by using a GPIO, an interrupt, and a software reset, but this would have slightly less functionality
- External oscillator pins – If you want to use an external oscillator for better timing, it has to be connected up to specific pins (seperate pins for kilohertz and megahertz oscillators)
- Op-Amp Inputs/Outputs – I think these are pre-defined to optimise resolution/signal-to-noise ratios.
- USB D+ and D- pins – Because of the high communication speeds of the USB protocol, these pins require special design and hence are fixed.
FreeRTOS and PSoC
As far as I know, there are three ports for the PSoC family for using freeRTOS, all for the PSoC 5 family. Two are supplied with the freeRTOS download (i.e. officially supported), and the other is availiable on the Cypress forums (specifically, here). The two official ports both have the same functionality, but one is for the GCC compiler while the other is for IAR. It utilises the CY8CKIT-001 development board and features some sophisticated RTOS feature tests, as well as flashing the lights and using the LCD screen. The unofficial port is targeted for the same dev board, but is much simpler and just flashes two lights. They all use the native ARM M3 timer interrupt for the RTOS tick, which can be misleading since this is not set-up graphically (as most interrupts are, you can see them on the schematic editor). However, it is pretty easy to change this tick to run off a different source, such as the sleep timer, and ignore the ARM timer interrupt completely. You can find various FreeRTOS firmware modules for the PSoC microcontroller on my GitHub account. This includes:
- The Cypress website naturally has tons of information about PSoC devices. A really handy feature is that the IDE has one-click links to the datasheets with many of the supplied “components” (blocks of code).
- Planet PSoC (www.planetpsoc.com) is a small website with some information and block designs for PSoC 1 and PSoC 3 devices.