¡Ya me ha llegado LibreServo v1.c!

Tras 2-3 semanas ya tengo la nueva versión de LibreServo v1.c. A primera vista, lo que mejor se aprecia es el texto en las placas, ahora muchísimo más claro y conciso que en las anteriores ediciones.

Tenía bastante miedo con el fresado (corte interno en la panelización), pero ha quedado perfecto. Estoy muy contento por ese lado.

Pedido de LibreServo v1.c
LibreServo v1.c pedido

Problemas con JLCPCB

Como comenté en nuevo diseño y pedido de LibreServo, realicé el último pedido el domingo 7 de Octubre. Desgraciadamente el martes 9 de octubre fue cancelada la compra y me devolvieron el dinero.

Había mandado el mismo diseño que había mandado anteriormente, pero según propias palabras de jlcpcb, en el primer pedido hacen un poco de manga ancha y dejan pasar muchos diseños que en órdenes posteriores van a bloquear por no ajustarse a sus estándares de fabricación.

Tras cruzas 16 emails con jlcpcb, ya tengo el diseño final:

Diseño final en fabricación de una de las PCB
LibreServo v1.c final

Nuevo diseño y pedido de LibreServo [v1.c]

Tras un mes desde que detecté el error, cómo corre el tiempo..., ¡ya tengo una nueva versión de LibreServo y ya están fabricándose en JLCPCB!.
Ahora mismo ando con muy poco tiempo, pero la tardanza no sólo ha sido por mi poco tiempo, también he decidido introducir varios cambios y mejoras:

  • Cambiar tamaño y limpieza de textos
  • Cambiar encapsulado del regulador lineal
  • Cambiar condensadores y resistencias para que no entorpezcan
  • Modificar el valor de las resistencias del led RGB
  • Poner agujeros pasantes para un futuro encóder
  • Modificar footprint de varias resistencias y condensadores para optimizar el espacio
  • Modificar pistas serie para que sean curvas
  • Modificar cableado conectores (orden al revés)
  • Mover el gateMosfet para que no coincida con el conector
  • Agrandar footprints de los gateMosfet y del microcontrolador
  • Generar dos pines de alimentación
  • Añadir normbre y versión a la placa
LibreServo v1.c
LibreServo v1.c

Error en LibreServo v1b

Con la web ya acabada, por fin tenía tiempo para seguir programando y probando mi LibreServo, pero la alegría ha durado poco.

Tras soldar las tres placas juntas, procedo a alimentar LibreServo por primera vez desde una batería en vez desde el programador ST-link... y un humo blanco precedido de unas chispas hace acto de presencia. El microcontrolador STM32F302 ha quedado totalmente fundido, y existe un corto como una catedral entre tierra y la línea de 3.3V. Tras mirar en profundidad, veo que existen virutas de estaño entre las patas de mi microcontrolador, ¡justo entre vdd y vss! (alimentación y tierra). ¿Es posible que al soldar las tres placas no haya sido suficientemente cuidadoso y alguna viruta haya ido a parar a donde no debía?

Error en el diseño
Error en el diseño de LibreServo v1b

Así se ha fabricado LibreServo

Interesantísimo documental sobre cómo se fabrican las placas PCB. Si ya de por sí es interesante, da la casualidad que el reportaje es precisamente sobre la fábrica de JLCPCB, que es precisamente donde he fabricado la primera partida de placas de LibreServo.

¡No dudéis en echarle un ojo al reportaje!

Reportaje sobre JLCPCB, fábrica de LibreServo
https://youtu.be/ljOoGyCso8s

Control led RGB usando TIM17

Una de las primeras versiones que hice de LibreServo, sólo en esquemas y mirando posibles configuraciones con CubeMX, el led RGB se hubiera controlado mediante el timer 2, TIM2, directamente con sus salidas PWM. Es la forma más sencilla y directa de hacerlo. Pero más adelante y por petición de varias personas, decidí añadir cierta compatibilidad con un posible futuro encóder magnético. Eso me forzaba a reservar TIM2 para una posible lectura del encóder y por tanto dejaba al led RGB sin la salida directa de TIM2. Finalmente lo tuve que instalar en salidas digitales "normales" y dejar recaer en un futuro software el control del led RGB con un sólo timer, en éste caso, el timer 17.

La idea de este programa es además de configurar y usar el timer 17, controlar el led RGB mediante interrupciones del timer 17. Es un sencillo programa que nos obligará a utilizar y configurar más características de nuestro LibreServo de cara a futuras características.

Control led RGB mediante interrupciones con el TIM17

Hola mundo con LED

Siguiendo lo dicho en software para programar LibreServo he utilizado CubeMX para toda la configuración inicial con el que he generado el proyecto base para TrueStudio.

El primer ejemplo a realizar es el más básico, un led parpadeando. En nuestro caso, LibreServo usa el led RGB Asmb-mtb0-0A3a2, así que haremos que cambie de color alternativamente. Es un ejemplo básico pero esencial para poder seguir avanzando.

El código que enseñe intentaré siempre poner las zonas donde se programan, delimitadas por entradas que pone CubeMX para luego respetar nuestro código a la hora de realizar una actualización de las librerías. Para realizar la espera, usaremos el propio Systick.

Hola mundo con led RGB básico

Software para programar STM32

Recuerdo como si fuera ayer que cuando empecé a programar para microcontroladores ARM (casi siempre de ST), el tortazo que me pequé fue como poco curioso y eso que tenía un buen trasfondo de conocimientos en AVR. No fue hasta que me aconsejaron CooCox hasta que empecé a avanzar. Aún así, la configuración de los periféricos del microncontrolador, o incluso, ser capaz de arrancar el microcontrolador y simplemente hacer parpadear un led era ya todo un logro. No debería de ser el único "torpe", porque ST decidió sacar en Febrero del 2014 la herramienta CubeMX. En su lanzamiento tenía más bugs que funcionalidades y como yo ya me manejaba perfectamente con ARM lo instalé y lo dejé olvidado en un rincón de mi disco duro.

Configuración de LibreServo en CubeMX
Configuración de LibreServo en STM32CubeMX

¡Primera LibreServo soldada!

El título lo dice todo... ¡he soldado la primera LibreServo!

Al final, no sé si por suerte o por gracia divina, soldar el stm32F302 ha sido relativamente fácil. Puse mucho flux, incluso pensé que había puesto demasiado y tendría que limpiar y repetir todo, pero fue hasta demasiado fácil soldar el microcontrolador. Curiosamente los "gate drivers" FAN3227TMPX, que también tienen los pines debajo del propio encapsulado, me dieron muchos más problemas, pero en principio a falta de probarlos, están bien soldados.

PCBs LibreServo v1b soldadas
PCBs LibreServo v1b soldadas

Suscripción

Recibe un email por cada nuevo artículo.

Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.

13 + 3 =
Resuelva este simple problema matemático y escriba la solución; por ejemplo: Para 1+3, escriba 4.