6/17/2018

Hercules RM57L843 LaunchPad: Uso básico del GIO - Blink LEDs

Descripción:
En este pequeño ejemplo, usaremos los LEDs y botones que trae nuestra LaunchPad, LED3 se configuro desde el HALCoGen para que se encienda al inicio después de haberse configurado los puerto, si presionamos el botón A entonces LED3 cambiara de estado y LED2 encenderá de forma intermitente cada 500ms, hasta que se vuelva a pulsad botón A.
Circuito:
El circuito de los botones y LEDs con los que cuenta nuestra LaunchPad la podemos encontrar en la wiki de TI.
Código:
Para realizar el código hemos usado el HALCoGen y luego el CCS, tenemos una rutina para inicializar los puertos, una función para retardos y en main tenemos la lectura de GIOB_4, cuando esto ocurre se invierte el estado de GIOB_7 y GIOB_6 enciende de forma intermitente.
Vídeo:
Aquí un pequeño vídeo de la Hercules en funcionamiento:
Descargas:
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.
Referencias:

6/04/2018

MPLAB X & XC8: LED Intermitente por interrupción con el desbordamiento del TIMER 0

Descripción:
En este ejemplo veremos como cambiar el estado de un LED conectado al puerto RC7 del PIC18F25K22, dicho cambio se realizara por medio de una interrupción con el desbordamiento del TIMER 0.

Circuito:
El circuito utilizado es muy sencillo, como utilizamos el oscilador interno del MCU, solo basta con conectar un LED con su debida resistencia a RC7, claro esta el microcontrolador debe de estar alimentado en sus respectivas terminales, el pin MCLR, debe estar con su debida resistencia a VCC.

Código:
Configuramos el MCU, desbordamos el timer a 1ms, hacemos un conteo en la interrupción y cambiamos el estado del LED, borramos la flag y el contador para que se quede indeterminadamente, se deja libre el while en main para otras actividades.
Vídeo:
A continuación un pequeño vídeo del código en funcionamiento.
Descargas:
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.

6/01/2018

EAGLE: ¿Qué hacer si el package de un componente no tiene la capa tStop para la soldermask?

Primero que nada ¿Que es la soldermask? Se puede decir que es una capa de lacado que reciben las placas de circuito impreso en las caras superior e inferior, para proteger zonas de cobre donde no se desea aplicar soldadura (los PADs regularmente) y para evitar oxidación, corrosión y otros agentes externos en el cobre, puede ser en placas con componentes SMD o THT, normalmente incluye un tinte que le da una coloración verde; aunque también está disponible en otros colores como rojo, azul, blanco, negro, etc. En la mayoría de los programas de diseño el soldermask viene de la mano con los PADs ya que a menos que se especifique lo contrario este es un negativo de dicha capa. 

Bueno una vez explicado esto, les contare un poco del motivo de esta publicación, recientemente he mandado a realizar unos PCBs de forma profesional, es un diseño del trabajo y esta acción la he realizado en muchas ocasiones anteriormente, pero es la primera vez que me ocurre el problema que mencionare. Como sabemos para qué te puedan fabricar necesitas mandar los archivos GERBERs de tu diseño, bueno nuestro proveedor de PCBs nos contactó para decir que se tenía algunos detalles en el diseño, eso habla muy bien ellos por revisar a detalle todos los archivos y un poco mal de mí, ya que deje pasar este error a pesar de haber revisado estos archivos con un visualizador de GERBERs (ViewMate), resulta que un componente un LED RGB para ser exactos, no tenía activada la capa tStop, se preguntaran y esto ¿Para que es? o ¿Por qué sirve tenerlo activado?, veamos la siguiente imagen, es una captura que me mando mi proveedor. 


Como se aprecia en la imagen (solo un fragmento del PCB), tenemos el color rojo que en esta ocasión es todo el cobre en la cara TOP, también se tiene el color azul claro que son todos los PADs del diseño, esta parte nos interesa que NO tenga soldermask, ya que ahí soldaremos los componentes, ahora bien LED7 y LED3 (y todos los LEDs en la tarjeta) encerrados en un recuadro blanco, también señalados con una flecha, no tienen dicho color, ósea que si se fabricaran así, no podríamos soldar los LEDs porque sus PADs estarían cubiertas por la soldermask, bueno si se podría pero se necesitaría retirar dicha capa con alguna navaja, eso provocaría que nuestro trabajo no se vea profesional y de cierta forma es hacerle un parche. 

El problema de esto es que la librería de dicho LED está mal diseñada, por lo tanto tocara modificarla, para esto nos vamos a la librería, entramos al package, vamos a las capas y activamos “tStop”, notaremos que no tenemos nada en dicha capa (bueno en este caso es así, que este es el problema). 


