Documentation

New PCB Test v2 for LibreServo


Hello World in LibreServo PCB test v2

A month ago I was analyzing the results and conclusions obtained with the LibreServo test PCB v1 and trying not to lose momentum this month I have designed, I have ordered new PCBs and I have already assembled the LibreServo test PCB v2! 🥳

It is the first PCB that I have designed with 4 layers for LibreServo and I hope that this will mitigates some issues with the H-bridge that I think comes, in part, from electronic noise. For the rest, it is a PCB with the final components, it is closer to the final design in which I have forced myself to put the components as close as possible to each other to see the real limit between what is designed and what can be easily welded without overcomplicating things, everything holds up on paper but then you have to bring it to reality.

Results and conclusions of the tests

RS-485 9 Mbps Hello World
RS485 Hello World at 9 Mbps

After analyzing all the parts of LibreServo, I have decided to make several design changes again. I am happy with the results obtained with the test board since without it, it would have been impossible to analyze all the components separately and detect all the errors and faults that I have found, it is something that I should have done from the beginning and it would have saved me a lot of time. The topics to be discussed are:

  • Current Sensor
  • Protection against change of power polarity
  • New power supply, mpm3610 + ap2112
  • NTC temperature sensor
  • New more compact RGB led
  • RS-232 vs RS-485 serial communication
  • New AEAT-8800 magnetic sensor
  • H bridge
  • Next PCB (4 layers)

Análisis alimentación (MPM3610 + Ferrita + AP2112)

Circuito MPM3610 y AP2112 con Ferrita Circuito MPM3610 y AP2112

Una de las partes que más he cambiado y pensado en las versiones de LibreServo es la alimentación. En versiones anteriores fue un regulador lineal que reduje de tamaño, pero la verdad es que no estaba para nada agusto ya que si LibreServo era alimentado con tan sólo 12V, el regulador lineal debería de disipara hasta 1,74 Watios y en 16v 2,54 Watios... algo que era realmente irreal que pudiera hacerlo.

Hace unos meses descubrí el MPM3610, y esto hizo que por fin pudiera diseñar la alimentación como quería. Este diminuto componente es un más que potente step-down de 1,2A que admite hasta 21V de entrada y que ¡además tiene la bobina y el diodo incorporado! Es esto último lo que lo hace perfecto para mi diseño, por el reducido espacio utilizado, siendo el único step-down que se fabrica que tenga integrado bobina y diodo en el mismo encapsulado. La diferencia entre usar un step-down y un regulador linel es que un regulador lineal de 3,3V a 12V da una eficiencia de un 35%, mientras que el step-down del 80% o superior, el resto se disipa en calor, con lo que uno es mucho más propenso a sobrecalentarse que el otro. Lo malo de usar un step-down es que son bastante ruidosos y su salida no es tan limpia como la de un regulador lineal.

Análisis del sensor de corriente ZXCT1010

Circuito básico ZXCT1010 con protección Zener MMSZ5226BS Circuito básico ZXCT1010 con protección Zener

El primer componente que voy a analizar en mi nueva placa para testear LibreServo es el sensor de corriente ZXCT1010, el cual es una versión mejorada del sensor ZXCT1009. La mejora sobre todo es en la parte baja del sensor, cuando hay poca caída en Rsense, parte en la que quería estar ya que no quiero que se desperdicie tensión en Rsense. Además, aparejado al sensor de corriente está el diodo Zener MMSZ5226BS para evitar que la tensión de salida del sensor de corriente pueda superar los 3,3V y quemar el microcontrolador.

Nueva PCB para testear LibreServo

PCB para test LibreServo Placa para Tests de LibreServo

Ha pasado mucho tiempo desde mi última actualización, una pandemia de por medio y muchos cambios. Sea como fuere, LibreServo sigue avanzando, poco a poco, pero sigue 💪.

Durante las versiones anteriores de Libreservo me he encontrado continuamente con diferentes problemas en el diseño y sin saber exactamente cómo se iban a comportar diferentes componentes de LibreServo, además, intentar luego debuguear la placa siendo tan compacta y sin espacio extra para poder sacar ni un cable para poder ver las señales complicaba siempre todo demasiado.

Compras y cambios de los últimos meses en LibreServo

DS1054Z LA1010 GPS3010D DS3235 Nuevo material y herramientas para LibreServo

LibreServo va a sufrir varios cambios importantes y he decidido cambiar el método en el que estoy realizando las pruebas. Además, he decidido rascarme el bolsillo y comprarme algo más de equipamiento para medir todo lo necesario de una manera externa y precisa y así saber de antemano qué esperarme en LibreServo.

Nuevos diseños para el futuro

Encóder magnético vs potenciómetro

Llevo un tiempo dándole vueltas y desde el primer momento que me plantee LibreServo había un componente que me generaba dudas... el potenciómetro. En Selección de componentes para LibreServo ya lo comenté y hasta ahora siempre había más ventajas en utilizar el potenciómetro de Murata que un caro encóder magnético, al menos para una primera versión de LibreServo. Pero puede que eso haya cambiado.

"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.

Primera LibreServo v1.c soldada

Ya tengo la primer LibreServo v1.c soldada y estas son las impresiones tras soldar los componentes.

Hice varios cambios en el diseño para facilitar soldar los componentes con encapsulado QFN, como el microcontrolador y el driver de mosfets, alargando los pines de los footprint y la mejora ha sido notoria. Mucho más fácil soldar y comprobar que todo está bien soldado.

También hice cambios con la elección de componentes, el más evidente fue con el regulador lineal. El nuevo regulador lineal y su nueva disposicion, han conseguido reducir la "altura" mínima de LibreServo ¡en 1.9mm! Ahora es mucho más compacto.

Primer LibreServo v1.c soldado
LibreServo v1.c saldado