viernes, 21 de marzo de 2014

Probador de semiconductores con el microcontrolador PIC18f2550 (Parte I)



El actual proyecto que abordaremos, no puede faltar en la mesa de trabajo de un técnico, profesionista o aficionado a la electrónica. Se trata de un probador automático de semiconductores que nos facilitara el análisis para conocer si un semiconductor (por ejemplo un transistor) se encuentra en buenas condiciones, además nos ahorrara tiempo valioso al no tener que averiguar las principales características de algún transistor desconocido ya sea en internet o utilizando un método practico; pues como bien sabemos resulta molesto tener que llevar a cabo aquel proceso constantemente.

La idea surgió ya desde hace algún tiempo pero no fue hasta que encontré en la red el “ESR Meter / Transistor Tester” (siguiente figura) que me inspiro a construir un instrumento mejorado, pese a que esta versión ya cuenta con  muchas funciones. 


Figura 1 ESR Meter / Transistor Tester de Electronics-DIY.com


Tras analizar el diagrama y comprender el funcionamiento comenzamos a realizar el código desde cero para el microcontrolador PIC18F2550, pero después de lograr reconocer transistores bipolares, resistencias, diodos y capacitores nos dimos cuenta que nos llevaría mucho tiempo lograr alcanzar nuestro objetivo ya que es necesario programar muchas condiciones para la correcta detección del dispositivo bajo prueba. Así que investigando un poco más para facilitar la detección del semiconductor y realizar el instrumento lo más pronto posible localizamos la página del autor (en Alemán) en donde hay mucha información acerca del tema y por supuesto el código en lenguaje C del microcontrolador AVR. Al parecer el proyecto original surgió de una revista de Elektor llamada “SC Analyser2005”. También nos sorprendimos al darnos cuenta de que las nuevas versiones del instrumento ya contaba con más funciones, tales como medición de inductancias y frecuencia, aun así el objetivo es lograr reproducir el instrumento con el microcontrolador PIC18F2550 empleando parte del algoritmo del autor Karl-Heinz Kübbeler y agregando más funciones (pasar algunas del Mega-tool). Aunque ciertas partes del código en C para AVR no son compatibles con el lenguaje del compilador CCS, no será mucho problema adaptarlo para que logre la misma función. Sin duda nos ahorra mucho tiempo el trabajar con un código preexisten.

Por el momento el circuito que utilizamos para realizar las pruebas se presenta en la figura 2, en el cual se han seleccionado cuidadosamente los pines que se utilizaran para las pruebas de reconocimiento del semiconductor y también para nuevas funciones. Como se darán cuenta no se está usando un LCD para mostrar los resultados, en cambio se optó por utilizar el puerto serie (configurado a 115200 baudios) para desplegar los datos en la PC (terminal serie del compilador CCS)  y también se utiliza el bootloader serial así es más cómodo realizar las pruebas. Posteriormente con forme avancemos en el proyecto se ira modificando el esquema para acomodar el LCD y los botones que sean necesarios, mientras tanto el botón 1 se encarga de comenzar la prueba de identificación de componente y el botón 2 es para activar el bootloader si se presiona durante la conexión de la fuente de alimentación.

La técnica de identificación consiste en seguir una serie de pruebas con 6 combinaciones posibles de estados lógicos (tierra positiva o flotante) en las terminales de salida. Una combinación comienza estableciendo una terminal de entrega un nivel alto (RA0, RA1 o RA2), otra un nivel bajo con la resistencia de 680 Ω (RC0, RC1 o RC2) y la última terminal se pone a nivel flotante (RB2, RB3 o RB4). A partir de esta configuración comienzan la prueba para identificar el componente desconocido, donde cada pin puede estar en nivel alto, bajo o flotante. Cabe señalar que aunque cada terminal se forma con tres pines del microcontrolador de ningún modo pueden tener niveles de tensión contrarios, es decir, que un pin se encuentre en estado alto y otro en bajo.

Figura 2 Esquema del probador de semiconductores con PIC18f2550.

Antes de mostrar los resultados logrados con el código traducido de C para micros AVR a C de CCS, es recomendable hablar de los métodos que se emplean para la detección de los diferentes tipos de semiconductores; los cuales ya se han traducido al lenguaje C de CCS. No pretendo llenar esta entrada con los métodos detallados que se utilizan pues estos se encuentran en la página del autor de la versión del SC-Tester en que nos basaremos, simplemente será un resumen que nos permitirá comprender rápidamente el funcionamiento. ¡Comenzemos!



Procedimiento de prueba de transistores bipolares y transistores MOSFET de acumulación.

