Quería realizar el pedido antes de llegar junio, así que intenté correr a última hora para poder terminar el diseño de las primeras placas de LibreServo, y nada más entrar en fabricación, ya no se puede cancelar el pedido, me doy cuenta que la parte de comunicación serie no la había terminado de hacer. ¡Menudo desastre!
En la entrada de selección de componentes de LibreServo ya comenté que iba a usar un puerto serie normal estándar pero en modo bus y full-duplex. Para poder realizar eso, a parte de software, hace falta un poco de protección en la parte hardware. Es la primera vez que realizo algo así, así que muy probablemente los valores de las resistencias no sean las más adecuadas.
Para evitar que LibreServo se queme si dos hablan a la vez, se ha puesto una resistencia en serie de 160 ohms. El motivo era que ya usaba dicho valor en otros componentes (como para el led RGB y el sensor de corriente), y que si dos LibreServo hablasen a la vez, se estaría cortocircuitando con 320 ohms de resistencia... que con un pequeño cálculo nos da que:
3.3V/320≈10mA ⇒Una cifra totalmente soportable por nuestro hardware.
Además, como todos los LibreServo tienen el pin de transmisión conectado a la misma línea, hay que desactivar en nuestro controlador de línea SN74LVC2G125 la salida cuando LibreServo no habla. Y, como en comunicación serie, en el estado de "no hablar" hay que mantener la línea en alto, como pasa en I2C, hay que poner una resistencia de pull-up para mantener la línea en alto siempre que ningún LibreServo hable por el bus y por tanto todos tengan desactivada su salida (se queda en alta impedancia). En la primera versión se ha puesto una resistencia de pull-up de 10Kohms.
Cambios en el esquema en LibreServo v1b
Ambas resistencias, con total seguridad haya que ajustar en una versión posterior, pero para una primera versión deberían de ser valores adecuados. Además, si recordamos de la entrada "Diseños y esquemas de LibreServo", teníamos un problema con los condensadores de desacoplo de 22µF. Hemos aprovechado este segundo pedido y hemos pedido unos condensadores de 22µF en LCSC, que es la tienda de componentes de JLCPCB. En RS-online los condensadores de 10µF@805@20V nos salieron a 0.0416€/unidad (sin estar en stock, con lo que tendremos que esperar por ellos un mes), en cambio, los condensadores 22µF@805@25V nos han salido a 0.0624€/unidad estando en stock y aprovechando el transporte del pedido del PCB.
El nuevo pedido, como vemos, nos ha salido bastante barato... sale barato confundirse.