Ahora ¿Cómo se soluciona? Bueno para esto es necesario dejar activas estas capas y hacer click derecho en el PAD, luego en propiedades y activar la opción Stop, hacer esto para todos los PADs, como se ve en la siguiente imagen. 


Como vemos en la imagen aparecieron rectángulos con líneas, esto resolverá nuestro problema, aunque se ven encimados, el tamaño los da Eagle por defecto, bueno yo no encontré una forma de ajustar esos rectángulos a mi gusto, aunque teóricamente funcionaria bien si se dejan así, yo decidí modificarlos y hacerlos más pequeños. 


Para poder editarlos al gusto tuve que agregárselos de forma manual, para ello una vez más click derecho en los PADs >> propiedades >> desactivar tStop. Lo siguiente será hacer el grid más pequeño por ejemplo yo lo deje en 0.05mm (flecha amarilla para editarlo), luego con el icono Rect (flecha azul) y asegurándome de seleccionar la capa tStop (flecha roja) realice el rectángulo al tamaño deseado sobre el PAD deseado (flecha morada), en la imagen comparo uno por defecto y uno realizado de forma manual, según el manual de Eagle dice que esta opción es para hacer restricciones así que debe funcionar perfectamente.

Al final la librería termino luciendo de la siguiente forma. 


Esto resolvió mi problema y he obtenido buenos resultados, aquí el resultado de los GERBERs vistos en ViewMate, en donde se puede ver que los LEDs ya tienen activa la capa. 


Por ultimo les comparto una foto del PCB, espero que se pueda apreciar bien, los resultados fueron los esperados. 


Bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo más pronto posible.

5/17/2018

Cupón de descuento para TI Store "2018"


Saludos a todos los seguidores!! En esta ocasión nos hacen llegar un cupón de descuento para envíos gratis (aparece en la imagen), claro esta para los productos adquiridos en https://store.ti.com/, el cupón esta vigente hasta el 31 de diciembre 2018 y puede ser utilizado por cualquier persona (incluso aplica si se lo compartes a otro conocido), también puedes usarlo en repetidas ocasiones .

Lo invito a unirse en E2E Community, ademas de dar like en facebook a TI Community y seguir a @Blake en Twitter, para tener acceso a mucha información sobre productos de TI.

Importante:
  • Oferta válida para pedidos realizados a través de la tienda de TI solamente; términos adicionales de venta se aplican. Oferta válida sólo para los pedidos enviados a destinos atendidos por la tienda de TI y a través de los portadores seleccionados por la tienda de TI en las tarifas de envío estándar. La oferta no es válida para los pedidos de productos de Texas Instruments realizadas a través de otros canales de distribución o ventas. 
  • La oferta no se puede usar para hacer ajustes en las órdenes anteriores y no es transferible, no para la venta y no se puede combinar con cualquier otras ofertas, promociones, cupones o descuentos. Nulo donde esté prohibido, gravado o restringido de otro modo. La oferta es válida hasta Diciembre 31, 2018, se pueden aplicar otras restricciones. Texas Instruments se reserva el derecho a realizar cambios en o terminar cualquier oferta en cualquier momento.

5/04/2018

MSP-EXP430F5529 & CCS: Temperature sensor using LM35 and LCD102x64


Circuit:
The connection is very basic, the sensor to VCC and GND, the signal Vout of the LM35 is connected to the analog channel A6 of the MSP.


Code:
To obtain the temperature we need to perform a few calculations, for example in the LM35 datasheet it tells us that Vout = 10mV / ° C, in other words 1 ° C = 10mV, for example if we have a temperature of 30 ° C we will have Vout = 300mV, another point that we should consider will be the resolution of the ADC, in this case it is 12 bits, this means that we can have values ​​from 0 to 4096, to know what voltage corresponds to a bit we can say that; 1Bit = 3.3V / 4096 = 3300mV / 4096 = 0.8056mV.

With this we can know how many bits will be present in A6 when the temperature is 30 ° C, therefore Bits30 ° C = 300mV / 0.8056mV = 372.39.

The ways of presenting the equation that describes the behavior of the temperature can be of different forms but in the end the same result is achieved, I do it in the following way, of course, considering the previous calculations.

1 Bit = 0.8056mV
1 ° C = 10mV

And applying a rule of three we have 1 Bit = 0.8056mV * ° C / 10mV = 0.08056 ° C

Then I can deduce that if this constant is multiplied by the bits in A0, I will obtain my desired temperature, for example; 0.08056 * 373.30 = 29.99 ° C, considering that we have not used all the decimals we can say that our temperature is correct.

With this constant we reduce a little the process in the code, to avoid making the divisions, I must also mention that in the code I take 32 samples (1 sample every 32mS approximately) and then I get the average value with a displacement, so I update the temperature in approximately 1 second and show it on the screen, there is also a bar where we show from 10 ° C to 45 ° C, when the temperature is less at 45 ° C the LED1 changes state every second, when it is higher the LED1 changes its status every 32 milliseconds (flashing faster).

