Hi Roberto, You MUST use a resistor between RA4 and the base of your transistor... why? just make a little equation: V(RA4) = Ib * Rb + Vbe you have Rb = 0, so you are forcing V(RA4) = Vbe (usually 0.7 V) Better now? I Hope this helps... Regards, Gonzalo ----- Mensaje original ----- De: "RoDelta" Para: Enviado: Jueves 4 de Enero de 2001 12:52 PM Asunto: [PIC]: strange output port. | Hi. | I tryed to use PIC16C621A, RA4 as output, open drain. I put a 10K resistor | to Vcc and the base of a npn transistor in RA4 to drive a relay (relay | conected on colector with diode self induction protection, and emitter to | zero). | When the port come hight imediately drop to zero and sit there. | I saw that, when the output (in RA4)drop to any value | Vdd/2. | I made a test. | The output is high, and I force pin 3 ( RA4 ) with a | jump to zero. The current is limited by 10K resistor to Vdd. When I remove | this jump the output stays in zero ! Note, by the program this output is | high all the time . | The same test in a PIC16F84 this do not happen (no comparator sets!). The | output come to zero with a jump to zero and return to high when remove this | jump. | Anyone knows why this happen ? | I didn't find nothing in data sheet (16C621A) about it. | My sets: | banc1 ;macro to bank 1 | MOVLW b'00000010' ;Place option reg setup into W | MOVWF OPTION_REG ; Set up OPTION register | MOVLW b'00000011' ; RA0 and RA1 as intput RA2,3 and 4 as output | MOVWF TRISA ; | banc0 ;macro to bank 0 | MOVLW b'00000111' ;07h comparator off | MOVWF CMCON | MOVLW B'10100000' ; int only to tmr0 | MOVWF INTCON | VRCON, I left by default. (b'00000000') | | Did I forgot any set? | TIA | Roberto Locks Guimaraes | | -- | http://www.piclist.com hint: The PICList is archived three different | ways. See http://www.piclist.com/#archives for details. | | | -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.