So, in a world where the leading manufacturers offer huge families of microcontrollers boasting every combination of peripheral options, bells and whistles, why do we need another one?
Cypress Microsystems has turned the tables on the whole process of choosing a microcontroller. Its PSoC (Programmable System on a Chip) microcontroller breaks away from the traditional menu-based micro world in that not only are the peripherals programmable, but the way in which they are used is re-configurable dynamically! The PSoC can change its personality and functionality on the fly.
With microcontrollers pervasive in our daily lives, the problem that confronts the engineer is clear: to choose a microcontroller that fits his/her particular requirements perfectly.
The most common solution by the semiconductor vendors is to provide the engineer an endless list of part numbers each of which describes a fixed set of peripherals, ie, timers, UARTs, ADCs etc. The typical solution is to choose a microcontroller that nearly fits the application. At the same time, there is the situation where a peripheral, such as a UART, is only used rarely during the lifetime of the product. An example of this is a UART that may only be used for field downloads. It would be efficient if the microcontroller had the ability to create a UART out of the resources that it has available, when needed. Once the field download was completed the micro could reconfigure itself and use the resources that it used to construct the UART for its day-to-day function.
This sounds too good to be true; a microcontroller that can 'morph' from one set of functions to another on the fly - but that is the basis of the Cypress Solution.
The 'morphing' micro
The PSoC microcontroller consists of a CPU, Flash memory, SRAM and a set of low-level analog and digital elements that can be interconnected to create a multitude of peripherals. The interconnections are configured via registers accessible by the CPU. This flexibility has the added bonus of dynamic configurability; changing the peripheral mix under the control of the firmware.
The PSoC core is an array of digital and analog PSoC Blocks. These blocks are the low level elements that can be connected together and configured to build User Modules. A User Module is the Cypress Microsystems terminology for a function analogous to an on-chip peripheral. The low level elements that make up User Modules consist of Digital Blocks and Analog Blocks.
Digital blocks
There are eight Digital PSoC Blocks in every microcontroller. Of the eight there are two types, the Basic Type A and the Communication Type A. Each type is an 8-bit wide digital resource. The blocks can be chained together to form wider bit widths and more complex peripherals such as timers, counters and pulse width modulators. Functions such as timers, counters, CRCs, and PRSs are available on Basic Type A blocks whereas UART and SPI communication functions are available on the digital Communications Type A blocks.
Analog blocks
There are 12 analog PSoC blocks in every microcontroller. Of the 12 there are three different types, the Analog Continuous Time Type A, the Analog Switched-Capacitor Type A and the Analog Switched-Capacitor Type B. These blocks are arranged in an array of three rows by four columns.
The continuous time type A analog block supports programmable gain or attenuation operational amplifier circuits, differential gain instrumentation amplifiers (using two continuous time blocks), continuous time high-frequency anti-aliasing filters and modest response-time analog comparators.
The Analog Switched-Capacitor Type A analog block supports delta-sigma successive approximation and incremental A/D conversion, capacitor DACs, and switched-capacitor filters. The block has three input arrays of binary-weighted switched-capacitors, allowing user programmability of the capacitor weights. This provides summing capability of two (CDAC) scaled inputs and a non-switched-capacitor input. Since the input of the switched-capacitor Block A has this additional switched-capacitor, it is configured for the input stage of a Switched-Capacitor Biquad filter. When followed by a switched-capacitor block B integrator, this combination of blocks can be used to provide a full switched-capacitor biquad.
The Analog Switched-Capacitor Type B analog block also supports delta sigma successive approximation and incremental A/D conversion, capacitor DACs, and switched-capacitor filters. It has two input arrays of switched-capacitors and a non-switched-capacitor feedback array from the output. When preceded by a switched-capacitor type A integrator, the combination can be used to provide a full Switched-Capacitor Biquad.
By combining the low level structures described above, Cypress provides the PSoC user with high-level peripherals called User Modules. These modules allow the user to simply drag and drop peripherals onto their PSoC system using the PSoC Designer Device Editor. The types of User Modules available are shown in Table 1.
The Table 1 list is simply those modules that are currently available with the PSoC Designer development tool that can be freely downloaded from the Web. User Modules can also be created by the user and added to the library. Once the User Module has been included in the PSoC design and compiled, the user is simply given the API (Application Programming Interface) calls to read or write to the module/peripheral. There are no registers to configure or any detailed set-up procedure - the User Module is ready for use.
As part of the compilation procedure, the firmware modules that are required to configure the PSoC to use the User Modules (peripherals) selected, are generated and are called on CPU boot up. These firmware calls are the key to the dynamic re-configurability of the PSoC in that, to change the peripherals of the PSoC, the user simply needs to call the relevant firmware module.
So how do we go about creating a real design with Cypress Microsystems' Programmable System on a Chip microcontroller? For that, you will have to wait for Part II of this article. If you cannot wait, contact the distributor on the details given below immediately.
For more information contact Simon Churches, Arrow Altech Distribution, 011 923 9600, [email protected]
Tel: | +27 11 923 9600 |
Email: | [email protected] |
www: | www.altronarrow.com |
Articles: | More information and articles about Altron Arrow |
© Technews Publishing (Pty) Ltd | All Rights Reserved