By Chris Francis
The first generation Cypress PSoC “Programmable System-on-Chip” – PSoC 1 – was the first programmable analog system that was general purpose, flexible and with usable performance in my opinion. Various other companies attempts at programmable analog prior to that were either too restricted, slow or relied solely on switched capacitor analog blocks. The PSoC is more than just programmable analog as it has a processor and programmable digital as well. However, the PSoC was still quite limited in which applications you could use it for. The opamp speeds were limited. Offsets weren’t great. Relying on switched capacitor blocks for some analog functions restricted the bandwidth of signals that it could be used for although there are “continuous time” blocks available as well.
I did manage to successfully use a PSoC 1 in an application where it was a good match and used almost all of the analog and digital blocks of the largest device, the CY8C29x66, making a very cost effective solution with minimal pincount and few external components. It used:
- programmable gain amplifiers, some of which were configured as Sallen-Key filters using external resistors and capacitors
- 4 pole low pass SC (switched capacitor) filter
- 2 pole low pass SC filter
- 24 bit pseudo random number pulse
- various counters, timers and prescalers
The chip modulated a light source and the demodulation of the signal was integrated into the SC low pass filter front end – there is the facility to automatically demodulate built in to the structure of the analog system without using additional resources. However, if you do this it is worthwhile making sure that the SC filter clock is an integer multiple of the modulation clock otherwise you can get analog offsets due to clock feedthrough. This isn’t something I have seen mentioned anywhere but it has been observed, investigated and eliminated by maintaining the integer multiple of the clocks.
The PSoC 1 has an 8 bit M8C core. The PSoC 3 has an 8 bit 8051 core – presumably aimed at people familiar with that processor. The PSoC 4 and 5 use 32 bit Cortex cores – M0 and M3 respectively. The PSoC5 was released with the PSoC 3 and will suit people who want a powerful processor, but at a cost. The price depends on pincount, speed an memory size but typical prices for a large version of each series are $9 for the PSoC 1, up to $22 for the PSoC3 and up to $20 for the PSoC 5LP. There aren’t many PSoC 4 devices available yet but the ones that are available are less than $3 but these are in smaller packages so not directly comparable with the prices for the larger PSoC1, 3 and 5LP given above, but the prices do seem quite a bit lower than the PSoC 5.
As a mixed signal engineer with a strong analog emphasis I find the devices with the simpler, slower processors more appropriate as I see the applications of mainly analog in nature. For my applications where I am wanting maximum analog functionality at low cost, the PSoC 4 sounds attractive. However, other people may look at things from a high performance, digital point of view and see the analog as just providing a few basic functions. However, viewed like this there is a lot of competition for microcontrollers with some built in analog functions such as Microchip PICs, but not with the flexibility of the PSoC analog.
The analog section of the PSoC 1 is shown below (taken from the PSoC data sheet). The top row of four blocks in the “Block Array” are actually programmable gain amplifiers/continuous time analog blocks whereas the other 8 blocks are the switched capacitor blocks. The full complexity of the possible signal routing is not shown. However, all possible connections are not available which can result in frustration when trying to connect everything. In one case I had to route a signal out of the chip on a pin and back in because there wasn’t an internal route possible.
The PSoC 3 & 5 analog core is quite different and is shown below:
PSoC 4 and 5 have one or more 12 bit SAR ADCs compared to the rather slower Delta-Sigma ones on the PSoC 1 and 3. The internal routing of the analog section of the PSoC 5 is shown below, although I am not sure if it really helps understand the connections!
PSoC 1 uses PSoC Designer software. PSoC 3, 4 and 5 use PSoC Creator software which annoyingly won’t install without a specific version of Microsoft Internet Explorer already installed. I don’t see why it cannot simply use whichever browser you normally use. In fact the only time I have seen PSoC Creator use a web browser is to load external links and then it launches Firefox anyway (my default browser) but it wouldn’t install until I had also installed Internet Explorer 7 or higher.
The internal structure of the newer PSoC devices is quite different to the PSoC 1 and now includes a higher performance ADC on the PSoC 4 & 5 and more dedicated blocks such as DACs. Previously the ADCs and DACs were made from the general purpose analog/digital blocks and were quite slow.
The PSoC Creator software is quite different to the PSoC Designer software used with PSoC 1. Previously the placement and interconnection was pretty much down to you, although some interconnects were automatically done when you placed a module. Now the design is more “free form” and you place modules on a clean sheet, you interconnect to pins and then “build” the project which creates the connection routes for you. In this respect it is a bit like using some FPGA software, just as the PSoC Designer was like using very old CPLD software.
So, there are a lot more PSoC devices to choose from now, although a lot of the choice seems to center around the choice of processor. Cost would make me look at the PSoC 4 first although the other versions would be attractive to people with strong processor preferences or intensive processing applications. The analog functions have improved and the software makes the analog design easier. If you are looking for high performance ADC, something which is becoming quite common on microcontrollers now, then you would need to look at the PSoC 4 or 5.