Con este mismo examen se pueden diferenciar transistores bipolares y MOSFET de acumulación (también conocidos como MOSFET de enriquecimiento) debido a que presentan similitudes, respecto a la tensión en la resistencia de carga, cuando se activar la base y puerta de los respectivos transistores.
Para poder realizar esta prueba es necesario que se cumpla la condición V1 < 1.0 volt con resistencia infinita, es decir, entrada flotante en la base o puerta. V1 se puede identificar en la figura 3 como la tensión en la resistencia R1.

Identificación de transistores bipolares PNP y  MOSFET canal P
El primer paso consiste de colocar la llave (puerta o base) del transistor a nivel bajo a través de la resistencia R2 (680 Ω) de la figura 3. Entonces si V1 >  3.4 volts; se trata de un transistor PNP o un MOSFET-P, para diferenciarlos ahora la llave se pone a tierra por medio de R3 (470 kΩ) y si V2 > 1.0 volts es un transistor PNP de lo contrario es un MOSFET-P.

Figura 3 Configuración para la prueba de transistor bipolar PNP y MOSFET-P.

 Si el dispositivo se ha identificado como un transistor PNP, esta prueba se repite con el colector y emisor intercambiados. Posteriormente se comparan los resultados obtenidos en V1 para identificar el patillaje, pues con una conexión invertida la ganancia es bastante menor. La ganancia (hFE o B) es: (V1/R1) / (V2/R3). Y Uf es: 5 – V2.
Por otra parte, si se ha identificado un MOSFET-P se realiza una prueba más para confirmar que se trata de dicho tipo de transistor, la cual consiste de poner la supuesta puerta a alta impedancia (flotante)  y si V1 < 0.1 volts, efectivamente, es un MOSFET-P.
El siguiente paso es calcular la tensión de umbral (Vt); para ello se coloca brevemente la puerta a nivel alto con la resistencia de 680 Ω, posteriormente la puerta se posiciona a nivel bajo solo con la resistencia de 470 kΩ y se espera hasta que en V1 presente un nivel lógico de 1, al suceder inmediatamente se registra el valor en V2, después restando V2 de 5 se consigue Vt. En el caso de un MOSFET, solo baste una prueba para conocer el patillaje correcto.

Identificación de transistores bipolares NPN y  MOSFET canal N
El proceso es similar al anterior, solo cambian el valor de las condiciones. Por lo tanto el algoritmo es el siguiente.
Con R2 de la figura 4 a positivo, si se cumple V1 < 2.4 volts entonces: es un transistor NPN o MOSFET-N.
Para diferenciarlos ahora la llave del transistor se conecta a positivo por medio de R3, si V2 < 2.4 volts se trata de un transistor NPN, si la condición no se cumple tenemos un MOSFET-N.
El siguiente paso para el transistor NPN es el mismo que en el caso anterior pero ahora la ganancia es: ((5-V1)/R1) / ((5-V2)/R3). Y Uf es: V2.
Para esta situación, también se realiza la misma prueba para confirmar que se trata de un MOSFET-N de acumulación. En cuanto a la obtención de la tensión de umbral solo se invierte la lógica aplicada del procedimiento anterior, resultando Vt igual al valor obtenido en V2.

Figura 4 Configuración para la prueba de transistor bipolar NPN y MOSFET-N.


Procedimiento de prueba de transistores JFET y  transistores MOSFET de deplexión.

Los dos tipos de transistores presentas ciertas similitudes, en consecuencia es conveniente realizar la misma prueba para ambos.
En este caso, para realizar la prueba de identificación de transistores JFET y MOSFET  de deplexión (también conocidos como MOSFET de empobrecimiento) debe existir una mínima continuidad entre el drenador y la fuente con la configuración 1 de la figura 5, por supuesto con entrada flotante en la puerta. Es decir, tiene que ser positiva la condición: V1 > 92 mV

Identificación de transistores bipolares JFET canal N y  MOSFET de deplexión canal N
Ya que se cumplió la condición anterior el siguiente paso radica en conectar a tierra la sospechada puerta, con la configuración 1 (figura 5) y almacenar el valor de V1 en V1[0] -por ejemplo-, a continuación la puerta se coloca a positivo y nuevamente se almacena el valor de V1 en V1[1]. Ahora si la relación V1[1] > V1[0] es cierta, entonces se trata de un MOSFET de empobrecimiento o JFET canal N.
Para diferenciarlos se registra la tensión en la puerta con la configuración 2 de la figura 5. En el caso que V2 > 3.9 volts se trata de un MOSFET-N de empobrecimiento de lo contrario es un JFET-N.


Figura 5 Configuración para la prueba de JFET-N y MOSFET-N de deplexión.

