TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Marttyn en 14 de Mayo de 2009, 13:45:48
-
Hola! tengo una duda, a la que se la respuesta... solo que la respuesta que se no me gusta :mrgreen:
Tengo que encender un led con un pin del PIC, y segun el datasheet del PIC, lo maximo que soporta es 25mA. Necesito que el led brille mas, y 25mA no me alcanza....
Esta claro que todos los componentes electronicos tienen un maximo, sobre el cual aun tienen un margen de seguridad... Alguno le dio caña a los pines de un PIC? Sacando 25mA justos me lo cargare? Podre sacar 30mA? quizas 40mA?
A ver que opinan :)
Salu2
-
en realidad no medí la corriente, pero le metí un display de cátodo común directamente a un pic del micro y murieron todos los pines, y no sé porque todos, fue un 84a que ahora es inservible, en realidad nunca se encendían todos los leds del display, supongo que le llego unos 40 o 50mA.
No sería lo mejor usar un transistor para encender el led a 30 o 40mA?
-
Hola, porque no le pones un transistor ?
Saludos !
-
¿No te sobran pines?, si es así puedes alimentar el led con dos pines a la vez y conseguirás 50mA.
Por cierto, si conectas el cátodo del led a los pines del micro y su ánodo a Vdd, lo encenderás enviando un 0 a los pines y conseguirás un poco más de intensidad. Los pic son capaces de drenar más mA de los que surten.
-
Poniendo el ejemplo de un PIC16F87XA...
(http://img27.imageshack.us/img27/2795/corriente1.jpg)
La corriente de entrada o salida puede ser de hasta 25mA por un solo pin. Pero la corriente acumulada por cualquier arreglo de pines en los puertos A, B y E podrá ser de hasta 200mA.
Propongo que pongas el led en 3 pines del puerto B, sumando 75mA y cada uno entregando 25mA. Ya sabes cómo calcular la resistencia que llevará el led.
Hay un detalle mínimo que hay que cuidar... los 3 pines deberán entregar una corriente ya en los límites y puede que un pin entregue menos de 25mA obligando a los otros 2 a entregar más de 25mA, poniéndolos en peligro. O también con el tiempo algún pin se puede quemar por exceso de uso.
Lo puedes solucionar agregando un 4to pin porque se bajaría la corriente por pin.
-
Pero usar mas de un pin para alimentar a un mísmo componente no implicaría una perfecta sincronización a la hora de encender/apagar los pines en cuestión? digo porque si los tenés unidos y no los modificás a la vez, puede que entren en cortocircuito.
-
Si cargas el valor al puerto se encienden de un golpe, ¿no?
De todas formas, a mí alguna vez me ha pasado lo del cortocircuito a la salida y no se han estropeado. Lo mismo es casualidad, pero me da que estos pic están diseñados para soportarlo.
-
Se puede lograr un encendido simultáneo de los pines en C o ensamblador sin problemas... según veo yo :D
ASM pines B0, B1 y B2
movlw 0x07
iorwf portb,f
CCS pines B0, B1 y B2
output_b(input_b() | 0x07);
-
No lo he comentado, pero también estoy de acuerdo con Richi en que lo mejor sería un transistor.
-
Pues sí, un transistor es más barato que toda la circuitería interna que implica agregar un solo pin a un pic. :D
Pero bueno, es cuestión de darle gusto a Marttyn.
-
Se puede lograr un encendido simultáneo de los pines en C o ensamblador sin problemas... según veo yo :D
ASM pines B0, B1 y B2
movlw 0x07
iorwf portb,f
CCS pines B0, B1 y B2
output_b(input_b() | 0x07);
Claro Santi! Solo decía porque hay que tener cuidado con eso! Obviamente se pueden poner todos a uno con una IOR y a cero con una AND.
Saludos.
-
Hola chicos! Gracias a todos por las respuestas!
Realmente no es por capricho, ni por gusto... es mas bien por tema de tamaño... la placa no tiene un milimetro de sobra por ningun lado, ni para un transistor en smd. Pines de mas tampoco.... Y aunque lo tuviera, no quiero tener que rehacer las placas... si solo fuera cambiar una resistencia :5}
esta claro que el micro puede sacar 25mA sin problemas, y por entregar 26mA no se va a romper... pero llegare a 30mA? y a 35mA?
Por cierto Noc, ya habia escuchado que sacando un CERO el pin puede entregar mas corriente... pero segun el data que puso mig, entregan lo mismo...
-
Tienes razón, según esa data es lo mismo.
Pues entonces será con otros micros con los que se produce ese efecto, yo lo he leído en una datasheet y pensé que ocurría en todos.
-
Aqui un dato curioso...
Tengo unos leds que tienen unos 3.2v de caida de tension. Trabajando a 5v, con una resistencia de 75ohm (1.8v de caida en la resistencia / 75) deberia circular una corriente de 24mA por el led. De hecho si conecto 5v, una resistencia y el led, el consumo es casi exactamente el calculado.
Hice la prueba con un PIC, queriendo encender el led, con la resistencia de 75ohm, y vaya sorpresa que el consumo a traves del pin es de menos de 10mA!
Fui bajando de valor a la resistencia, y llegue a 10 ohm, y con esa resistencia el led consume unos 23mA :shock:
No me dan los calculos... 1.8v de caida en la resistencia dividido 10 ohm da 180mA.
Hago mal los calculos? Medi la resistencia interna entre el pin y Vdd y me da 1.3K ohm, pero lo tuve que medir en funcionamiento, por loque no se si el dato es fiable. En el datasheet no vi nada
-
hice algunas pruebas mas: 5v del pin, el led y una resistencia de 1 ohm :shock: consume unos 24,7mA...
Estara limitado el PIC para no poder entregar mas de 25mA para que no se queme? Es un 16f648A
La verdad me extraña mucho todo esto... :z)
-
La respuesta es SI, hice la prueba de no poner resistencia. 5v directamente al led por el pin del pic, y el consumo del led es de 24.9mA...
Esto es raro raro raro.... y lo mejor es que no huele a quemado!
Lo malo es que tira por tierra todos los calculos que se hacen para las resistencias limitadoras para leds, transistores y demas... no puede ser :2]
-
Seguro que viene protegido. Yo a veces he puesto en corto una salida en 1 con GND o con otra salida a 0 y el PIC ha sobrevivido.
Lo que pasa es que tienes razón: si esto se confirma los cálculos habrá que hacerlos de otra manera.
-
La respuesta es SI, hice la prueba de no poner resistencia. 5v directamente al led por el pin del pic, y el consumo del led es de 24.9mA...
Esto es raro raro raro.... y lo mejor es que no huele a quemado!
Lo malo es que tira por tierra todos los calculos que se hacen para las resistencias limitadoras para leds, transistores y demas... no puede ser :2]
¿Estás teniendo en cuenta la impedancia de salida del pic? Ronda los 70ohm... así que ya tienes la explicación :)
-
Gracias sycho por el dato! Tiene mucha logica.... aun asi, mirando el datasheet del pic no encuentro donde dice eso... :z)
Entonces, para hacer calculos de corriente de salida de los pines hay que tener en cuenta que ya hay 70ohm en serie con lo que le vayamos a poner despues, no?
Salu2
-
No viene especificado como tal, pero puedes extraer una aproximación tomando el peor valor de Vol (MAX Output Low Voltage) que es de 0.6v para 8.5mA... ley de ohm 0.6/8.5e-3=70.6ohm
También puedes medirla colocando una resistencia de por ejemplo 220ohm a Vdd y midiendo la tensión da el pic con la salida a nivel 0. Ésta resistencia junto con la interna del pic forma un divisor de tensión, por tanto:
Rol = (220*Vo)/(Vdd-Vo)
Seguramente obtendrás en torno a 1.2v con Vdd=5v, por lo que Rol es efectivamente de 70ohm
Si quieres medir Roh, resistencia de 220ohm a gnd y salida a nivel 1: Roh= ((5*220)/Vo)-220
He de suponer que el pic lo estás utilizando como "polo negativo" en el led, ya que a nivel alto la impedancia es mayor (en torno a 233ohm)
-
esa si que no me la sabía, buen dato y a considerar de ahora en adelante la resistencia interna :mrgreen:
-
Y algo tan importante como esto como puede ser que no venga en el datasheet? :shock:
Por cierto, estoy sacando un UNO por el PIC, y por lo que comentas deberia haber una resistencia de unos 233ohm... pero no cuadra con la intesidad que circula. Los calculos si que cuadran para una impedancia de 70ohm.
Seria lo que comentaba nocturno hace unos post, que sacando un CERO el pic puede entregar mas corriente que con un UNO... pero sera solo para algunos pics, porque el 16F648A puede sacar 25mA en source como en sink, por lo que supongo que tambien los pines tendran 70ohm de impedancia tanto sacando un cero o un uno.
-
Y algo tan importante como esto como puede ser que no venga en el datasheet? :shock:
Por cierto, estoy sacando un UNO por el PIC, y por lo que comentas deberia haber una resistencia de unos 233ohm... pero no cuadra con la intesidad que circula. Los calculos si que cuadran para una impedancia de 70ohm.
Seria lo que comentaba nocturno hace unos post, que sacando un CERO el pic puede entregar mas corriente que con un UNO... pero sera solo para algunos pics, porque el 16F648A puede sacar 25mA en source como en sink, por lo que supongo que tambien los pines tendran 70ohm de impedancia tanto sacando un cero o un uno.
Si miras de nuevo el datasheet, verás que esos 25mA de sink o source están en el apartado de Absolute Maximum Ratings. Como su nombre indica, son valores que si se superan pueden ocasionar la muerte del dispositivo.
Ésto no indica nada acerca de la resistencia interna en ambos estado y por tanto tampoco que en ambos estados se proporcione la misma corriente para una misma resistencia de carga.
Es casualidad que un pin de salida conectado a tierra y puesto a nivel lógico '1' de lugar a una corriente solo ligeramente inferior al máximo absoluto. En cambio, a si colocamos un nivel lógico '0' y el mismo pin lo llevamos a Vdd, la corriente será mucho mayor (unos 70mA) y lo más probable es que se queme. Por ésto lo que dijo nocturno, a nivel '0' los pics son capaces de absorber más corriente que la que entregan a nivel '1'.
Pudiera ser que el PIC16F648A llevase algún tipo de mejora a fin de reducir la impedancia interna a nivel lógico '1', podría ser por lo que dicen en las características de la primera página (High current sink/source for direct LED drive), pero ésto solo nos dice que la corriente de source puede ser mayor que las de otros PICs, pudiendo ser la de sink aún más alta como es costumbre.
Pues bien, la cifra de 233ohm a nivel '1' viene de consultar la especificación "Output High Voltage", la cual dice que para una corriente de 3mA la tensión mínima será de Vdd-0.7v. Si al hacer fluir una corriente de 3mA caen como máximo 0.7v... 0.7/3e-3=233ohm máximos.
Lo más rapido es que hagas las medidas que te dije anteriormente con una resistencia de 220ohm. Un led no presenta una curva I/V lineal por lo que te será más complicado de medir ya que tendrías que intercalar un amperímetro.
No obstante, la curva I/V de la salida de un pic tampoco es perfectamente lineal (no existe un Ro concreto, sino que varia ligeramente según la corriente), sobre todo en modo fuente (nivel '1'), aunque se asemeja bastante tiene sus no linealidades porque al fin y al cabo lo que hay dentro son transistores, una totem-pole o algo parecido.
-
Excelente explicación Sycho, mire tus post recientes y ya te tengo agendado entre los usuario mas capos !
Saludos !