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

 

  • Lector de corriente

Como comentamos en la selección de componentes para LibreServo utilizaremos el ZXCT1010 como sensor de corriente, y en la página cuatro de la hoja de datos, datasheet, nos indica qué cálculos requerimos hacer.
Tenemos que tener en cuenta que el máximo voltaje en Vsense (caída en la resistencia que se usa para medir la corriente) que permite el sensor es de 2,5V. Por otro lado, mediante simulación hemos visto que cuando cortocircuitamos los mosfet de un mismo lado del puente en H, uno de los peores casos, podremos llegar a tener picos de 100A, así que si se diera ese caso, querremos que el mosfet se queme pero que con suerte eso no queme el sensor y por ende y al estar en cadena, nuestro microcontrolador.
Con estos datos, buscamos que el sensor saque como máximo 3.3V con una lectura de 100A (para que no nos queme nuestro microcontrolador a 3.3V) teniendo una caída en Rsense menor a 2.5V. Usando la fórmula: VOUT = 0.01 x Vsense x Rout...
3.3 = 0.01*V*Rout
Como en el circuito usábamos ya resistencias de 160 ohmios, fijamos Rout a dicho valor. Sustituyendo...
Vsense = 2.06V (menor a los 2.5V que teníamos como máximo).
Ese voltage, con un máximo de 100A, nos da una Rsense de:
Rsense=2.06/100=0.0206, con lo que usaremos una Rsense de 0.02Ohms por aproximación.
Quedando que en el peor de los casos (con 100A) Vout=3,2V (menor a 3.3V).


¿Cuánto será el mínimo que seríamos capaz de leer?
Sabiendo que nuestro microncotrolador cuenta con un conversor analógico-digital de 12 bits desarrollamos:
3.3V ⇒ 4096 (12bits)
x         ⇒ 1
x = 0.000806
Vout = 0.01 x Vsense x Rout -> 0.000806=0.01*Isense*0.02*160 -> Isense=0.025A=25mA

Al haber escalado todo para funcionar en el peor de los casos, hemos perdido bastante precisión a la hora de calcular la corriente. Puede que en el futuro, al hacer control de par por corriente necesitemos mayor precisión, con lo que necesitaríamos aumentar Rout. Pero para una primera versión, estar protegido ante posibles errores y comprobar que todo funciona, será más que suficiente. En la versión final una Rout de 820 podría ser un valor mucho más adecuado.

  • Reloj

Por limitaciones de espacio y sencillez, escogí un oscilador muy compacto, el SG-210STF, evitando así tener que hacer el cálculo de los condensadores propios de los cristales, una pista al microcontrolador, y el propio espacio que supone el cristal con sus condensadores.

  • Condensadores de desacoplo

En el esquema se ven varios condensadores de 10µF en paralelo en vez de usar uno sólo de 22µF. El motivo principal fue el coste de los condensadores de 22µF, el cual es muy superior a los de 10µF, pero debido a que dichos condensadores están en las placas que están más "holgadas" de espacio, no había problema en duplicar dichos condensadores.

  • Programación

Me hubiera gustado poder programar LibreServo directamente desde el puerto serie... pero por problemas de diseño y del bootloader de nuestro microcontrolador, opté por programarlo mediante st-link usando SWD (serial wire debug).


No creo que haga falta describir mucho más, ya que en el resto de componentes se ha seguido la propia documentación del fabricante. En la siguiente entrada ya tendré el diseño del PCB.

Suscripción

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