View previous topic :: View next topic |
Author |
Message |
dmurray
Joined: 29 Dec 2005 Posts: 5 Location: Edmonton, AB
|
Protection for Analog Inputs? |
Posted: Thu Dec 29, 2005 8:31 pm |
|
|
I'm working on a project which uses a 16f877 as the controller for a security system. Security systems typically use an end-of-line resistor at the end of each sensor loop. This way, three different loop states can be monitored (normal, open, shorted).
To implement this, I was considering using one 8 bit analog input for each sensor loop. Each state would therefore corresond to a digital value of 0, 128, or 255. But because the loops can sometimes be fairly long (up to 500 ft.), I'm a bit concerned about noise and transients being picked up and either damaging the analog inputs, messing with the conversions, or causing other problems for the PIC.
First of all, are the analog inputs on the PIC fairly robust, or is some sort of external input protection generally recommended? If so, what would be the best protection method? I don't want to add any capacitance, so I was think of using zeners or transorbs. Does anyone have other suggestions? Perhaps opto-isolation?
Thanks for any ideas you can offer. |
|
|
kender
Joined: 09 Aug 2004 Posts: 768 Location: Silicon Valley
|
Re: Protection for Analog Inputs? |
Posted: Thu Dec 29, 2005 8:56 pm |
|
|
dmurray wrote: | First of all, are the analog inputs on the PIC fairly robust, or is some sort of external input protection generally recommended? |
I would recommend clamping diodes to ground and to +5V. Transorbs could also be useful for ESD protection.
Use shielded cable to reduce EMI, or best of all - use shielded differential pair and instrumentation amp. |
|
|
asmallri
Joined: 12 Aug 2004 Posts: 1636 Location: Perth, Australia
|
|
Posted: Thu Dec 29, 2005 9:11 pm |
|
|
Quote: | Use shielded cable to reduce EMI, or best of all - use shielded differential pair and instrumentation amp. |
I would not do this for a commercial product because the cost would be too high.
I would use a the clamping diodes as suggested plus a pullup resistor to VDD (obviously) and a series resistor to the loop. I would also add a capacitor - the reason being they are a cheap for of protection and will help filter the transients plus the scan rate for these types of inputs is so low (10s of milliseconds to 100s of milliseconds) that the effect of the capacitor is insignificant. _________________ Regards, Andrew
http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!!
Last edited by asmallri on Thu Dec 29, 2005 9:23 pm; edited 1 time in total |
|
|
kender
Joined: 09 Aug 2004 Posts: 768 Location: Silicon Valley
|
|
Posted: Thu Dec 29, 2005 9:21 pm |
|
|
asmallri wrote: | Quote: | Use shielded cable to reduce EMI, or best of all - use shielded differential pair and instrumentation amp. |
I would not do this for a commercial product because the cost would be too high. |
OK, then 4-20mA current signalling on a simple twisted pair without shield. If the cuurent goes below 4mA - the circuit is broken. 500ft of a single-ended analog voltage signal without shield just doesn't sound right. |
|
|
asmallri
Joined: 12 Aug 2004 Posts: 1636 Location: Perth, Australia
|
|
Posted: Thu Dec 29, 2005 9:24 pm |
|
|
Quote: | OK, then 4-20mA current signalling on a simple twisted pair without shield. If the cuurent goes below 4mA - the circuit is broken. 500ft of a single-ended analog voltage signal without shield just doesn't sound right. |
We have concensus on the technique. However, my own house alarm has 30 plus zones, each zone having its own loop. Even at 4mA, the loop drain would be too high considering the system must be capable of running from battery in the event of power failure. Ideally the loop currents would want to be 100 times lower. _________________ Regards, Andrew
http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!! |
|
|
kender
Joined: 09 Aug 2004 Posts: 768 Location: Silicon Valley
|
|
Posted: Fri Dec 30, 2005 2:31 am |
|
|
Quote: | However, my own house alarm has 30 plus zones, each zone having its own loop. Even at 4mA, the loop drain would be too high considering the system must be capable of running from battery in the event of power failure. |
4mA * 30 = 120mA. I wonder, what kind of battery does you alarm system have? Even the alcaline AA cells have one the order of 1Ah, don't they? How long does the system have to work without the line power? |
|
|
asmallri
Joined: 12 Aug 2004 Posts: 1636 Location: Perth, Australia
|
|
Posted: Fri Dec 30, 2005 8:54 am |
|
|
Quote: | 4mA * 30 = 120mA. I wonder, what kind of battery does you alarm system have? Even the alcaline AA cells have one the order of 1Ah, don't they? How long does the system have to work without the line power? |
Just becayse you asked - my alarm system is an Ademco unit which is configured with 4 x 12 Volt 3AH batteries. I have 32 loops, plus two alarm extensions, 3 panels panels, alarm relay, auto dialer etc and I expect the alarm system to survive for at least a long weekend (3 days) without power. Why waste 120mA on idle loops when exacty the same supervision could be accomplished with 1 mA? _________________ Regards, Andrew
http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!! |
|
|
dmurray
Joined: 29 Dec 2005 Posts: 5 Location: Edmonton, AB
|
Re: Protection for Analog Inputs? |
Posted: Fri Dec 30, 2005 4:14 pm |
|
|
Thanks for the suggestions guys. I really like the idea of using a current loop. The only problem I see with this is that the 4-20mA (or whatever) current transmitter obviously has to be co-located with the alarm sensor at the "far" end of the loop so that the transmitter can adjust the loop current based on the sensor state.
That means that I have to provide power for the current transmitter either from the panel over a second twisted pair, or from a battery located with the transmitter/sensor.
I'll have to do some research into constant current sources and see what might be involved in doing this. 500 ft of 24 ga. twisted pair has about 25 ohms of DC resistance. At 5mA, that only works out to a voltage drop of 0.125 volts which is certainly workable.
Now, assuming all of the above works, once I have an analog voltage to feed into the PIC, I assume I would just read the values for each analog port in an endless loop. Do I need to wait for the ADIF interrupt before using the value, or can I just insert a delay between each measurement like in the EX_ADMM.C sample program?
Thanks again. |
|
|
asmallri
Joined: 12 Aug 2004 Posts: 1636 Location: Perth, Australia
|
Re: Protection for Analog Inputs? |
Posted: Fri Dec 30, 2005 8:50 pm |
|
|
dmurray wrote: | Thanks for the suggestions guys. I really like the idea of using a current loop. The only problem I see with this is that the 4-20mA (or whatever) current transmitter obviously has to be co-located with the alarm sensor at the "far" end of the loop so that the transmitter can adjust the loop current based on the sensor state. |
No. It does not mean this. Lets assume for argument sake we use a 22K termination resistor at the end of the loop (used to detect open circuit). This connects to the A/D input of the PIC via a 22k series resistor (input protection) and a 22K pull up resistor to VDD. And assume VDD = 5 V.
When the loop is idle the voltage at the PIC with be VDD * (22 + 22)/(22 + 22 + 22) = 3.33 volts. If the loop fails open the voltage at the A/D input will be VDD = 5 volts. If the loop is shorted the voltage at the A/D input = VDD * 22 / (22+22) = 2.5 volts
The resistance of the cable is low low, wrt to series resistance and the loop terminating resistor that it can be ignored. _________________ Regards, Andrew
http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!! |
|
|
dmurray
Joined: 29 Dec 2005 Posts: 5 Location: Edmonton, AB
|
Re: Protection for Analog Inputs? |
Posted: Sat Dec 31, 2005 9:43 pm |
|
|
asmallri wrote: |
No. It does not mean this. Lets assume for argument sake we use a 22K termination resistor at the end of the loop (used to detect open circuit). This connects to the A/D input of the PIC via a 22k series resistor (input protection) and a 22K pull up resistor to VDD. And assume VDD = 5 V.
When the loop is idle the voltage at the PIC with be VDD * (22 + 22)/(22 + 22 + 22) = 3.33 volts. If the loop fails open the voltage at the A/D input will be VDD = 5 volts. If the loop is shorted the voltage at the A/D input = VDD * 22 / (22+22) = 2.5 volts |
But this is just a voltage divider circuit, which means we're back to where we started. It will certainly work, but it will be susceptible to various sorts of noise, RF, and other common mode signals with long runs of UTP.
When "Kender" suggested the current loop concept as an alternative to using single-ended voltage signalling, I thought it was a great idea. Maybe we're talking about two different things, but my understanding of 4-20mA current signalling (as used for instrumentation applications) is that the transmitter is a constant current source which sets the loop current based on the sensor state. By doing it this way, the loop can be miles long without signal loss or noise becoming a problem. Telephone subscriber loops work in much the same way. By modulating the loop current at an audio rate, voice can be carried on unshielded copper for many miles.
I've been looking at some current regulating diodes which might work in this application. Failing that, Texas Instruments also has some nice current loop transmitter ICs.
Thanks again to both of you for your comments and suggestions. |
|
|
Storic
Joined: 03 Dec 2005 Posts: 182 Location: Australia SA
|
|
Posted: Sat Dec 31, 2005 11:13 pm |
|
|
Hi
Why not when reading the input, allow a +/-10% error of the required value. this will allow for any drift due to cable lenght, heat etc; Also write your code to respond say 3 to 5 reads (to allow for power spike induced onto the cable). if all reads are within the same value a required responce will then be activated
ANdrew _________________ What has been learnt if you make the same mistake? |
|
|
asmallri
Joined: 12 Aug 2004 Posts: 1636 Location: Perth, Australia
|
Re: Protection for Analog Inputs? |
Posted: Sun Jan 01, 2006 12:14 am |
|
|
dmurray wrote: | But this is just a voltage divider circuit, which means we're back to where we started. It will certainly work, but it will be susceptible to various sorts of noise, RF, and other common mode signals with long runs of UTP. |
Yes it is a voltage divider. Hence the capacitor as a filter - more than enough to meet the original requirement for a security system.
Quote: | Telephone subscriber loops work in much the same way. By modulating the loop current at an audio rate, voice can be carried on unshielded copper for many miles. |
I spent several years as an equipment designer in the network design group for a large Telephone company designing such equipment. The voice signal is differentially superimposed as an ac voltage on the loop. _________________ Regards, Andrew
http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!! |
|
|
dmurray
Joined: 29 Dec 2005 Posts: 5 Location: Edmonton, AB
|
|
Posted: Sun Jan 01, 2006 12:17 am |
|
|
Storic wrote: |
Why not when reading the input, allow a +/-10% error of the required value. this will allow for any drift due to cable lenght, heat etc; Also write your code to respond say 3 to 5 reads (to allow for power spike induced onto the cable). if all reads are within the same value a required responce will then be activated
ANdrew |
Yes that's a good idea. Basically the analog equivalent of debouncing a switch. I was thinking of using ReadADC() in an endless loop in my main() function to poll the connected analog inputs. In the ADIF interrupt handler, I'll start a timer (perhaps 200ms). When it overflows, I'll check the value again. If it's within 5-10% of the first reading then it should be a valid sensor state change. I haven't worked with analog inputs on the PIC before so my theories may not work at all, but you have to start somewhere. Thanks for your suggestions. |
|
|
dmurray
Joined: 29 Dec 2005 Posts: 5 Location: Edmonton, AB
|
Re: Protection for Analog Inputs? |
Posted: Sun Jan 01, 2006 12:45 pm |
|
|
asmallri wrote: |
I spent several years as an equipment designer in the network design group for a large Telephone company designing such equipment. The voice signal is differentially superimposed as an ac voltage on the loop. |
Er.. no, although that is a common misconception. Only the ringing signal which consists of a 90-120VAC 20Hz sinewave is superimposed on the DC talk battery. The original phone design actually used a carbon granule microphone wired in series with the subscriber loop. When the user spoke into it, the resistance of the microphone changed at an audio rate which served to modulate the loop current at the same rate. At the CO end, the audio was recovered using an ingenious split winding transformer arrangement.
While phones haven't used carbon microphones since the seventies, the electret mic/transistor arrangement that replaced it does exactly the same thing. What is truly amazing is how little modern phone designs have changed over the last hundred years. While semiconductors and computer technology have improved performance and reliability at both ends, the basic design of the 2 wire copper subscriber loop remains functionally the same. A testament to the genius of the original designers.
Happy New Year. |
|
|
|