GraemeJ
- 4th December 2010, 09:57
I have a programme running correctly but the input pins seem to be of low impedance, rather than the high impedance expected.
Each input current is about 4 mA. The chip is a Pic 16F84 with port A not used and pulled low thru 10 K resistors. Input and output is on port B. Input pins are pulled high with 10K. Under test on the bench a power supply is used to connect to the pin and simulate high and low inputs, and the 4 mA is then measured. However, when used in the application, the signal is from a data acquisition system which can only supply 2.5 mA max.
I am not able to understand why, from the code attached, a pin seems to work correctly as an input but is not of high-impedance.
Any help would be much appreciated.
Regards,
GraemeJ.
‘pump driver.
‘Pic 16F84
DEFINE OSC 4
‘----------[constants and variables]------------
pump VAR PORTB.0 ‘switch pump on/off
info VAR PORTB.1 ‘data being collected
nsamp VAR PORTB.2 ‘new sample required
autotrig VAR PORTB.3 ‘trigger autosampler
relay VAR PORTB.5 ‘pump relay
sampler VAR PORTB.6 ‘goto autosampler position
led VAR PORTB.7 ‘switch on led
‘----------[initialisation]------------------------
PORTB = %00000000 ‘all variable values = 0
Pause 10
TRISB = %11110000 ‘B.0 B.3 inputs, rest outputs.
Pause 10
‘----------[Main]--------------------------------
begin : if pump = 0 then pumpoff ‘hold pump off
High relay ‘else switch it on
Pause 5
datasw : if info = 0 then sampsw ‘if no data flash led
High led ‘else keep led on
Pause 5
Goto begin
Sampsw : if nsamp = 0 then ledoff ‘flash led
Pause 800
High led
Pause 800
Low led
Pause 5
Goto begin
Pumpoff : Low relay ‘keep pump off
Pause 5
Goto datasw
Ledoff : Low led
Pause 5
Goto begin
End
Each input current is about 4 mA. The chip is a Pic 16F84 with port A not used and pulled low thru 10 K resistors. Input and output is on port B. Input pins are pulled high with 10K. Under test on the bench a power supply is used to connect to the pin and simulate high and low inputs, and the 4 mA is then measured. However, when used in the application, the signal is from a data acquisition system which can only supply 2.5 mA max.
I am not able to understand why, from the code attached, a pin seems to work correctly as an input but is not of high-impedance.
Any help would be much appreciated.
Regards,
GraemeJ.
‘pump driver.
‘Pic 16F84
DEFINE OSC 4
‘----------[constants and variables]------------
pump VAR PORTB.0 ‘switch pump on/off
info VAR PORTB.1 ‘data being collected
nsamp VAR PORTB.2 ‘new sample required
autotrig VAR PORTB.3 ‘trigger autosampler
relay VAR PORTB.5 ‘pump relay
sampler VAR PORTB.6 ‘goto autosampler position
led VAR PORTB.7 ‘switch on led
‘----------[initialisation]------------------------
PORTB = %00000000 ‘all variable values = 0
Pause 10
TRISB = %11110000 ‘B.0 B.3 inputs, rest outputs.
Pause 10
‘----------[Main]--------------------------------
begin : if pump = 0 then pumpoff ‘hold pump off
High relay ‘else switch it on
Pause 5
datasw : if info = 0 then sampsw ‘if no data flash led
High led ‘else keep led on
Pause 5
Goto begin
Sampsw : if nsamp = 0 then ledoff ‘flash led
Pause 800
High led
Pause 800
Low led
Pause 5
Goto begin
Pumpoff : Low relay ‘keep pump off
Pause 5
Goto datasw
Ledoff : Low led
Pause 5
Goto begin
End