Help me understand this semiconductor product.
April 18, 2013 9:58 AM   Subscribe

Hardware engineers / developers: can you help me understand Cypress Semiconductor's PSoC 4 platform? Who is it aimed at? What are the alternatives?

I've already learned what I can via the investor relations route, but I would like to have the perspective of an actual engineer whose day-to-day work involves products like this.

I don't want to limit the scope of anyone's answer, but the kind of questions I have include:

In what situations would you consider using PSoC 4? Are those situations significantly different or more numerous than previous PSoC generations?

My understanding is that this platform competes with solutions based on MCUs from Atmel and Microchip (and maybe Freescale and others?). How do these companies compete against PSoC 4? What are the pros/cons of alternatives?

It seems like a big deal that PSoC 4 is based on ARM-architecture. Is that true and why?

I know Cypress had problems on the software side but has been trying to improve. Have you noticed improvement? Are other semi companies significantly better at software?

When I look at this schematic I notice numerous references to Arduino. When I read about Arduino, it seems to me like a competing platform. So the extent to which the Cypress board is compatible with Arduino is confusing to me.

It seems like I'm asking a lot, but really I'm just interested in whatever you have to say.
posted by mullacc to Sports, Hobbies, & Recreation (10 answers total) 3 users marked this as a favorite
 
The Arduino pin-compatibility is to show they are hip to the hobbyist market. For better or for worse, the Arduino shield pin-out is now the standard for hobby electronics anything.

It looks an interesting hybrid of an MCU, with just a shade of the flexibility of an FPGA without having to build all your logic from scratch. There's a lot of hype around the concept, though, and the documentation is currently slanted towards sales rather than technical. I don't think I'd rush out and replace my Teensy 3.0s with them, but they're an interesting concept.
posted by scruss at 10:23 AM on April 18, 2013


I've worked a lot with the PSoC1 and PSoC3, and I believe the PSoC4 is a sister to the 3, so I'll give you my perspective.

+ In what situations would you consider using PSoC 4? Are those situations significantly different or more numerous than previous PSoC generations?

I used PSoC in the past to design projected capacitive touchscreens. Cypress has a lot of experience in this arena and their engineers are really skilled at making these things work on their devices. As you start getting into multitouch devices you need more processing power to get the thing under control, so I see the 4 being an improvement in that area by bringing in a faster processor.

+ It seems like a big deal that PSoC 4 is based on ARM-architecture. Is that true and why?

The 4 seems to be similar to the 3 with the CPU changed from their weird 8051 CPU to an Arm Cortex M0. I guess you have a lot of ARM assembly you want to bring in, this would be a good improvement. The ARM-M family focuses on lower power consumption, so I'm guessing that's why Cypress brought it in as well.

+ My understanding is that this platform competes with solutions based on MCUs from Atmel and Microchip (and maybe Freescale and others?). How do these companies compete against PSoC 4? What are the pros/cons of alternatives?

I'd like to say Cypress has a better handle on their development tools for this kind of part, especially the Creator IDE. Creator makes management of the analog blocks very easy. They also dominate the USB market so getting one of their parts talking on USB is a simple process.

Part of the downside is that sometimes their libraries are closed off to developers unless you have all kinds of tech sharing and NDAs in place. So that can be a bummer.

+ When I read about Arduino, it seems to me like a competing platform. So the extent to which the Cypress board is compatible with Arduino is confusing to me.

It seems like this PSoC4 experimenter board just has sockets added to let it connect to the typical array of Arduino shields. So they're trying to attract engineers by letting them swap out their Arduino core with one of these things.
posted by JoeZydeco at 10:28 AM on April 18, 2013


The Arduino isn't really a competing platform; the Atmel AVR that is the processor on the Arduino is the competing platform. I doubt Arduino-type devices account for any significant fraction of sales of either of these chips though. Cypress is just giving their evaluation boards an Arduino form factor so they're familiar and easy for an engineer to try out.

The ARM core is definitely a step up from the 8051-derivative that earlier PSoCs used— but o the other hand it might mean users have to throw out literally decades of experience, code, and tools adapted to the 8051 in order to move to the new device.
posted by hattifattener at 12:40 PM on April 18, 2013


