Explaining the Cypress PSOC Choice March 29, 2008
Posted by Michele Fadda in PSOC, microcontrollers, technology.Tags: Cypress Designer, Cypress Express, Cypress PSOC, microcontrollers, technology
trackback
Explaining the PSOC Choice.
PSOC is an acronym that stands for “Programmable System On a Chip”, and that, as often happens in the world of electronics, indicates substantially different devices, compared with the seemingly similar acronyms SOC “System On a Chip”, which point at highly integrated digital components, but usually lacking analog modules.
PSOC is, unlike the generic acronym SOC, a product of the American company Cypress Semiconductors, and integrates both analog and digital subcomponents on the same chip. Often PSOC are called “mixed signal matrix” because they are programmable arrays, where the signals are processed at the same time in analog and digital form.
This far, we have just touched the boring subject of taxonomy nomenclature of a peculiar subtype of electronic devices, which apparently does not mean a lot.
PSOC is important, and in some ways even revolutionary, as it changes for good the way we design and make electronic appliances, in ways that are of paramount importance for a small company, as they offer opportunities to improve its competitiveness.
In a PSOC we find a number of modules, which are user configurable by writing into registers. These modules can be interconnected with one another through internal busses. These programmable modules, depending on their programming, actually “become” a peripheral device. E.g. depending on how they are programmed they can become an amplifier or a programmable filter, while more complex devices are obtained by combining with several modules. For instance, a digital analog converter can be obtained by combining together an analog comparator, a programmable voltage generator (DAC) and a counter or a decimator. A simplification of the operation of a digital converter can be rapidly summarised as follows: The counter scans the range of binary values, the programmable voltage generator converts each of them into a voltage, while the comparator indicates which of the values generated corresponds to the voltage to be measured. Of course, many more possible types of analog-digital converters are possible, each using different techniques and approaches, depending on the accuracy and speed required, and which “consume” more or fewer modules available. This means that you can implement different resolutions and different sampling techniques. All this is done “automagically” by Cypress development software. If we need a measuring amplifier or a filter to condition the signal, we can place and program that too along the signal chain. This way of working is in sharp contrast to what happens with virtually all other traditional microcontrollers. With traditional microcontrollers, if at some point, we realize that there aren’t enough bits of resolution in the ADC, or that its sampling frequency is wrong, it is almost always necessary to go back to the drawing board, select another component, maybe belonging the same family, but whose peripheral programming will be different. To add insult to injury, the pins devoted to analog signals are almost certainly mapped differently and cannot be “moved around”. If we had printed circuit boards designed, this means we have to have then redone from scratch, and we have to rewrite the firmware as well.
With PSOC, we can decide whether we need converters between 6 and 14 bits, based on different principles of operation, and we can deploy them on the same component. We can reroute pins to our heart content. Similarly, you can have PWMs and digital timers: Will four 8-bit do or is it better to have one 32-bit counter? The designer can choose, and will have to deal with tradeoffs, as there is a finite number of elementary digital modules in a PSOC. However, this is a true revolution in terms of designer freedom.
The PSOC can even be reconfigured on the run, e.g. if a PSOC is used in a transceiver, it is possible to implement the functions of a radio receiver when a “push to talk” button is released. When you press the “push-to talk”, it is possible to reconfigurare the radio as a transmitter, using the same hardware. Cypress marketing indicates this feature with the slogan “Use 400% of your resources.” As always, Marketing is pushing things a little, since this feature is practically limited by reaction time, computing power, memory on board, which makes “200%” a target not always easy to achieve.
This seems all very complicated… Indeed it is, but the beauty of this approach is that all the configuration activity does not take place ”by hand” insertion of binary codes inside registers, but rather through a visual tool: “pseudocomponents” that implement functions are choosen from a palette, while you can browse their characteristics from the instantly recallable datasheet.
The development system automatically generates the configuration and initialization, which the designer usually has no need to worry about. For example, the design software can then automatically convert projects based on a given PSOC to another.
Cypress offers two development environments, PSOC Express, which is used for rapid prototyping and that does not require knowledge of programming languages, and one for the design of “production level” projects, PSOC Designer, which allows fine control by means of C and assembler programming.
I must admit being initially very skeptical about PSOC Express, as designer: I was not convinced a “generator applications” could produce anything remotely viable. Actually PSOC Express, although not very intuitive, is indeed really easy to use and readilt implements almost everything needed, thanks to a “visual syntax” that allows the designer to draw from concepts such as priority encoders, tables decoding , finite state machines, delays. Express works at a more abstract level than “writing code”. PSOC Express moves into the realm of entity-level application, an object-oriented and visual way. For example, an accelerometer in PSOC express, including data acquisition and signal conditioning is represented as a visual “component”, as is a an USB interface. I have personally witnessed that is actually possible to build a software test, and verifying a hardware system in a few tens of minutes. A dear friend and fellow designer became tangle in a mess, trying to solve a problem equivalent to the one that I faced, which I solved in a few days. The difference between the two designers? I had at my disposal a set of high-level APIs and the ability to perform experiments and validate approaches in a few minutes, while he was forced to bang bits into registers in C and Assembler.
The last time I heard from him, he did not know yet if his trouble was at hardware or software level.
After quickly building a conceptual prototype with PSOC Express, having determined that there are no macroscopic errors , it is possible to refine a project with PSOC Designer. With PSOC Designer it is possible to achieve a complete control at device-level in C ad Assembler, and have circuit emulation. But at this stage we are already certain that all the basic pieces of the puzzle fit together, and we can progress at speed.
In each of the two development systems, most of the complexity of the project is handled automatically by a visual tool. If needed, the designer can intervene at a very low level, even modifying projects initially developed in Express, with PSOC Designer.
This approach is a huge innovation in a field where very little has changed during the last thirty years.
We can say with good confidence that there are no competing products with the same characteristics. In particular, anyone who has tried to convert a project developed for the same family (say 8051) on a similar core, and can use only traditional tools, knows this can become a nightmare. Doing this “automatically” sounds very sci-fi. With PSOC tools this is not just a dream but a daily reality, which usually results in automatic translation of mapping between devices, often in matter of a few minutes.
It seems to be back to the times of general electronic kits on breadboards, which provided a number of components, which we could freely interconnect, giving free room to our imagination. PSOC is really a general purpose kit on a chip. In only a few square millimeters of space it contains a large number of complex programmable and controllable from a digitally microcontroller.
In terms of computing power MIPS, I admit that speed and computing power is not the main selling point in the current PSOC breed. PSOC performance is comparable to a good 8-bit microcontroller, but not to an exceptional one: clock goes up to 24 MHz, but with instructions often taking many clock cycles and having very few registers (four: status, accumulator, index, stack). Cypress announced almost a year ago that the evolution of the current PSOC will be based on two new cores, one based on a 8051 core and a more powerful based on ARM.
For the moment being, while we wait for more powerful versions, PSOC business is definitely not processing power at high-speed, but is rather reduction of PCB real estate and cheap, low count BOMs.
PSOC do not have a low unit cost, compared to otherseemingly cheaper solutions. However the cost of a PSOC based project is nonetheless often less expensive: Their advantage in logistics terms is the huge reduction in stocks of different parts, as well as the need for fewer external connections, fewer components and hence greater reliability. It is useful to remember that, potentially, every single welding spot can introduce a fault. A component that allows you to have an subsystem integrated on a chip breaks down, statistically speaking, a lot less often. Moreover, it is not rare to be able to cut down the number of components by 50 or 60%, as well as the physical dimensions of the system.
With a PSOC we rarely need to to place components such as a crystals, resistors and capacitors. Passive components are often just an optional extra.
PSOC are currently used in many successful innovative products, in particular, CAPSENSE technology, replace buttons and knobs with capacitive sensors sensitive to the touch. Capsens is employed widely in consumer appliances such as, white goods, phones, mp3 players. Cypress’ Capsense is based on a sophisticated delta modulation , driven by a pseudorandom oscillator, which allows for high sensitivity, noise immunity, the ability to adapt to environment temperature, and to operate in adverse conditions such as rain.
For a small or medium enterprise this mean that PSOC can enable tackling technological projects, with the certainty of reaching a result, thanks to a powerful and reliable development environment. PSOC introduce the ability of modifying and reconfiguring almost all aspects of the project at low cost: We are no longer limited to peripherals mapped to fixed positions, tied to the specific pins. In case of a mistake, it is almost always possible to reconfigure and correct it without redoinf printed circuit boards and having to restart from from scratch each time.
Thus the project risk, and initial investment decreases significantly, as does “time to market”, which is always critical in how it allows to distance (or pursue) competition. To some extent, it is possible to update a product at hardware level, involving the analog part, after it was delivered to the customer.
Comments»
No comments yet — be the first.