New user in this world - a lot of analog inputs

Hi.
I am new user in microprocessors world. I had some idea to do a large project for several years. I know assembly, but my project is to big for this. I don’t know c++, but i know c# very well. So when i discovered Micro framework, my old ideas came to life again.

For my project i would need a lot of analog inputs, let’s say 40 for sure, and touch screen. Spider mainboard seems to do the job.
My questions is what i need to get all this analog inputs working with mainboard?
It seems that IO60P16(http://www.ghielectronics.com/catalog/product/363) module would be a perfect start. Then i need to by some AD converters and make my own module (or something like that) where can i connect all those sensors.
Does [quote]will add 60 inputs/outputs with interrupt capability[/quote] means, that interrupt will happened, when value will change on 1 pin, assuming that all pins are inputs?

That is what it means, but I have never worked with that module, so I can’t confirm.

But for the analog part, it might be easier to use analog multiplexers. You get up to 16 channel multiplexers. That means that you can select one of 16 sensors to measure. One analog socket on the Spider has three analog inputs. So if you use three multiplexers then you can measure three sensors at a time and select from 48 sensors…

For instance, look at:

1 Like

If others can also use 48 analog inputs then I can add a module to my store…

@ GMod(Errol) -

The EMX module’s chip only has one ADC and uses a multiplexor, so only one measurement at a time can occur.

Yes, but you as a user does not have to change anything when measuring a different channel. To the user it looks like three channels. But external multiplexers adds an extra load on the user to switch to the correct channel on the MUX AND then to convert the correct spider channel…

BTW, the Cerberus had three ADC converters, but we STILL can do only one conversion at a time… :slight_smile:

Is that a limitation of NETMF or of the chip or just nature of time slicing a CPU does to do multithreading?

Nobody has had any need for it I guess…

If you use the hardware completely on the Cerberus then you can do 3 conversions at once, at 2.4 million conversions per second, or you can chain the three ADCs together to convert one channel at 7.2 million conversions per second.

Of course you will anyway need RLP to take advantage of this… :slight_smile:

[quote=“Makla”]It seems that IO60P16(http://www.ghielectronics.com/catalog/product/363) module would be a perfect start. Then i need to by some AD converters and make my own module (or something like that) where can i connect all those sensors.
Does [quote]will add 60 inputs/outputs with interrupt capability[/quote] means, that interrupt will happened, when value will change on 1 pin, assuming that all pins are inputs?
[/quote]

Yes…BUT… Be sure you understand that IO60P16 IOs are only digital. This means you get a “on” (> 2V) or “off” (0V) and an interrupt to tell you when it changes state. There are no degrees of “on”. So, if you’re expecting to be able to read a range of analog values as most analog sensors provide then this module combined with an A/D converter would not work for you.

Yea that IO60 is pure digital. You would need analog multiplexing ([url]https://www.sparkfun.com/products/299[/url]). So with that chip if you have 3 Analog inputs (and 3 chips) then you can sample 48 Analog signals via multiplexing.

1 Like

Community plug:

8 analog inputs on a single A socket:

http://www.soldermonkey.net/shop/index.php?route=product/product&path=59_65&product_id=59

1 Like

Or you can go nuts and hook up as many of these guys as you want ([url]https://www.sparkfun.com/products/8636[/url]) 3 of these will give any Fez 6 10 Bit Analog in in exchange for 6 IO lines (SPI + Chip Select)

1 Like

I looked at SolderMonkey’s module, but Makai needs 40 channels, and no mainboard has 5 “A” sockets…

Thank you all for this. It was really helpful.
Solder monkey seems really great and exactly what i need, just to small. I think i will go with IO60P16 and own module and https://www.sparkfun.com/products/299 with some 16-bit ADC.
That means that i need 16 digital bits for ADC + 4 bits for controlling the multiplexer. That means 20 bit for 1 system. I can connect 3 system, which means 48 analog inputs.

My worry is just how to write drivers. I set 4 controlling bits, but how will i know, that multiplexer has changed and AD convert the signal, so i can read the new value? Did someone did anything like this?