Response by poster: Ok, I think I was conflating Arduino with AVR.

So why would an engineer go with PSoC over AVR?
posted by mullacc at 1:28 PM on April 18, 2013


I don't know how deeply you read into the PSoC literature, but the PSoC is a really different animal than the AVR.

Both have a few things in common: microcontroller core, EEPROM (with protection), some RAM, and some GPIO.

But the PSoC really stands apart from the other controllers with the analog blocks that it includes, and the ability to switch these blocks and remap I/O pins under software control. If you tried to hook an AVR into an analog system you would need a number of external parts to do things like amplify signals and convert from analog to digital and back.

The PSoC does all of these kinds of things on-board and is fully configurable through the IDE, C code, or directly writing registers in the core.

If I was doing any kind of small analog-processing project, I would use this chip before even considering an AVR-type micro.
posted by JoeZydeco at 1:44 PM on April 18, 2013


Response by poster: JoeyZydeco: Thanks, this is really helpful. I understand the idea the PSoC incorporates these analog "blocks" whereas an AVR-base system needs external parts added. But it seems like the Atmel software is set up to make that process pretty smooth? Maybe I'm overestimating that.
posted by mullacc at 1:58 PM on April 18, 2013


Best answer: The reality is that it's very easy to hook up anything to anything else these days. But if I wanted to, say, connect a thermal sensor to an AVR I would need to obtain a separate analog-to-digital converter, connect it with the proper analog filters, and then wire that up to the AVR and have the two parts talk over I2C or some other kind of communication protocol.

With the PSoC I could wire the sensor directly to the chip with a few external resistors and let the software do the rest of the work. See this example project for an idea of how it could be done. Note in Appendix B that because the PSoC has the analog stages onboard, it can even detect broken wires and missing voltages and compensate for a broken sensor, which would take a lot more work to do with an AVR.
posted by JoeZydeco at 2:27 PM on April 18, 2013


Best answer: Yeah, the basic thrust of the PSoC line, and what distiguishes it from most microcontrollers, is it's a mixed-signal device with a lot of configurable analog goop on-chip. For the kinds of high-volume applications that make chip manufacturers money, it's only partly a question of how easy it is to add the same functionality off-chip; it's more a question of how much it costs to manufacture the resulting device. Vendor literature refers to reducing parts count and BOM cost. The stuff on the chip might not be as good as what you'd add as an external component (it's always a compromise) but if you can save a dollar and a square inch of board area on each of a hundred thousand units made, it starts to be pretty compelling.

Most microcontrollers have a bunch of peripherals on-chip, but they don't generally have a lot of analog/mixed-signal peripherals— typically just an ADC and maybe a comparator or something. The niche the PSoC is going after is people who can make use of the extra analog circuitry.
posted by hattifattener at 2:29 PM on April 18, 2013


I find some of your comments puzzling, JoeZydeco. I'm no EE, but I'm sure that there are plenty of AVRs with A/D controllers. Analog amps and filters are another matter though.

For what it is worth, I've also come across other microcontroller lines that have extensively remappable I/O, though again, not necessarily with the analog options included.
posted by Good Brain at 5:48 PM on April 18, 2013


Well yeah, the A/D was meant as a simple example of using the analog components.

Doing something like CapSense on the PSoC uses a lot more of the functionality of these units. You use some of the digital blocks (say, a timer-driven PWM fuzzed up with a pseudo-random sequence generator block to avoid harmonics and LCD VCOM interference) and then hook that up to the capacitive sense electrodes before reading it back with the analog charge/discharge switch and comparator-based sigma-delta counting to read back the charge level compared to a reference voltage level (lots of juicy capsense details are in docs like this).

Stuff like that all takes place under the watch of the CPU while connecting the capsense mechanism dynamically to the electrode lines and connecting surrounding lines to ground or a modulated shield waveform.

And yeah, Atmel and Freescale make similar products, but this isn't what you're getting in the Arduino class of microcontrollers.
posted by JoeZydeco at 7:39 PM on April 18, 2013


« Older Excellent plays to watch this weekend in NYC?   |   Subvert the dominant paradigm with Hyperlocal news... Newer »
This thread is closed to new comments.