He estado experimentando con una placa Ethernet Starter Kit que me ha prestado un colega en la universidad, es una bestialidad. Ya le he puesto FreeRTOS y he estado desarrollando un driver de UART para ella. El problema está en que cuando se habilita la UART en la subrrutina de interrupción limpio la bandera de transmisión de la ISR, esta no se limpia.
Al principio pensaba que era un problema de compilación o algo así o de mi otra placa de PIC32 la de microingenia. Así que me prestan esta que tiene depuración incorporda e integrada con MPLAB y nada el problema sigue.
Probé habilitando y deshabilitando la bandera por sw, sin el transmisor habilitado y todo bien, en cuanto se habilita el TX, vienen los problemas, por más que uno limpie la bandera eta permanece activa. Cuando el modo de trabajo de señalización de it por Tx es ´11´ el cual según datasheet está reservado todo funciona bien, se puede limpiar la bandera, pero lógicamente el periférico no sabe cuando interrumpir. Cuando se pone cualquiera de los otros nada no funciona como dice el datasheet porque la bandera no se puede limpiar, lo que sí hace el módulo es habilitar IT por Tx según el datasheet. He optado por habilitar el transmisor solamente cuando voy a transmitir y deshabilitarlo cuando acabo, y funciona bien, gracias a FreeRTOS no es el mayor problema hacer el driver así. Pero quiero saber de donde sale el problema.
Saludos
Reinier