Identificación de transistores bipolares JFET canal P y  MOSFET de deplexión canal P
El procedimiento es casi idéntico, diferenciándose por el arreglo mostrado en la figura 6 y la lógica invertida, ya que ahora la puerta se coloca a positivo a través de la 470 kΩ y se almacenar el valor de V1 en V1[0] a continuación la puerta se coloca a tierra almacenándose el valor de V1 en V1[1]. Ahora si V1[0] > V1[1] se cumple, entonces se trata de un MOSFET o JFET canal N.
Para distinguirlos se mide la tensión en la puerta con la configuración 2 de la figura 6. En el caso que V2 < 1 volts se trata de un MOSFET-P de empobrecimiento de lo contrario es un JFET-P.

Figura 6 Configuración para la prueba de JFET-P y MOSFET-P de deplexión.



Procedimiento de prueba de tiristores

Con esta prueba se identifica un triac de un SCR. Al igual que en la prueba de identificación de  transistores NPN y MOSFET-N, también debe de satisfacerse la condición V1 < 2.4, con la configuración 1 de la figura 7, para iniciar el examen.
Si se cumple el requisito anterior el pin que se sospecha que es la puerta se manda a tierra y casi inmediatamente de desconecta para permanecer flotante, a su vez se registra la tensión en V1-1. Lo siguiente es conectar el probable A2 (ánodo 2) a tierra por un corto periodo para luego regresarlo a nivel alto y leer el valor en V1-2. Y sí; V1-1<2.4 volt  y  V1-2>4.4 volt se confirma la presencia de un SCR o triac.
La identificación del semiconductor involucra 4 pruebas más considerando la configuración 2 en la figura 7.
La primera se realiza tal cual la configuración 2, si V1> 0.2 volts es un SCR (ya no es necesario las siguientes pruebas).
Para la segunda prueba la posible puerta se conecta a tierra, si se trata de un SCR este no debe de conducir, por lo que debe de cumplirse las siguientes relaciones: V1<0.7 y V2<1 (ya no es necesario las siguientes pruebas).
En la tercer prueba la puerta se pone en estado flotante y si V1<0.7 es un SCR (ya no es necesario las siguientes pruebas).
Por ultimo si ninguna condición se ha cumplido al posible A2 se conecta a positivo brevemente y se regresa a tierra. Si V1 > 0.2 el dispositivo es un SCR de lo contrario es un triac.
Si bien el método empleado es correcto, debido a que la máxima corriente que se puede suministrar a la puerta de 7.3 mA (con resistencia de 680 Ω ), esta puede ser insuficiente para activar el tiristor, en consecuencia el instrumento no podrá detectar tiristores cuya corriente de disparo sea superior.

Figura 7 Configuración para la prueba de tiristores.




Procedimiento de prueba de diodos y resistencias

Estas pruebas se realizan al final del algoritmo. En el caso de los diodos el método es relativamente sencillo ya que si se presenta una caída de tensión de entre 0.15 y 4.64 con el arreglo de la figura 8 y si aún no se ha encontrado algún elemento es muy posible que se trate de un diodo. Cuando existen 2 o más diodos los resultados se almacenan en arreglos para posteriormente mostrar los resultados ordenadamente.
La medición de resistencias se realiza por dos divisores de tensión con 680 Ω y 470 kΩ, los valores resultantes se comparan respecto a 2.5 volts, el que se encuentre más cerca será el que se utilizara para obtener el valor más preciso posible de la resistencia desconocida. Debido a que puede haber falsas detecciones con la presencia de un diodo el procedimiento se repite con la polaridad invertida del componente si los resultados son bastante parecidos es bastante probable que sea una resistencia.

Figura 8 Configuración para la prueba de diodos y resistencias.




Resultado conseguidos hasta el momento

Debido a  que por el momento no contamos con tiristores, JFET y MOSFET de empobrecimiento no hemos podido realizar las respectivas pruebas con estos elementos, sin embargo el código actual en CCS ya puede identificarlos. A continuación los resultados de varias pruebas a transistores y resistencias.

