Passando da MPLAB a MPLAB X, ho riscontrato diverse problematiche nella simulazione del'EUSART (PIC 16F886).
Utilizzando, come nel precedente MPLAB, la funzione "Register Injection" del tool "Stimulus", al massimo sono riuscito ad ottenere la ricezione di un primo carattere, poi ne salta 2, ne riceve uno ecc.
L'unico modo per simulare la seriale è stato fare un file .scl con il quale iniettare i caratteri uno a uno nel registro RCREG e settare il flag RCIF.
Tale file deve essere inserito tramite il pulsante "+SCL" a sinistra del pannello "Stimulus"
Lo allego anche se penso debba esistere una soluzione migliore!
Codice:
testbench for "pic16f886" is
begin
process is
begin
wait for 1000 ms;
RCREG <= 65; //LETTERA 'A'
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 66; // B
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 67; // C
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 68; // D
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 69; // E
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 70; // F
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 71; // G
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 72; // H
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 73; // I
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 74; // J
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 75; // K
PIR1.RCIF <= '1';
wait;
end process;
end testbench;