TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: bluesboy en 27 de Noviembre de 2013, 14:44:55
-
Buenas gente, los molesto porque me estoy quemando la cabeza y la cosa no va. :5]
Tengo un 16f627A, configuré RA4 como salida.
Esa salida va conectada a una resistencia de 1K, aunque he probado de 330 a 10k, solo por probar. Decía, una r de 1k como pull up, o sea, de RA4 a la R y el otro extremo de la misma a 5V.
De la union de RA4 y la R, tengo la base de un transistor BC337 cuya finalidad es la de comandar un rele.
Lo que sucede es lo siguiente, si no conecto el Transistor, cuando le mando un 1 a RA4, tengo la tensión de fuente (poquito menos porla caida en la R) en RA4. Pero... si le conecto el transistor, ni bien le doy un uno, veo en el tester que intenta subir y se queda en cero lógico en el acto (unos 0,4V aprox)
He probado de desconectar el transistor, conseguir el uno lógico y luego mediante un puente conectar la base del mismo, y tengo el mismo resultado.
En resumen, si no le conecto nada, esta todo bien, si le conecto cualquier cosa, un led, un transistor, se pone a cero.
¿alguna idea?
¿Que se me escapa? Lo he probado con el pic simulator y va genial.
Bueno, espero sus comentarios.
Gracias.
-
¿Cómo tienes conectado el transistor? Si es posible pon un esquema.
Si tienes el emisor a GND y si el transistor está saturado -es decir que está conduciendo- en la base deberías tener entre 0.6V y 0.7V ya que estarías midiendo la caída de tensión entre base y emisor.
-
tuviste en cuenta que RA4 es Open Collector?... no hay 5v alli....
(http://upload.wikimedia.org/wikipedia/commons/a/a6/Open_Collector_Pull_Up.png)
-
Buenas, les adjunto un esquema, puse una and en lugar del pic, pero solo porque use un programa que no tiene el pic para dibujar, tomenlo como ssalida de RA4
Ale Sergi, si, open colector, por eso la r de 1k. gracias.
ahi va el esquema.
Gracias.
-
Hola, donde estas midiendo con el tester? si estas midiendo entre la base del transistor y masa, no esta mal la medida, como te dijo AngelGris, estas midiendo la caída de tensión entre base y emisor. Verifica que entre el colector y fuente haya aproximadamente la tensión de fuente.
Saludos.
-
Buenas gente.
No logro tener un 1 en la salida, con o sin transistor. Lo del pull up lo tengo claro.
El transistor no conduce.
Ni la tensión colector emisor se parece a la fuente, ni la tensión base emisor se parece al minimo necesario para que conduzca.
Por ende, no se activa el relé.
He sacado el transistor y probado con un led, muerto, todo muerto.
El resto de las funcione del puerto funcionan bien.
Estuve leyendo la hoja de datos, sé que el port A maneja menos correinte que el b, que es disitinto si esta conectado en modo fuente o sumidero (si la corriente va hacia positivo o hacia negativo)
Ese puerto está multiplexando unos display 7 seg, estuve leyendo que las operaciones de BSF y BSC se pueden ver afectadas, (est info está en la parte de puertos, en notas de programacion del 16F62X) Y no logro solucionar.
No me cabe cambiar de micro por una pata.
Bueno, si alguien se le ocurre alguna solucion, agradecido.
Lo raro es que en el pic simulator funca de diez.
Incluso cambie el chip por otro igual, iluso de mi.
Sigo investigando, si lo saco aviso.
Gracias por su ayuda.
-
Hola,
si miramos el RA4 de ese uC, vemos que dice:
RA4/T0CKI/CMP2:
RA4 ST OD Bidirectional I/O port
T0CKI ST — Timer0 clock input
CMP2 — OD Comparator 2 output
Como se puede apreciar, tiene 3 funciones asignables. como pin digital IO (Open Drain), como entrada de pulsos para el Timer0, y como salida del comparador 2.
Cuando uno configura como salida el pin (mediante el registro TRISA), sólo restan 2 funciones que podrían estar activas: la primera (que es la que te interesa utilizar) y la tercera.
Entonces, no sé en qué lenguaje de programación estás trabajando, pero lo que hay que lograr para que RA3 y RA4 se desconecten de los módulos comparadores es escribir el valor 0x07 en el registro CMCON, lo que deshabilita los módulos por completo. Luego, deberías poder usarlo como IO sin problemas.
Saludos.
-
Hola Bluesboy!
Creo que el problema está en la resistencia de 10ohmios, deberías ponerla de 4k7 que sería suficiente para llevar el transistor a saturación. Cuidado con el transistor que puede que se haya destruido por que le has metido 5mA de corriente de base.
Saludos,
Miquel
-
Hola Bruno F, Miguel
Tengo 0x07 en CMCON
Por hoja de datos, el BC337 soporta una pico de corriente de base de 200mA, y maneja hasta 500mA de corriente de colector, supongamos el mínimo hfe de 100, con 500mA de colector, da una Ibase de 5mA.
tengo la misma configuración en un multiplex de 7 segmentos y lo tengo andando a fondo todo el día.
De cualquier manera lo tendré en cuenta, para no laburar al límite. De cualquier manera, tome otro chip y conecte esa salida a un led y nada.
Como con RA4 había varios problemas posibles, lo use como entrada y puse como salida RA7 con el mismo resultado. O sea, RA4 como entrada va joya, RA7 como salida muerto.
Voy a hacer lo siguiente, porque a esta altura estoy sospechando de mi (no es que antes no lo hiciera, es que me confie en que el simulador me daba todo OK). Lo voy a reprogramar y de paso depuro el programa.
Y luego les cuento, calculo que entre este finde y el lunes o martes les cuento, por si quieren seguir el hilo.
Dice una frase que cuando se ha buscado en todos lados sin exito, lo que queda, por improbable que sea, es la verdad.
Lo que queda a mi modo de ver, es el soft. Aunque simule bien, no es la primera vez que el mplab compila y luego no funca en el chip si no ponés asembler ¨puro¨
BUeno, les cuento como sigue.
Si se les ocurre algo avisen. Los tengo al tanto.
Muchas gracias por su tiempo y dedicación.
-
Podrías publicar el código asi le pegamos una mirada? En qué lenguaje estás programando?
Saludos.
-
Hola
A todo el mundo que anduvo por acá, muchas gracias y disculpas.
El problema era un registro que usaba como flag, tenía que tener 2 valores o 0 o 1. El problema era que incrementaba constantemente cuando ejecutaba una subrutina y seguia 2,3,4,.... y no me daba bola el prog.
Aun no sé porque el pic simulator funcionaba.
En fín, ya lo solucioné. Gracias por sus orientaciones, me han servido para revisar.
Lamento haberles hecho perder tiempo.
Una vez mas, muchas gracias. ((:-))