Ok so I hear and read all these benefits about these PSoC chips. From jmole's freeSoc site even the cypress site. But what real advantage do these things give to the hobbyist / beginner. For instance right now I spend a lot of my time with 8 bit avr's. I have been thinking about getting involved in some arm development as well. Besides speed and elimination of some discreet components what do these things give me that and AVR or ARM chip can't from a hobbyist bang / buck perspective? As far as I can tell it is really not saving any money except from a time perspective.
We used to use exclusively Atmel chips for our designs (makes it easier having one hardware/software platform). With Atmel, the chip you choose depends on the features you need. One chip may support CANbus, but will have 3 timers and one capture pin. The part with 2 capture pins may have 6 times and 8 PWM channels, but is a much "bigger" chip than you need - you're just buying it for the extra capture pin.
With the PSoC, it's different. You have blocks that can be anything - timers, counters, PWM's or whatever you like. So you do not spec your chips based on individual functions, but rather based on how many blocks you need. And there will be several versions of the same chip family in the same package with differing numbers of blocks, flash, SRAM, etc. And I think the chips are competitively priced.
As an example, I went to Digikey and typed in ATMEGA, and selected one with 32k of flash and 25 or more IO's. The cheapest one is the ATMEGA329 that is $3.89 in 1,000 unit quantities, or $6.97/ea. That ATMEGA runs at 16Mhz and has 3 timers, 1 input capture, and 4 PWM channels. It has no USB support or DAC and but has SPI, I2C and a UART.
I went to Cypress (direct is cheaper than Digikey) and the cheapest PSoC3 with 32k of RAM is $3.44 in 1,000 quantities, or $4.52 for one. It runs at 50Mhz and whatever features you need you can just drag-and-drop those components into the digital blocks. So if you need 10 PWM's, fine. If you need 4 capture pins, fine. If you need 8 timers, fine. If you need less or more memory, fine. If you need I2C, SPI, etc - you just add the necessary components. Your consideration is just how many blocks the chips gives you to work with, not what pre-determined functions the chip supports.
The other big thing about PSoC is the analog and processing you can do in the chip. You can build logic and do filtering/conditioning with hardware and reconfigure it any time you like. If you need to invert a signal, or buffer signals, or multiplex signals, you just add those blocks and do whatever you need. And the blocks have API's to make them easy to use. You're not dealing with registers directly unless you want to.
Another thing that is nice is being able to abstract the function from the pin. So you can route your PWM to pin 1, or pin 10, or whatever pin you like. If you make a layout error in your board, you can usually just reconfigure your pins to fix it. You can also pass signals right through or put some logic or components like op-amps or comparators inline for fast processing without actually having to do any code at all.
Considering the power and pricing, I am not sure why most people wouldn't use PSoC's for most stuff.