Schematics

We have a winner. Test results in PCB test 2


LibreServo sending data via RS485 to Arduino plotter

After several tests, the LibreServo hardware is finally chosen and it's working, even the H-bridge that gave me a lot of problems! In general, all the parts of LibreServo remain as they were, because they were already working correctly, except the parts are discussed in this article.

Manual primer proyecto STM32. Parte 1: Diseño Electrónico

Hace años me costó bastantes dolores de cabeza tener todas las piezas claras y como sé que el artículo más visitado de LibreServo es Software para programar STM32, voy a intentar realizar un artículo que conglomere todos los pasos necesarios para poner a funcionar desde cero un microcontrolador STM32, tanto a nivel de diseño electrónico, como de programación. Como LibreServo está basado en el microcontrolador STM32f302K8, todo irá referenciado a éste microcontrolador por facilidad, pero los pasos son exportables a todos los microcontrolador más comunes de la familia STM32 ARM Cortex de ST, de hecho, si es tu primer proyecto no sería la mejor opción con la que empezar, más que nada por el encapsulado que trae. El STM32F302C8 sería el gemelo pero en un encapsulado mucho más sencillo de soldar. Pero hay literalmente decenas de microcontroladores según lo que cada uno requiera.

Esquema electrónico mínimo para STM32 Esquema electrónico mínimo para STM32

"Magic Smoke" en LibreServo ¡Otra vez!

Estaba muy contento con el blanco del led Asmb-mtb0-0A3a2 y empecé a configurar el puerto serie.

El puerto serie debido a la altísima velocidad que puede alcanzar (9Mbps) hay que configurarlo mediante DMA, en otras palabras, que el envío y recepción de datos se haga en background sin usar ciclos de reloj de nuestro microcontrolador. El envío es fácil, pero la recepción requiere que se sepa de antemano el número de bytes a recibir... lo cual no sabemos. Habrá que darle alguna vuelta a la programación, pero tengo alguna idea.

Sea como fuere, primero empecé a configurar el puerto serie de transmisión, TX. Y tras unas pruebas... fumata blanca.

TX de LibreServo v1.c funcionando
TX de LibreServo v1.c funcionando

Resistencias para el LED RGB [Asmb-mtb0-0A3a2]

Tras muchísimos cálculos matemáticos... Todo se ha ido al garete y la realidad es bastante distinta a la calculada. ¡Menos mal que decidí comprar un montón de valores de resistencias para poder hacer las pruebas! El mayor problema que he tenido, es que el datasheet de Asmb-mtb0-0A3a2 no muestra dato alguno para cuando el led funciona a menos de 5mA, que es precisamente en el rango en el que funciona en LibreServo el LED.

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 in LibreServo v1b

With the website finished, I finally had time to continue programming and testing my LibreServo, but the joy was short-lived.

After soldering the three PCBs together, I proceed to power the LibreServo for the first time from a battery instead of the ST-link programmer ... and a white smoke preceded by sparks made an appearance. The STM32F302 microcontroller has been completely blown up, and there is a huge short between ground and the 3.3V line. After looking closely, I see that there are tin chips between the legs of my microcontroller, right between vdd and vss! Is it possible that when welding the three PCBs I was not careful enough and some "chips" has ended up where it should not?

Design error
Error en el diseño de LibreServo v1b

Desingns, schematics and PCB

After detecting the error in the design in the serial communication part as I commented in the rush, that bad advisor, I had to update the designs and therefore the designs previously shared here and here are outdated. As this could happen more times in the future, and as I also want to share the files themselves, I leave in this post the latest edition of the designs in photo and in Github I will leave the uploaded files also. Of the PCB layout file, there are 4 versions. Versions a, b and c correspond to the special versions that I had manufactured as I mentioned and explained in the entry of my first LibreServo order.

Schematics and designs
Buses

Diseños, esquemas

Sin poder entrar en todos los detalles y decisiones tomadas, en el propio diseño electrónico y esquemático, se ha seguido siempre el propio datasheet de los componentes seleccionados, en algún caso aumentando los condensadores de desacoplo. Dejo a continuación el esquema general completo (se ha corregido a posteriori algún detalle), y comentaré las partes en los que ha habido algún pequeño cálculo.

Primer diseño esquemático de LibreServo
LibreServo sch