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. De nuevo, el microcontrolador se había quemado. ¡Qué rabia! Volví a soldar uno nuevo, volví a programarlo y... ¡Se volvió a quemar!
Ésto no podía ser coincidencia, así que abrí el Eagle (el programa con el que diseño LibreServo) y no caigo en mi asombro, en mi enfado y en mi "mal hacer". De nuevo había cometido un error de principiante. ¡Está claro que estoy "gafado" con éste proyecto, o que me hago más descuidado con los años!
De nuevo había creado mal un footprint, en este caso el del driver del puerto serie (SN74LVC2G125) esto hizo que la salida del driver estuviera directamente conectado a la salida del microcontrolador... lo cual provocaba un cortocircuito en cuanto el microcontrolador empezaba a transmitir y por lo tanto la consiguiente fumata blanca.
He desoldado el driver serie, soldado un nuevo microcontrolador y seguiré con las pruebas.
Tras desoldar el driver y sacar unos cables auxiliares, ya pude ver con el osciloscopio que LibreServo estaba comunicándose con el exterior. ¡Así que podemos seguir avanzando!