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. Además, decidí instalar la versión de Eagle 9.2 (actualmente usaba la versión 7.6) y perdí algo de tiempo aprendiendo las nuevas características... eso sí, al final me volví a la versión 7.6 por varios bugs en algo tan sencillo como copiar y pegar el PCB para panelizar. No recomiendo una versión de Eagle superior a la 7.6.

 

  • Cambiar el tamaño de los textos a un mínimo de 24 mils y limpieza de ellos

En las anteriores versiones llegué a poner textos de 19 mils, los cuales no se podían leer en la versión final. Además, el texto estaba muy apelotonado. Se ha revisado todo para añadir etiquetas donde hacía falta y eliminar cosas supérfluas, por ejemplo, personalmente me interesa saber más que un condensador es de 100nF antes que saber que es el C8 o el c28.

Cambios en los textos
Cambios en los textos de LibreServo

 

  • Cambiar el encapsulado del regulador lineal y girarlo 90 grados

He decido hacer un gran cambio. En las anteriores versiones usaba un regulador lineal con encapsulado DPAK. Era un encapsulado bastante "pesado" y bastante grande. He decidido probar con el mismo modelo pero en encapsulado SOT-223. Con dicho encapsulado, puedo girarlo 90 grados para que justo entre en el hueco que dejan las patas de los conectores JST de la placa de abajo. Además, en dicha placa he movido los condensadores que había en esa zona, consiguiendo así que LibreServo tenga 2mm menos de altura. Para compensar la reducción del regulador lineal, he añadido vías y hecho planos para una mejor disipación del calor. Con un voltaje "normal" de uso (menos de 15V) no debería de haber ningún problema, pero si nos acercamos a los 18-20V y vemos que el regulador se calienta en exceso, siempre se podría poner la versión anterior (encapsulado DPAK) ya que el footprint lo he hecho compatible.

Cambio de regulador
Cambio de regulador en LibreServo

 

  • Cálculo de las resistencias LED

En las primeras versiones, decidí usar el mismo valor de resistencia para los tres leds, y poner en línea dos para el led rojo. El resultado era más o menos el adecuado, pero el consumo era muy elevado y el blanco que se obtenía no era un blanco todo lo puro que se pudiera obtener, lo cual realmente no tiene ninguna importancia, pero ya de hacer las cosas, se hacen bien. Hay cierta documentación al respecto de cómo conseguir un blanco puro, y a pesar de lo que podría uno pensar, la relación entre la intensidad RGB (rojo verde y azul) debería de ser dependiendo del azul 3, 6 y 1 respectivamente o 4, 10 y 1. Sí, efectivamente el blanco es verde en su mayoría con un poco de rojo y muy poco de azul.
Con las resistencias de la versión v1.b (320, 160 y 160 ohms), el consumo del led RGB al 100% es de 14.35mA y la relación entre los colores es 1.5, 5.7 y 1. Consumo muy alto y con una relación bastante pobre.
No voy a entrar en cómo he hecho los cálculos matemáticos, si alguien lo quisiera que me lo pida en los comentarios y haré una entrada al respecto, pero sin entrar en mucho detalle:

 

  • Con las tres resistencias a 330 Ohms se consigue un consumo de 9.32mA y una relación 2.9, 5.9, 1, algo muy próximo a 3-6-1.
  • Con las resistencias 330, 300 y 470 se consigue un consumo de 8.9mA y una relación de 3.95, 9, 1, algo próximo a 4-10-1.

Sin las resistencias y pruebas reales no podemos saber exactamente qué valores vamos a necesitar ni si nuestro led RGB sigue la relación 3-6-1 o 4-10-1, así que con las PCB he comprado varias resistencias de diferentes valores para poder ir probando y encontrar el valor idóneo.

 

  • Poner agujeros pasantes para un posible encoder

Aunque no esté en mis objetivos cercanos, he puesto dos pines ésta vez con agujeros pasantes en vez de sólo un pad smd, para poder probar un encoder en el futuro.

 

  • Generar dos pines de alimentación

A la hora de probar LibreServo cuando aún no se tienen montadas las tres placas, facilita muchísimo la tarea tener dos pines dedicados de alimentación y tierra juntos para programarlo más sencillamente.

Nuevos pines de alimentación y para un futuro encóder
Nuevos pines

 

  • Modificar footprint resistencia detector corriente

Se ha reducido el footprint de la resistencia que se usa para detectar la corriente, así como de varios encapsulados de condensadores (para poder compactar más los componentes).

 

  • Modificar piso dos resistencias para que entren dentro de la caja del servo

En la segunda placa se han movido unas resistencias que en la versión anterior quedarían justo en el corte de la caja del Servo.

 

  • Modificar pistas serie para que sean curvas

Según el datasheet de SN74LVC2G125 (página 14) las pistas recomendadas para las líneas de transmisión y recepción son curvas, así que se han modificado dichas líneas así como varias más por facilitar y mejorar el routing en dicha placa.

 

  • Añadidos planos

Se han añadido planos eléctricos en todas las placas.

Añadidos planos y pistas con curvas
Nuevos planos

 

  • Modificar cableado conectores (orden al revés)

Tras ver los cables que compré para conectarme a LibreServo (cables compatibles con JST-PH), me di cuenta que los cables por defecto tienen el cable rojo y negro en el lado contrario al que yo esperaba. Así que he cambiado el orden en la placa para que coincidan los colores con lo esperado en la placa.

 

  • Mover el gate de mosfet para que no coincida con el conector

Uno de los gateMosfet (FAN3227/3) coincidían en el montaje con la pestaña del conector JST de la placa inmediatamente superior. Para evitar posibles problemas futuros se ha movido el gateMosfet.

 

  • Agrandar footprints de gatemosfet y un pelo en el stm32

Para facilitar la soldadura y sobretodo el análisis posterior con el multímetro, se han alargado un poco los pads del microcontrolador y del gateMosfet (ambos con encapsulados de tipo QFN).

 

  • Ordenar esquema

El esquema de LibreServo ha sufrido un cambio radical. Facilitando así su lectura y comprensión de los componentes y su disposición en las distintas placas.

 

  • Añadir nombre y versión a la placa

Se han añadido a las placas el nombre y la versión de Libreservo, LibreServo v1.c en éste caso para facilitar identificar las placas en versiones futuras.

 

  • Agrandados agujeros montaje

Se han agrandado los agujeros previstos para la pieza 3D que alinee LibreServo con el eje del servomotor.

 

Nuevos esquemas y diseños de LibreServo v1.c

Esquema LibreServo v1.c

 

Galería del PCB de LibreServo v1.c

Suscripción

Recibir un email cuando se publique un nuevo artículo.