ChipCenter Questlink
SEARCH CHIPCENTER
Search Type:
Search for:




Knowledge Centers
Product Reviews
Data Sheets
Guides & Experts
News
International
Ask Us
Circuit Cellar Online
App Notes
NetSeminars
Careers
Resources
FAQ
EE Times Network
Electronics Group Sites

EE Expert Robert Ashby
SpacerEmbedded Engineering

Click Here for the Embedded Engineering ArchiveClick Here for the Embedded Engineering Main EE Expert PageClick Here for the Guides and Experts Main Page

Playing with the Cypress PSoC Family
by Robert Ashby

Some time ago I wrote an article where I mentioned the capabilities of the Cypress PSoC family. For the last couple of weeks I've been able to roll up my sleeves and start to actually try to make the PSoC do something. It has been quite enjoyable. The PSoC hotline and telephone training, coupled with a few visits from Cypress, have assisted me in my baby steps of moving into a part that I feel is in the forefront of new territory.

You can get a good understanding of what PSoC is and what capabilities it has by visiting the Cypress Micro site. There you can download the development environment and get started right away. Parts are currently in production, and development systems are available that let you program your parts in-circuit or using an emulator attachment that lets you debug your application on your board.

The analog blocks set the Cypress PSoC family apart from other System-on-a-Chip (SoC) parts. I was a little skeptical at first about how useful these analog capabilities would be. However, as I spend more time developing with their system, it becomes more and more apparent just how useful having this capability built into a processor can be. The ability to route the output of the analog blocks out to external pins allows for quick diagnosing of just how well of a job the blocks are doing.

The PSoC part that I'm using has 12 analog blocks and 8 digital blocks. The analog blocks are separated into three types: 4 each of continuous time blocks, as well as Type A and B switched-capacitor blocks. You can easily drop pre-built modules that use these blocks into your design. This allows you to drop in amplifiers, filters, A/D converters, comparators, etc., with the analog blocks. The digital blocks can implement timers, PWM generators, serial communication modules, counters, and timers. The output of any block can be sent to external pins for examination with a meter or scope to find out how well the logic implementation is working in real time.

The digital blocks are fairly universal in allowing you to set up your chosen modules without too many limitations. The internal oscillator on the part can get you an accuracy of 2% or better. Using an external 32 kHz crystal will tune your timing to be much more precise if needed. The PSoC steps up that frequency internally to 48 MHz. There are two other global internal frequencies that are divided off of that 48 MHz. This allows you to get some good flexibility out of your blocks without wasting precious resources just to divide down the main frequency.

The analog blocks are built using switched-cap technology. In short, you are able to take a capacitor that is switched such that it looks like a resistor. The 48 MHz is high enough to implement a wide array of analog solutions by using very flexible building blocks for the analog section of the PSoC. However, the analog blocks are a little less forgiving than the digital blocks. It can take a little while to understand which modules can go where. The interconnects allow you to link the outputs and inputs of adjacent blocks only. If you need to connect to something farther away than that, then you will need to be a little more creative, e.g., take a signal out to a pin and then return the signal in on another pin. I would say that understanding the interconnects and the capabilities of the analog blocks have been the steepest learning curve for this part. Therefore, I would suggest that you spend some time trying to lay out your project with the IDE or at least go over what the project entails with one of the Cypress FAEs before promising your boss that the design will fit and work in the part. Don't lose faith, though. You will find that what may seem to be beyond the capabilities of the part is actually very feasible with a little persistence and know-how of the part's structure.

One of the great things about the part is that you can take a lot of load off the processor by implementing the analog and digital blocks to take care of a lot of signal processing for you. It takes some definite "thinking out of the box." If you are like me, you usually get it almost all the way set up in a conventional microcontroller manner before the light goes on and you realize that a simple implementation of the hardware can do the same task without taxing the CPU.

Let's look a little at my latest project.

The task—implement an auto-gain circuit to condition a signal into the linear region of processing in order to examine the resulting signal for an encoded signal.

Conventional means—either implement the auto-gain externally or try to sample the AC signal multiple times per period of the AC signal to determine the overall amplitude of the signal to determine how to either amplify/attenuate the signal digitally or to control external pins that would against the gain in some external circuitry. Once the signal is in an acceptable way, use some DSP or other means of cleaning up the signal.

PSoC means—input the signal into a programmable gain block. Rectify the output of that signal to achieve an always-positive result. Put the rectified signal through a low-pass filter to achieve a DC equivalent of the amplitude of the signal. Read the DC level at your convenience and modify the gain of the first block as needed. Use other filters, gains, and the built in 8 × 8 multiply accumulate to condition your signal.

I'm very excited about this part family and plan on writing a few more articles in the future on what I've been able to accomplish with this part. I haven't found any other manufacturers who are creating SoC parts that have analog blocks like this. Maybe there are some that are in the more expensive realm. These parts are well under $2 in quantity. There's a lot of power that is packed into these small packages and I fully expect that they will open up some new territory in the micro world. It gives a chance for fledgling engineers like myself to be able to truly build a system that deals with the analog world and interfaces with my digital world entirely on one chip.

Let me know what you think. Enjoy some the Cypress application notes. Until then, I'll be having fun with my new Cypress toys.

Embedded Engineering Archive

Guides and Experts   Analog Avenue   EDA Tools   PLD   DSP   EDA   Embedded Systems   Power   Test

Click here to get your listing up.

Copyright © 2003 ChipCenter-QuestLink
About ChipCenter-Questlink  Contact Us  Privacy Statement   Advertising Information  FAQ