How can I read 96 input channels with minimal hardware and noise?

  • Thread starter _Bd_
  • Start date
In summary: This is something you would need to do for each sensor.The EEPROMs are powered by the 5V pin.The sensors are placed as close to each other as possible while still allowing a certain amount of space between them for the wires.The wires are only as long as necessary and are as short as possible to avoid noise.The sensors are very noisy, but the EEPROMs can still be used if they are calibrated.
  • #1
_Bd_
109
0
Hi,
Im working on a project that could potentially do 2 of the following. I am a mechanical Engineer and I don't know much about electrical engineering, bu talking to a friend of mine who is still studying EE, he gave me his input which I felt was not the best option, I hope you guys can help me clear my mind a little on what is the best solution:

What I need is an IC that can read many inputs or somehow, sort through options and only use the ones connected.Option A:
Cycle through 96 inputs, this option would basically read 96 resistances from each sensor position in sequence and output all the data through a single channel 96 times. It will be more time consuming and would not allow for real-time monitoring, however it would allow for all 96 sensors to be used at the same time.Option B:
Real-time limited monitoring: This option would allow to monitor 18 channels (I am limited to mulitples of 9), in this case the IC would go through all 96 channels, locate only those that have a sensor connected to them (if its not an open circuit, then there is a sensor in there), number them in a logical way (so that always the top row leftmost is no.1 and bottom row rightmost is no. 18) and output real-time data in 18 parallel channels.
My question for both options or either option (whichever you think is more convenient) is:
- How would I go about selecting an IC for this? what chip should I use? Arduino? or some other one?
but my main concern is, AFAIK arduinos don't have 96 input channels and 18 output channels, so how would I go about reading all 96 ? As mentioned my friend told me that you would need things that group X amount of positions into clusters, and then once you reduce 96 to say, 8 clusters of 12 then you can use a regular IC with 8 inputs and 1 output or 8 inputs and 18 outputs. (something more reasonable).

I don't know if this is the best option, I was thinking about TV's, their processors control each pixel individually, and I don't think they have an IC with 2084400 inputs and outputs, and I doubt they have clusters, because that number is way too big to be reducing it in a pyramid, plus I believe that would add noise to the signals if you keep clustering them.
So, once again, if TL:DR:

- How to read 96 channels using the least amount of IC components? and with the least amount of noise.

What hardware should I use? How should I set this up in my PCB?
 
Last edited by a moderator:
Engineering news on Phys.org
  • #2
So you are tasked with completing either option A or option B. Real time will be more complicated.

What type of sensors will this interface with?
How fast are the sensors required to be read?
What will the data be used for.

These are all important questions that NEED to be answered when you leave your problem statement that open ended.
If you narrow it down (aka "I need to read 96 sensors that each have to be read at least once per second and the data has to go into memory") then we can advise on hardware.

edit: very important also is digital or analog sensors
 
  • #3
Ok, thank you for the reply.

The sensors are a set of values:

Each sensor has a 5 pin-interface (Only 4 pins used):
Pin 1 and 2 go to a temperature-dependant resistor (so an analog device)
Pin 3,4 go to an EEPROM, that stores the calibration values of the resistor in place (it contains the values of temperature associated with the values of resistance)
So, I don't know if that's considered digital or analog, maybe both?

About the options, the faster we can read all the better, or if real time monitoring is possible, I believe that might work as well, but you say its difficult. so let's go with option A
 
  • #4
_Bd_ said:
Each sensor has a 5 pin-interface (Only 4 pins used):
Pin 1 and 2 go to a temperature-dependant resistor (so an analog device)
Pin 3,4 go to an EEPROM, that stores the calibration values of the resistor in place (it contains the values of temperature associated with the values of resistance)

How is the EEPROM powered? Is power available at each sensor? How far apart are the sensors placed? How long are the wires to the sensors? How (electrically) noisy is the environment? I'm assuming that the EEPROMs are programmed at some calibration time for each sensor?
 
  • #5
What format do you need the data in? If analog readout of the sensors is good enough?

The easiest way to go for sure will be to use a reference resistor and then switch the temperate dependent resistors in series with them one at a time, recording the voltage you get (configure them as a voltage divider).

You might be able to use this part for example: http://www.maximintegrated.com/en/products/analog/analog-switches-multiplexers/DG406.html

You would need 7 of them to read out 96 sensors (96/16 + 1). Then an Arduino would be easy to use to digitze this if you need to.
 
  • #6
