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.
Code:‘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
Bookmarks