3

I've been taking a close look at PSoC chips (series 1 in particular). With the reconfigurable analog blocks, they seem like a great solution for general data acquisition needs for prototype projects.

I'm thinking about buying the programmer ($37 academic) and a few PSoC 1 chips so that I can avoid building amplifiers and filters and design electronics in a more intuitive way (more like Max/MSP).

Here's the signal chain I'm looking at for my current project:

(noisy) textile resistive sensors => voltage divider => PSoC(amplifier => lowpass filter) => (Xbee => Xbee?) => Teensy((decodeXbee|ADC) => micro-OSC code => USB) => Max/MSP/Jitter

People didn't have much good to say about PSoC in the last thread. Do you think they're overkill for general signal processing tasks in prototypes? Not worth the convenience? Wait a few years for the bugs to be ironed out?

Edit 1: I'm not looking for the best solution for my current project, I'm curious as to whether you think PSoC is a good investment for general prototyping. I see two advantages for myself:

  1. I get to learn (and share with the local community) a new technology
  2. When I need to do signal processing in prototypes, rather than hunting for circuits, spec'ing parts, ordering them, waiting, then assembling them, I can whip out a PSoC, configure the blocks I need, and plug it into a breadboard

This was prompted by the answers to a previous question I asked here. I thought, rather than buying and learning to use PGAs and instrumentation amplifiers, I could get to know PSoC and turn a hardware problem into a software problem.

Edit 2: I ordered the MiniProg1 kit from NKC Electronics. I'll let you know how it goes.

terrace
  • 1,334
  • 1
  • 15
  • 28
  • I hear that some experimental musicians like the [Gainer I/O module](http://gainer.cc/), which is now available at SparkFun. – davidcary Mar 31 '11 at 12:45
  • Gainer is cool, but it doesn't let you mess around with the analog blocks on the PSoC in any meaningful way IIRC. I think you can control a PGA on all input channels however: http://gainer.cc/Tutorial/HowToUseGainerWithMaxMSP?action=dispimg&im=maxmsp_help_patch.p.jpg – terrace Mar 31 '11 at 14:54

3 Answers3

1

Unfortunately I can't comment much on PSoC - it hasn't really solved a major problem for me.

What I can say is that you can connect you noisy resistive sensors to a PIC or AVR and then filter in software, so the PSoC isn't really solving a problem for you either.

For some sensors where a real amplifier is necessary before the A/D, then a PSoC might be useful, but I don't see it being important to your particular design, and may well be more expensive than the equivalent PIC/AVR solution.

Adam Davis
  • 20,339
  • 7
  • 59
  • 95
  • 1
    It's definitely far more expensive than a straight analog solution in the short term, but I'm thinking it might buy me time in the long run. And it just looks fun. – terrace Mar 31 '10 at 22:08
  • @msutherl - Yeah, they do look like fun. I have a dev kit around here somewhere that I was excited to get, that I never had time to play with. – Adam Davis Apr 01 '10 at 00:59
  • Also, I was assuming I would need amplification and filtering before the A/D to get cleaner data into the computer as per recommendations in this thread: chiphacker.com/questions/937/… (I'm anticipating that I will be dealing with similarly weak/noisy signals). I'm a student, so I've got time to play around with these things! The idea is to overdo it for the sake of learning. – terrace Apr 01 '10 at 01:27
1

You haven't mentioned how many sensors, what voltage/current levels or data acquisition speed you require. Also cost and size.

Is it possibly to condition the noisy sensor near the sensor? If you can put a filter at the noise source and buffer the signal with an op-amp (which will have a low output impedance) you will have a cleaner signal path. Filtering at the noise source is the opposite of what you would get with a PSoC (unless the PSoC is near the noise source). I don't have enough information on your application to know if this would make a quantifiable difference.

Moving the op-amps (and other analog components) to the PSoC will help with some of the wiring but you will probably still need to change external passive components and observe good analog design practices.

Most of my work has been with systems that combine a minimally integrated uC with high resolution peripherals (16/18/20 bit DACS and ADCS) or systems that can use the 8/10 bit resources that all uCs seem to have. I occasional add an op-amp or instrument amp.

On my last design a uC with a single (or dual op-amp) would have been extremely handy but most times it is not an issue.

Daniel Grillo
  • 7,659
  • 18
  • 51
  • 69
jluciani
  • 11,646
  • 1
  • 34
  • 54
  • thanks jcl – take a look at my edits to the main question ("I'm not looking for the best solution for my current project, I'm curious as to whether you think PSoC is a good investment for general prototyping.") – terrace Apr 01 '10 at 01:14
  • As for this particular application, I'm making a sensor glove with conductive lycra. I'm planning to do signal processing on the hand, possible before A/D with an XBee. – terrace Apr 01 '10 at 01:26
  • I usually just use a small prototyping board (solder type) and then go to a PCB layout. I am not sure the learning curve on the PSoC. If it is not too steep then try it on a project or two. Any analog design you learn with PSoC should apply to a discrete solution too. It is not difficult to come up with a few preferred parts for a "bag of tricks". A couple of rail-to-rail opamps, an instrument amp, a reference, some precision resistors. – jluciani Apr 01 '10 at 02:03
1

I've had good luck with some of the older PSoCs in certain circumstances. I used it for a serial distribution board since we could load it up with multiple UARTs. I didn't make much use of the analog blocks though.

In general, I didn't like the GUI they had for programming/configuring. My colleagues say it has changed for the better with newer versions, but I haven't tried it.

Another problem I had was that those older PSoCs were SLOW! 24MHz yes, but each operation takes at least 4 clock cycles, probably more, and if you're programming in C you can just forget about any great speed. Yeah, you've got interrupts and all that but you will NOT be able to do any complicated real-time processing or fast serial communication. As before, the newer chips are supposedly faster, but I haven't used them.

If you're seeking precision and accuracy then a PSoC may not be the right choice. If it's just general data acquisition that you're having a hard time doing with another chip without adding multiple

AngryEE
  • 8,669
  • 20
  • 29