Video:
Here a small video of the working temperature sensor.


Download:
Here the direct link to DOWNLOAD the available files, you can also check or download the information from my repository on GitHub, if you do not know how to download it you can check here, well for now it's all, if you have doubts, comments, suggestions, concerns, etc. leave them and I will try to answer as soon as possible.


References:

5/01/2018

6to Aniversario de "Electrónica & Robótica"


¡Saludos! Un año mas ha pasado en "Electrónica & Robótica" y debo dar gracias a todos los lectores del blog y pagina en FB, por cierto ya son mas de 12K Likes a pesar de que últimamente he estado un poco inactivo. En cuanto a las paginas amigas invito a ver la seccion de ENLACES, que es ahí en donde encontraran una gran lista de sitios recomendados y especialmente a Inventable, este año al parecer hemos aparecido mas en las búsquedas de google, también agradezco a Blake de TI por recomendar el blog, en fin muchas gracias a todos.

Aquí un poco de las estadísticas del blog:


Espero que este año pueda seguir compartiendo mas información, tanto de microcontroladores (veré la oportunidad de adquirir algunas herramientas y/o MCUs de TI), así como también de circuitos interesantes, incluso algo que encuentre entre mis archivos o libretas viejas de la escuela. Espero que la información aquí compartida les sea de gran ayuda, les deseo lo mejor y mucho éxito en sus proyectos.

Atte: Pedro Sánchez Ramírez (MrChunckuee).

4/21/2018

MSP-EXP430F5529 & CCS: Sensor de temperatura usando LM35 y LCD102x64


Descripción:
En esta publicación veremos un pequeño sensor de temperatura, anteriormente ya hemos utilizado el LM35 en el blog, así que podemos retomar esa información para este ejemplo, recomiendo revisar la publicación "Stellaris LaunchPad & Energia: Sensor de temperatura LM35" ya que ahí explico como sacar la constante que uso para determinar la temperatura, en cuanto a la parte gráfica del LCD,  la he sacado de este post, claro esta no he hecho una replica exacta.


Circuito:
La conexión es mu básica, el sensor a VCC y GND, la señal Vout del LM35 esta conectado al canal analógico A6 del MSP.

Código:
El código no es complejo, iniciamos configurando el MCU entradas salidas e inicilizamos la LCD (ver anteriores post sobre ella, ya se a utilizado antes), ademas configuramos el ADC, bueno paramos al bucle while en donde tomamos 32 muestras en aproximadamente 1 segundo, después hacemos un desplazamiento y multiplicamos por nuestra constante para obtener la temperatura, una vez que tenemos esto lo mostramos en pantalla, tenemos una barra donde mostramos de 10°C a 45°C, cuando la temperatura es menos a 45°C el LED1 de la tarjeta cambia de estado cada segundo, cuando los supera el LED1 cambia su estado cada 32 milisegundos (visualmente el parpadeo se ve mas rápido).

Vídeo:
Aquí un pequeño vídeo del sensor de temperatura en funcionamiento.


Descargas:
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.


Referencias:

4/13/2018

MSP-EXP430G2 LaunchPad & CCS: Basic use of PWM

Regards! Following with the basic examples of the MSP-EXP430G2 LaunchPad in CCS, it's time to use the PWM, to start I used the file "msp430g2xx1_ta_16" from the folder of examples provided by TI, I added the option for the Duty_Cycle to be variable.

The firmware is the following:
Here is a small working video:
Here is the link to DOWNLOAD all the information available from my repository on GitHub, if you do not know how to download it you can check here. Well for the moment it is all if you have doubts, comments, suggestions, concerns, etc. leave them and I will try to answer as soon as possible.

4/09/2018

Hercules RM57L843 LaunchPad: Introducción, primeros pasos y algunos ejemplos


Saludos!! Hace un par de días adquirí una nueva LaunchPad, ahora surgen algunas preguntas ¿Que hacemos con esto? ¿Cuales son los primeros pasos? ¿Como hago para programarla? ¿Que herramientas necesito?

Bueno aquí algunos vídeos con ejemplos en español del buen Martín Valencia de ElectronAplica (son usando el RM46 pero la mecánica es similar).
Por el momento sera todo, ya estaré contando como me ha ido con esto, mas adelante.

3/20/2018

¡Nuevo juguete! Hercules RM57Lx LaunchPad Development Kit


Saludos! Les presumo que hoy me ha llegado esta bonita tarjeta, directito de la tienda de TI, es un Hercules RM57Lx, hace tiempo que tenia ganas de adquirir una y he aprovechado la oferta del PI Week (así que no me han cobrado envió). Espero próximamente compartir algo en el blog con esta tarjeta, pero para iniciar recomiendo este gran canal con información sobre esta LaunchPad.