Listen while you read: Radio Moscow - Timebomb
Over the past year in school I have spent a lot of time with the PSoC, Programmable System on a Chip. PSoC is manufactured by the company Cypress who's main focus is touch sense technology. The PSoC is the main controller for the click wheel in the Apple Ipod.
Leaning to program a micro-controller is a very big step in learning electronics. This is why I recommend to start out by trying PSoC. PSoC has a very unique interface compared with other micro-controllers, you begin setting up your system in a GUI rather then starting initialization in lines code. You are given a set number of digital and analog blocks. Programming is split up into two phases device editing and application editing. In Device mode you select the various device you want to include in your project then select there inputs and outputs, you can literally choose any pin on the chip to do anything you want it to. Any pin can be an input or output, digital or analog; Again anything you want. I have 4 different serial ports in my design, most micro-controllers only allow 2 or 3 at the most. They obviously cannot all run at the same time, if I wanted every port could be a serial port. The functionality is wonderful in PSoC. Take a look below at the interface for the device editor.
Now, the main purpose of the device editor is to make coding simplier and therefore allow you to focus on the purpose of your code instead of all the set up. So after we have installed and set up all our devices the next step is to write our application in C or assemble.
PSoC simplifies the process of writting code by shortening the commands for each device. This makes writting easier, plus each device has its own "data-sheet" with a list of commands to issue each device.
There are drawbacks with PSoC as there any micro-controller. PSoC is big and slow. Loading it with devices really slows things down. It has almost all functions as most other microcontollers; serial communication, ADCs, DACs, easy interface with LCDs. However, it takes forever to learn and you really have to spend a lot of time tinkering with it to understand it nuases, and sometimes you only can learn something by doing a very large project. There are alot of things its simplfing and theres a risk its coding things you will not need. I have heard of other compliers out there for PSoC that make the code much simplier. Despite these draw backs I think its a great system for a newbie to cut their teeth on or built in as a small part of a much larger system, such as its function in the Ipod. Hope you encounter it in the future it really is a great device and some such as myself does not give it enough praise and thourogh explaination.