Hola a todos,
llevo bastante avanzado el proyecto que tengo entre manos, y cuando ví la característica de simular I/O para la USART por software a través de MPSIM, pensé que esto me podría ahorrar muuucho tiempo de pruebas.
Sin embargo, despues de dar algunas vueltas con el "estimulador" USART y consultar algunos foros de microchip, la sensación general que tengo es que el tema de la simulación de la USART tiene algunos fallos que, o bien por mi ignorancia o bien por el propio MPLAB IDE (uso la v7.40), el asunto no termina de funcionar correctamente.
Si alguno de vosotros se ha peleado con el tema de la simulación USART, agradecería sus comentarios y/o ayuda.
Por ejemplo, para empezar no sé por qué, pero si le meto el siguiente archivo de estímulos a la simulacion USART, algo tan sencillo como :
//--------
wait 10000 ms
41 42 43
// simplemente mando el paquete "ABC"
//-------------
en cuanto cumplen los 10 segundos de espera, la simulación USART me lanza una interrupcion de RX en toda regla , PIR1<RCIF> = 1, aun cuando tengo explícitamente desactivada esa interrupción ( PIE1<RCIE> = 0 ). De hecho, si marcas un breakpoint en la rutina de handler de la interrupcion de RX e inspeccionas el valor de PIE1 en ella, se ve perfectamente como RCIE = 0..... es decir, estoy en medio de una interrupción a la que teoricamente no debería poder llegar nunca !!!
Se diría que el hecho de inyectar un archivo USART hace que salte la interrupción RX aunque la tengas deshabilitada con RCIE = 0... cosa que evidentemente no puede ser... o algo está muy mal aquí o yo estoy pasando algo gordo por alto.
Otro comportamiento raro que tiene es que en ese mismo breakpoint, que es la llegada del primer caracter (0x41), me salta RCSTA<OERR> = 1 , es decir, me da un overrun del RCREG. Si en teoria el breakpoint detiene completamente la ejecucion del codigo, es imposible que me haga un overrun del RCREG, ya que este es un FIFO de dos niveles. Lo único que se me ocurre es que la USART simulada , de alguna manera que no sé, siga "inyectando" caracteres a pesar del breakpoint, con lo cual hace saltar el overrun.
Como veis, todo muy oscuro.... lo que unido a algunos comentarios de otros usuarios en foros de microchip, donde reconocen que la simulacion de USART está "rota" en varios aspectos, me da la impresion de que esta simulacion no puede usarse con total confianza....
gracias por vuestras opiniones!