BC548:
NPN B=2 C=1 E=3 hFE=266 Uf=888 mV
BC549:
NPN B=2 C=1 E=3 hFE=241 Uf=824 mV
BC547:
NPN B=2 C=1 E=3 hFE=534 Uf=814 mV
TIP41C:
NPN B=1 C=2 E=3 hFE=37 Uf=721 mV
B857:
PNP B=1 C=2 E=3 hFE=191 Uf=682 mV
STC733:
PNP B=3 C=2 E=1 hFE=318 Uf=839 mV
IRF9610:
P-E-MOS C= GDS=123 D Vt=3690 mV
IRF730A:
N-E-MOS C= GDS=123 D Vt=3508 mV
FDS6961A:
N-E-MOS C= GDS=321 D Vt=1897 mV
SBL2040CT:
Diodos: 1->|-2-|<-3
Uf=191 mV 191 mV
LED ROJO:
Diodo: 2-|<-3                                                                                                                                     
Uf=1821 mV 
1N4148:
Diodo: 2-|<-3                                                                                                                                       
Uf=726 mV
R-98.8Ω:
Res: 3-1 R=100 ohm
R-9.83KΩ:
Res: 2-1 R=1001 ohm
R-9.88KΩ:
Res: 3-2 R=9802 ohm
R-99.7KΩ:
Res: 3-1 R=99.5 kohm
R-978KΩ:
Res: 3-1 R=905.9 kohm

Como se habrán percatado aun no aparece el valor de la capacitancia de la puerta de los MOSFET, pues aún no se ha realizado el código para leer capacitancia debido a que el método empleado en el código original no es compatible con las características del micro controlador PIC18F2550 , por lo tanto el código lo realizaremos por nuestra cuenta.
Para terminar esta entrada, dejo a su disposición el código original en C para AVR y el código C de CCS que he traducido además del archivo SC-TEST.hex para programar directamente el micro, que incluye el Bootloader serie para CCS. Cabe mencionar que solo se ha ocupado el 42 % de la memoria del PIC18F2550 a pesar de no ser cuidadoso en el gasto de la memoria.  Lo anterior es buena señal, pues así podremos incorporar más funciones al instrumento. En la próxima entrada, si todo va bien, espero reportar los resultados del código para leer capacitancia e inductancia.


DESCARGAS:









15 comentarios:

  1. Very interesting project . Can wait to see updates ( LCD and other missing stuff from AVR project ) .

    ResponderEliminar
  2. Where can I find bootloader.h and fuses.h ? Thanks !

    ResponderEliminar
  3. podrías tener como en otros proyectos el esquemático en proteus?

    ResponderEliminar
  4. Lamento el retraso…

    Subo el proyecto completo en los anteriores link. Tanto el esquema en Proteus como los archivos necesarios para compilar el código desde CCS.

    ResponderEliminar
  5. Hola buenas tardes.
    Con este probador se puede medir la esr de cualquier condensador en circuito, gracias.

    ResponderEliminar
    Respuestas
    1. Efectivamente se puede medir la ESR de capacitores mayores a 1 uF.

      Eliminar
  6. hola carlos, quisiera saber si tienen en venta y cual es el costo. vivo en costa rica. keilor

    ResponderEliminar
    Respuestas
    1. Lamento decidirte que no vendo estos instrumentos solamente los comparto, pero he visto en paginas que venden la versión original por alrededor de 50 dolares.

      Eliminar
  7. Todos los pines de 680R y 470k son digitales? solo los pines a0 a1 y a2 que no lleval resistencia son analogicos y comparador?

    ResponderEliminar
    Respuestas
    1. Correcto, pero también se utilizan a0, a1,y a2 como digitales.

      Eliminar
  8. Hola Carlos,podrías si no es molestias y tienes tiempo pasarme el código del LCD es que estoy empezando en este mundillo y todavía no sé programarlo muy bien que digamos, sólo sé programar muy pocas cosas, algunos ejemplos sacados de internet. Un saludo y muchas gracias por compartir.

    ResponderEliminar
    Respuestas
    1. Que tal Juan Miguel G.P. puedes descargar todo el código del proyecto, incluida la librería del LCD, en la parte 2 de esta publicación. Por cierto , te doy la bienvenida a este fascinante mundo de la electrónica, en mi caso comencé a programar usando el programa Pic Simulator IDE, con un tutorial de la pagina www.ucontrol.ar, el cual te lo recomiendo.

      Eliminar
  9. saludos carlos, estoy armando este proyecto con un pcb construido por el amigo jorgefv, pero hay unos valores de diodos y resistencias q no logro identificar en el o los esquematicos, podras ayudarme? gracias

    ResponderEliminar
    Respuestas
    1. Buen día CESAR G, con mucho gusto te ayudo, siempre y cuando el compañero Jorge FV, este de acuerdo en enviarme su diseño.

      Eliminar
    2. OK. Gracias. otra cosa carlos, descague el mutitester automatic en pdf, pero cuando intento abrirlo el sistema me dice que no lo puede abrir que el archivo puede estar dañado, lo otro es que parece que el formato es DNS, tendras a la mano el programa que me permita abrir este formato dns, gracias nuevamente

      Eliminar