The PSoC is an interesting animal. Really shouldn't be compared with the Arduino other than the fact they have 8-bit processor cores in the 20-40 MHz range.
The real beauty of the PSoC comes from the things you can do when you hook up the internal analog and digital blocks in interesting ways. Take a look at this example from Cypress:
Look at figure 4. Everything not in dark blue is in the PSoC Creator IDE to hook up different blocks on the chip and wire them to do some of the processing that you would normally offload to some other chips in your design. This is how they do CapSense with a minimal amount of external parts. There's lots of tasty A-to-D and D-to-A stuff on here. You can also do all of this stuff at the register level if you think the IDE is not your cup of tea.
USB is also very very easy with this part. You can have a HID device running in a half hour when you use their wizard and then flesh out the stubbed routines it creates for you.
Cool, the Pulse Ox link at the bottom of the page is even better (and iirc you can use the pulse oximetry information to calculate heartbeat too). Low-cost wireless version with decent battery life would be fantastic.
So it has some sort of CPLD-like functionality internal to the chip to map pins to logical units? Is there somewhere that you've seen that lists all blocks you can map pins to?
I think this must be a standard ARM thing. The nRF51822 Cortex M0 (with BLE) from Nordic can do something very similar.
They call it PPI (Programmable Peripheral Interface). All the peripherals (timers, ports, low power comparator, even a quadrature decoder) have "events" and "tasks" and you can wire them up as you please. It's pretty neat. Doesn't have any op-amps or capacitative sensing circuits though.
What your describing is just configurable IO pin routing and peripherals with DMA. That has been common for decades and has nothing to do with ARM, nor is it at all related to Cypress's PSoCs.
The PSoC has an internal switch fabric as well. You aren't just muxxing various blocks to certain pins (e.g. Pin 2.1 is either GPIO, SPI CLK, or UART TX), you can wire blocks to each other internally and then send the output or input to a large choice of pins on the outside.
Any word on whether / how well that Windows-only IDE performs on WINE in Linux? (Hint to Cypress: that Windows-only thing is a dealbreaker for enough of us that you really should address it.)
Cypress has shipped over 1,700,000,000 of these chips since introduction. Asking for PSoC Designer/Creator in another OS will probably be met with a very large shrug.
You're probably right, but Windows-only stopped me in my tracks too. I won't bother trying this, because the advantages over an Arduino mini pro (more memory, a snappy USB interface) don't seem to justify the pain of struggling with serial interfaces in WINE.
And although the vast majority of these devices will be going to big industrial users, if I was Cypress I'd consider the cost of developing Linux/Mac versions against the prospect of losing a generation of tinkerers to Atmel.
I made an offhand remark about wanting a Linux-compatible IDE in a Cypress survey for educational users a few years ago. Surprisingly, I received a detailed response from a senior manager about some of the reasons that they've stuck with a Windows-only system. They were well aware of the interest from Linux users, but had made a business decision to focus on making their IDE work really well, even if only on one OS.
I generally understand the motivation of these companies, but damn I really hate that they all build IDEs. I wish they would focus on command-line tools or libraries and integration with (say) eclipse for those that really want an IDE. Having a different half-assed IDE for each hardware platform makes for a frustrating day at work
Build automation for embedded systems is such a PITA. My previous job we had a build step that used AutoHotKey to click through the manufacturers 'proprietary tools'. You can imagine how reliable that was
A friend of mine used to make a sell speech chips turned me on to them. I went to a class hosted by a Cypress vendor a couple of years ago. I was excited by the potential for mixed digital and analog designs. Unfortunately, their development tool chain really let me down. After a couple of updates it stopped working and no amount of registry cleaning or re-installing would fix it.
"Designer was a great system for making PSoC's do shit, it worked quite well. Lately though, it's gone to hell leading to some wild speculation around the office of outsourcing, disgruntled employees, corporate favoritism, or a combination thereof. It's gotten to the point where Designer won't even install on my dev system, and it only actually STARTS on one machine in the office."
Designer (the old IDE) was pretty bad. Besides that there were two choices for the backend compiler/toolchain, Imagecraft and HiTech. Imagecraft produced awful code, and HiTech got bought by Microchip, who promptly killed all upgrades and support for the product.
Creator was a fresh start and plays much nicer. But that's not to say it doesn't have problems too.
I have worked extensively with PSoC3 chips and they have been rather remarkble beasts to play around with. You know your hardware is only 8 bits. You want to implement FFT for 16 bit numbers. or 32 bits. This is slow. Well, don't fret. I give you CPLD components to design your very own DFT block in hardware which is 16 or 32 bit wide. So you have still some CPLD blocks left? Create another component in hardware, link it with DMA. Finally ahem, you want to do Filters. That is 8051 there, too slow. Use the DSP chip on the PSoC to utilize hardware optimized filters.
Essentially, DMA them all up and you can create a multi-tasking environment in a PSoC chip.
The major cost of these sorts of kits is the development environment.
Arduino is great because their tools are all free. Atmel Studio is free, and built on top of GCC. Atmel even offers free software tools for their line of FPGA-AVR chips.
The free tool thing seems to be becoming a more and more common thing. Atmel Studio's also free, as is TI's development studio, albeit with some annoying limitations on program size, etc.
Interesting form factor (flat=easy to ship!) and price.
I wonder which features it offers and how it compares to a Raspberry.
Cheaper than the Raspberry, powered by USB, but also connected (usb-serial). No info about memory and flash (I guess some ports must for for a SD or for a USB client)
(it might make a cheap flashrom device - reading the specs ATM to see if SPI is there)
This competes with Arduino, not Raspberry Pis. The chips are 24MHz ARM cores with 32KB of flash, and you can get them in PCBs that with pins to fit Arduino shields.
From the datasheets, it looks like the principal difference is that the 4200 has "programmable digital blocks" which are basically micro-FPGA's, programmable in Verilog. I'm not sure how capable they actually are but it's a pretty cool idea.
The USB plug and chip on the left appear to convert USB to serial for communication with the device, so there's probably a bootloader sitting on the PSoC to accept new user code over serial. All PSoCs can reflash themselves from internal code.
There's also a spot for the traditional MiniProg device on the lower right for erasing/reflashing and advanced stuff.
so is this just cypress dumping lots of units or is this something they are selling with a margin? someone asked a similar question on hack-a-day earlier today because the PSoC 5 was something like $80.
The Cypress-supplied PSoC Creator IDE is all in C. C++ has been done to some degree with the GCC toolchain. Or you can cross-compile to Cortex-M0 with the language/toolchain of your choice but that's really out there.
The real beauty of the PSoC comes from the things you can do when you hook up the internal analog and digital blocks in interesting ways. Take a look at this example from Cypress:
http://edn.com/design/medical/4421721/Product-how-to--Heart-...
Look at figure 4. Everything not in dark blue is in the PSoC Creator IDE to hook up different blocks on the chip and wire them to do some of the processing that you would normally offload to some other chips in your design. This is how they do CapSense with a minimal amount of external parts. There's lots of tasty A-to-D and D-to-A stuff on here. You can also do all of this stuff at the register level if you think the IDE is not your cup of tea.
USB is also very very easy with this part. You can have a HID device running in a half hour when you use their wizard and then flesh out the stubbed routines it creates for you.