And have you considered using something like these digital "1-Wire Serial" temperature sensors?

http://www.maximintegrated.com/en/products/analog/sensors-and-sensor-interface/DS18S20.html
 
  • #7
berkeman said:
How is the EEPROM powered? Is power available at each sensor? How far apart are the sensors placed? How long are the wires to the sensors? How (electrically) noisy is the environment? I'm assuming that the EEPROMs are programmed at some calibration time for each sensor?

Well, the EEPRROM has a single in/out wire, a Vcc and a GND. I am still researching to see if I can share ground with the resistor, if that's the case I will only use 4 pins:

1- GND
2- Resistor
3- Vcc
4- Data In/out

if its not possible I will use all 5 pins:
1 - GND
2 - Resistor 1
3 - Resistor 2
4 - Vcc
5 - Data In/out.

This circuit will be in a PCB, except for the temperature dependant resistors, they will have lead wires of about an inch
About the format of the data, I think analog would be fine. This whole assembly will later be connected to a computer which will log the data and convert resistances to temperatures. However it does need to read the calibration data off each resistor (I assume the data on th EEPROMs is digital, so I don't know if this is some sort of mixed signal or if it can be just boiled down to pure analog).

About the mulitplexers, this was what my friend was talkign about (the clusters things). I just forgot the name on my opening post. I do wonder tho, do TV's have hundreds of mulitplexers? or how does a TV controll all millions of pixels independently?
But yes, mulitplexers are my plan-B in case I can't find any more efficient, less-populated way of wiring the PCB.
 
  • #8
What do you think about my suggestion in Post #6? Seems like a lot cleaner solution is to just use digital temperature sensors and read them all over a single serial bus...
 
  • #9
I don't really understand that link very well, from what I gather its a whole device in itself right?
The thing is that I am trying to make a probe for a meter I already have.
I already have the meter with a very good processor that can measure up to .002 C. the problem however is the actual sensor itself.
While sensors can be just tubular probes, needle probes, surface probes etc. there's a very particular type of probe I am trying here, its like a surface probe, but its very large and has a lot of "positions" in which you can place your actual sensor.
 
  • #10
An off the shelf meter or data acquisition system made by a reputable vendor, like Fluke, Kiethly, or Agilent, is a valid solution. Specialists have worked long hours to overcome scores of problems that your common EE won't be cognizant of. Also, these companies have established the validity of their products performance through long term testing with NIST or an equivalent body.
Chips are only as good as the way they are used, and it is a very rare EE that understands how to design these products.

As to making precision temperature measurements in small / weird spaces, I've had some success with the Minco platinum RTDs. They will not give you anything close to the accuracy of a reference device, but if you access to a metrology group with a precision temperature bath, they can collect two or three data points giving you a temporary tertiary reference (i.e +/-.01C). Generally, it doesn't matter weather you achieve such accuracies because you will measure a weighted average of the measurement point and the environment.
 
  • Like
Likes berkeman

Related to How can I read 96 input channels with minimal hardware and noise?

What is the most efficient way to read lots of inputs?

The most efficient way to read lots of inputs is by using a loop. This allows you to continuously read and process inputs without having to manually write code for each input.

How do I handle different types of inputs?

To handle different types of inputs, you can use conditional statements and data type conversion functions. This allows you to check the type of input and convert it to the appropriate data type for your program.

What is the best practice for error handling when reading inputs?

The best practice for error handling when reading inputs is to use try-catch blocks. This allows you to catch any potential errors and handle them appropriately, rather than having your program crash.

Can I read multiple inputs on the same line?

Yes, you can read multiple inputs on the same line by using the split() function to separate the inputs. This is useful for cases where you have a fixed number of inputs on each line.

How do I avoid reading blank or invalid inputs?

To avoid reading blank or invalid inputs, you can use input validation techniques such as checking for empty strings or using regular expressions to ensure the input matches a certain pattern. You can also prompt the user to re-enter the input if it is not valid.

Similar threads

Replies
3
Views
1K
  • Electrical Engineering
Replies
6
Views
921
Replies
9
Views
2K
Replies
9
Views
2K
  • Electrical Engineering
2
Replies
38
Views
3K
  • Electrical Engineering
Replies
24
Views
4K
  • Electrical Engineering
Replies
16
Views
2K
Replies
13
Views
1K
  • Electrical Engineering
Replies
12
Views
2K
Replies
2
Views
1K
Back
Top