Problema de voltaje de salida de entrada en el kit de inicio PIC32 y la placa de expansión IO

tengo un PIC32 Ethernet Starter kity IO expansion board. Hice un programa de entrada y salida simple en el que si PINC2es alto, entonces haga PINC1alto, de lo contrario, bajo. Tengo un circuito que me da un voltaje de salida de 3.3v y estoy aplicando este voltaje como entrada a PINC2. Pero hay un problema de voltaje en PINC1.

Cuando PINC2es bajo, voltaje a PINC1= 3.276v

Cuando PINC2es alto, voltaje a PINC1= 2.8-2.9

Mi pregunta es cuando el voltaje PINC2es bajo, por qué el voltaje PINC1es 3.276v, debería ser 0 voltios. y cuando el voltaje PINC2es alto, por qué el voltaje PINC1es 2.8-2.9v, debería ser 3.276v. Estoy realmente confundido en esto. Por favor ayuda

CÓDIGO:

int main() 
{

   TRISCbits.TRISC1=0; //output
   TRISCbits.TRISC2=1; //input
   while(1)
   {

       if(PORTCbits.RC2==1) 
       {

          PORTCbits.RC1=1; 
       }
       else if(PORTCbits.RC2==0)
       {

          PORTCbits.RC1=0; 
       }
   }
}

Enlace al circuito que da salida de 3.3v

¿Cuál es el voltaje real medido en PINC2 cuando es alto y bajo? ¿Existen otras conexiones a PINC2 además de la salida del optoacoplador? ¿Alguna otra conexión con PINC1 (pull-up/pull-down/otro circuito)? ¿El circuito funciona sin opto? (¿Conduciendo PINC2 desde un suministro de 3 .3 V directamente?) Por último, ¿puede verificar de forma independiente si realmente está conduciendo el PINC1 alto y bajo? Intente cambiarlo directamente en el código.
1) voltaje real medido en PINC2 a bajo = 0.75 y cómo puedo medirlo a alto porque estoy aplicando 3.3v de acopladores. 2)sin conexiones en PINC2. 3) no hay conexiones en PINC1, pero no sé acerca de pull down/high ya que es una placa de expansión IO. Cuando no hay nada, es 3.276v, así que tal vez sea pull up. 4)sí funciona sin optoacoplador, hice un programa de interruptor y led y funciona. 5) sí, está funcionando
aísle el PinC2 y mida los niveles de voltaje de salida alto y bajo usando un DMM. Además, publique los valores altos y bajos cuando conecte PinC2 a opto.

Respuestas (1)

Además de su configuración TRISC, es posible que deba borrar el registro ANSC. Esto configura el puerto en modo didital y deshabilita las funciones analógicas del pin. No mencionó el modelo PIC exacto, por lo que no puedo verificar la funcionalidad exacta de RC1. Me encontré con esto una vez cuando configuré un pin como entrada UART, pero la entrada nunca leyó el Rx digital porque estaba configurado como un pin analógico. Además, verificaría todas las demás funciones de RC2 y configuraría todas esas funciones como deshabilitadas (por ejemplo, ADC).