In PSoC ( P rogrammable S ystem o n C hip ) is, by 3 different 8-bit and 32-bit microcontroller families , those sold by Cypress Semiconductor be prepared. The first products have been on the market since 2001, the PSoC 3 has been around since 2010 and the PSoC 5 based on an ARM Cortex-M3 since 2011. In the meantime, all 3 families have been expanded and there are well over 100 different PSoC modules. In addition to the “M8C” processor core developed by Cypress Semiconductor, a single cycle 8051 is used in the PSoC 3 and an ARM Cortex-M3 in the PSoC 5. These cores are also used in many variants in the USB controllers from Cypress Semiconductor.
The strength of the PSoC compared to typical microcontrollers is that the individually required resources in the periphery can be generated and adapted according to requirements. So the hardware of the controller z. B. can easily be reconfigured from a UART to pulse width modulation , or vice versa. This applies to both digital and analog functions. In addition, the inputs / outputs of the peripherals can be assigned to the pins in almost any way. This flexibility enables PCBs to be manufactured without having the final specifications.
The two main components of a PSoC initially consist of a standard microcontroller with the arithmetic unit , flash memory , RAM , various on-chip RC oscillators with PLL , watchdog , voltage reference , I / O ports and much more, as well as with newer models with integrated peripherals like I²C or USB . Furthermore, there are so-called digital and analog "blocks" on the PSoC, which can be assigned peripheral functions individually by the developer. The PSoC are offered with flash memory from 2 to 256 Kbytes, RAM memory from 128 bytes to 32 Kbytes, and in housings from 8 pins to 100 pins. The names for the PSoC 1 family from Cypress Semiconductor are CY8C2xxxx, for the PSoC 3 family CY8C3xxx and for the PSoC 5 family CY8C5xxx.
The different families are there:
- CY8C25xxx, CY8C26xxx : the first generation of the PSoC, with 4 to 16 KByte flash memory, 256 byte RAM, 8 digital and 12 analog blocks, housing sizes from 8 to 44 pins. This family should no longer be used for new developments, successors are the products of the CY8C27x43 family.
- CY8C27x43 : the second generation of the PSoC, with 16 KByte flash memory, 256 byte RAM, 8 digital and 12 analog blocks, housing sizes from 8 to 44 pins.
- CY8C29x43 : with 32 KByte flash memory, 2 KByte RAM, 16 digital and 12 analog blocks, housing sizes from 28 to 100 pins.
- CY8C28xxx : with 16 KByte flash memory, 1 KByte RAM, very different in the peripheral configuration up to max. 12 digital and 12 analog blocks, some with 10 bit ADC, CapSense (see below), housing sizes from 28 to 48 pins.
- CY8C24x23 : with 4 KByte flash memory, 256 byte RAM, 4 digital and 6 analog blocks, housing sizes from 8 to 28 pins.
- CY8C22x13 : with 2 KByte flash memory, 256 byte RAM, 4 digital and 3 analog blocks, housing sizes from 8 to 20 pins. This family should no longer be used for new developments; the products of the CY8C24x23 family are alternatives.
- CY8C21x34 : with 8 KByte flash memory, 512 byte RAM, 4 digital and 4 modified analog blocks, CapSense is possible with these controllers (see below), housing sizes from 20 to 32 pins.
- CY8C21x23 : with 4 KByte flash memory, 256 byte RAM, 4 digital and 4 modified analog blocks, housing sizes from 8 to 24 pins.
- CY8C20x34 : with 8 KByte flash memory, 512 byte RAM, I²C / SPI but no blocks, with these controllers CapSense is possible (see below), housing sizes from 16 to 32 pins.
- CY8C20xx6 : also CapSense-Express , with preinstalled CapSense and communication firmware, 2 KByte RAM, I²C / SPI but no blocks, CapSense is possible with these controllers (see below), housing sizes from 16 to 48 pins.
- CY8C24x94 : with 16 KByte flash memory, 1 KByte RAM, USB , 4 digital and 6 analog blocks, with these controllers CapSense is possible (see below), housing sizes from 56 to 100 pins.
- CY8CTMA1xx , CY8CTMG1xx , CY8CTST1xx : also PSoC TrueTouch , with special functions such as 2-point gesture recognition or multi-touch all-point up to 10 fingers, with 8 to 16 KByte flash memory, 512c to 1024 byte RAM, case sizes from 32 to 100 pins.
- CY8CLED0xx0x : also PowerPSoC , with special power functions: up to a maximum of 4 times 0.5 or 1 ampere MOSFET or only with external gate drivers, with 16 KByte flash memory, 1 KByte RAM, housing size 56 pins.
- CY8CNP1xxB also PSoCnv : is a CY8C29xxx with 100 pins, but it also contains a non-volatile memory of 64 to 256 KByte (a combination of RAM with shadow EEPROM).
- CYWUSB6953 : is a CY8C27643 with 48 pins, but a wireless USB chip , also available discreetly from Cypress Semiconductor, is integrated in the housing.
The memory allocation is carried out according to the Harvard architecture , i. H. Program and data memories are addressed via separate buses.
Direct access to the data memory , the RAM, is only possible with the PSoC 1 up to 256 bytes of RAM, access to higher memory addresses must be made via banking . PSoC 3 offers between 2–8 KB RAM / 16–64 KB Flash and PSoC 5 between 16–64 KB RAM / 64–256 KB Flash.
Periphery in the blocks
The 'blocks' in the PSoC are small, self-contained arrays . These arrays are preconfigured during program development, but can also have other functions during operation; this can easily be done by the program by changing some registers. In addition to the main distinction between analog and digital, there are other small distinguishing features.
- Digital blocks, these are designed as 8-bit functional units with registers. Such a block can hold an 8-bit timer or counter. If you need a 16 or 32 bit timer, you have to interconnect several blocks. Other functions that can be inserted into the digital blocks are UART , SPI , PWM with or without dead time, CRC generator , random number generator and many more. It should be noted that the communication functions (UART, SPI) can only be stored in half of the available blocks, as the other half lacks a communication line.
- Analog blocks: A distinction is made here between so-called 'Switch Capacitor' and 'Continuous Time' in order to be able to map different analog functions in them. The CY8C21xxx families only have a reduced functionality. In the analog blocks z. B. AD converter (according to SAR , incremental or delta-sigma method), DA converter , operational amplifier , comparator , filter functions and much more.
- In the case of the CY8C20x34, the blocks have been completely dispensed with, only the option of serial communication using I²C or SPI in hardware and the connection of CapSense is possible.
This is a special feature new to several families of the PSoC. CapSense is supported with the standard micros CY8C21x34, the specially designed CY8C20x34 and with the micros with USB, the CY8C24x94. With CapSense you can easily create buttons, one-dimensional slide controls (slider) or two-dimensional input fields ( touchpad ), the input elements consist of pure conductor track areas on a circuit board , whereby no further hardware elements such as capacitors or the like are required. The developer is supported by a 'wizard' in the PSoC designer. Depending on the design, a film or glass can then be attached to the circuit board in order not to bring the user of the circuit or the device into direct contact with the circuit board.
In order to be able to use the microcontroller in an application, the developer must first develop a program. The program development can be done using assembler or a high-level language , e.g. B. C happen. With the PSoC, C is mostly used in industry today, as it is easier to maintain the program code later. Cypress provides the free software 'PSoC-Designer' for the development on their homepage, the designer includes a graphical surface for integrating and configuring the required peripheral modules, the assembler and a C compiler. With the PSoC-Express, which is also available free of charge from Cypress, program development is also completely possible on a graphical level; this is particularly suitable for assessing feasibility, so-called feasibility studies , or for newcomers to electronics development who have little or no experience with programming languages .
- Programming in C
- A free C compiler is available from Cypress, which is integrated in the PSoC Designer and licensed by Image-Craft.
- Troubleshooting - Emulator
- For debugging, you can use the Cypress emulator, the ICE-Cube. You can also program the chips with the ICE Cube.
- This process is also known as burning . This means that information (e.g. a compiled program, also called firmware) is stored on the internal flash memory of the device. For this purpose, the PSoC microcontrollers offer a serial programming interface that can also be used to transmit the machine code if the chip has already been built into the circuit. This process can then be carried out with a programming device. There are particularly inexpensive programming tools from Cypress under the names 'CY3210-MiniEval1' or 'CY3210-PSoCEval1'.
- PSoC Creator for PSoC 3 and PSoC 5
- The free software for programming PSoC 3 and PSoC 5 offers significantly more convenience because B. makes automatic routing and this is very necessary with the higher complexity of the chips. The GNU Dugger (GDB) is integrated in PSoC Creator for debugging. Keil for PSoC 3 and GNU for PSoC 5 are used as compilers.
- Fredi Krüger, PSoC microcontroller, Franzis Verlag, ISBN 978-3-7723-5399-4
- Fredi Krüger, measuring, controlling and regulating with PSoC microcontroller, Franzis Verlag, ISBN 978-3-7723-5437-3