Interfaz de un sensor de proximidad inductivo con el Pin RA0 de PIC16F690

6

Tengo 3 sensores de proximidad inductivos con colector abierto NPN-NO:

LossensoresseinterconectanconPIC16F690usandolospinesRA0,RA1yRA2,aquíestáelcircuitoparalospinesRA0,eselmismoparalospinesRA1yRA2:

Cuando el sensor está activado, la resistencia de pull-up de 10 K se conecta a tierra para leer la lógica requerida.

Problema :

Esta interfaz funciona bien para los sensores en Pin RA1 y RA2, sin embargo, cuando uno de los sensores está conectado con el Pin RA0 y cuando enciendo la alimentación, el PIC no se iniciará hasta que presione un botón MCLR externo . Incluso después de eso, si vuelvo a apagar y volver a encender, el problema vuelve a aparecer y no desaparece hasta que hago otro MCLR externo.

Observe que cuando el sensor en el pin RA0 se retira del circuito, todo es normal, el PIC se inicia normalmente, no se necesita un MCLR, y los sensores restantes en el pin RA1 y RA2 funcionan como se esperaba.

Lo que he intentado hasta ahora:

  • Sospeché un problema en mi programa PIC16F690, así que, sustituí el sensor en RA0 con un botón, todo funcionó como se esperaba, además, sospeché un problema en mi circuito de PCB, así que quité todos los sensores y Los cambió con el botón de encendido para encender 3 LED para asegurarse de que todo está bien con el programa y la PCB. No hay problema aquí.

  • Antes de presionar el botón MCLR, para saber si el PIC está parcialmente bloqueado o completamente bloqueado, cambié el programa para encender un LED cuando los sensores en RA0 están activados, así que, me acerqué a una placa metálica desde el sensor preocupado, el LED se enciende y cuando quito la placa metálica del sensor (sensor no activado) el LED permanece encendido.

Parece que el problema es específico solo para el pin RA0 del PIC16F690 y solo cuando se conecta a un sensor de proximidad inductivo, funciona bien cuando se usa un botón pulsador.

Fusibles utilizados en el programa: XT, PUT, NOWDT, NOPROTECT, BROWNOUT, MCLR

XT es un Crystal Quartz de 4Mhz con capacitores de 22pF.

Deshabilité ADC, CCP, SPI y Comparator.

De la hoja de datos del PIC16F690, RA0 puede ser un:

E / S de propósito general, ADC, comparador analógico, señal de datos ICSP, entrada analógica ULPW.

Necesito tu ayuda, por favor.

Gracias

    
pregunta Vander_kw

1 respuesta

1

Me pongo nervioso cuando veo que la lógica de 5 V se mezcla con el suministro de 24 V pero parece que te has escapado sin humo. Juntando tus partes de circuitos, creo que podrías tener esto:

simular este circuito : esquema creado usando CircuitLab

Es posible que la unión de la base del colector esté sesgada hacia adelante y tenga una resistencia a tierra lo suficientemente baja como para bajar RA0 mientras el circuito del controlador del interruptor de proximidad se enciende. Puede probar esto con bastante facilidad desconectando los 24 V, encendiendo y midiendo el voltaje en el cable negro (con el pull-up conectado).

El peligro con tu configuración es que

  1. el interruptor podría tener un pull-up interno que, cuando Q1 está desactivado, llevaría RA0 a +24 V. (No lo hizo, por lo que no lo hace).
  2. Si se desconecta el cable azul, podría haber suficiente fuga de corriente desde los 24 V a través de la electrónica y a través de la unión del colector de la base. Esto llevaría a RA0 por encima de +5 V.

Cualquiera de los escenarios anteriores fumaría su PIC. Mejor usar un opto-aislador. Kimliv preguntó una pregunta sobre el mismo interruptor hace un año. Puede encontrar ayuda allí.

    
respondido por el Transistor

Lea otras preguntas en las etiquetas