Una vez mas tiene razon mi estimado JCC40, acabo de chequear con mas detalle el datasheet del 16f877A y encontre las fuentes por la cual se sale del modo sleep:
1. External Reset input on MCLR pin.
2. Watchdog Timer wake-up (if WDT was enabled).
3. Interrupt from INT pin, RB port change or
peripheral interrupt.
y las interrupciones de los perifericos son las siguientes:
1. PSP read or write (PIC16F874/877 only).
2. TMR1 interrupt. Timer1 must be operating as an
asynchronous counter.
3. CCP Capture mode interrupt.
4. Special event trigger (Timer1 in Asynchronous
mode using an external clock).
5. SSP (Start/Stop) bit detect interrupt.
6. SSP transmit or receive in Slave mode (SPI/I2C).
7. USART RX or TX (Synchronous Slave mode).
8. A/D conversion (when A/D clock source is RC).
9. EEPROM write operation completion.
10. Comparator output changes state.
Other peripherals cannot generate interrupts since
during Sleep, no on-chip clocks are present.
justo es lo que mencionabas, solo acepta rx de la usart en modo sincrono-esclavo
: esto me pasa por no leer con mas profundidad el datasheet
, me hubiera ahorrado mucho dolor de cabeza, pero entonces el proteus tiene un bug respecto a eso, ya que para el si se puede hacer rx en modo sleep
Bueno, con esto la duda queda despejada, ahora a hechar ojo a eso de nanowatt.