
| Ciclo di lettura |
| CASO STANDARD |
| PC --> CMD (READ) |
| ACK (READ) <-- PIC |
| DATA (Dato0) <-- PIC |
| PC --> DATA (Dato0) |
| ACK (Dato valido) <-- PIC |
| DATA (Dato1) <-- PIC |
| FINE DATI |
| PC --> DATA (DatoN) |
| ACK (End Data) <-- PIC |
| COMANDO NON CORRETTO |
| PC --> CMD (READ) |
| ACK (Errore) <-- PIC |
| PC --> CMD (READ) |
| ACK (READ) <-- PIC |
| DATA (Dato0) <-- PIC |
| PC --> DATA (Dato0) |
| ACK (Dato valido) <-- PIC |
| DATA (Dato1) <-- PIC |
| DATO NON CORRETTO |
| DATA (DatoX) <-- PIC |
| PC --> DATA (DatoX) |
| ACK (Dato NON valido) <-- PIC |
| DATA (DatoX) <-- PIC |
| PC --> DATA (DatoX) |
| ACK (Dato valido) <-- PIC |
| DATA (DatoY) <-- PIC |
| Ciclo di scrittura - 1 byte indirizzo |
| CASO STANDARD |
| PC --> CMD (WRITE) |
| ACK (WRITE) <-- PIC |
| PC --> DATA (Indirizzo) |
| PC --> DATA (Dato) |
| DATA (Indirizzo) <-- PIC |
| DATA (Dato) <-- PIC |
| PC --> ACK (Indirizzo valido) |
| PC --> ACK (Dato valido) |
| ACK (scrittura OK) <-- PIC |
| COMANDO NON CORRETTO |
| PC --> CMD (WRITE) |
| ACK (Errore) <-- PIC |
| PC --> CMD (WRITE) |
| ACK (WRITE) <-- PIC |
| PC --> DATA (Indirizzo) |
| PC --> DATA (Dato) |
| DATA (Indirizzo) <-- PIC |
| DATA (Dato) <-- PIC |
| PC --> ACK (Indirizzo valido) |
| PC --> ACK (Dato valido) |
| ACK (scrittura OK) <-- PIC |
| INDIRIZZO NON CORRETTO |
| PC --> CMD (WRITE) |
| ACK (WRITE) <-- PIC |
| PC --> DATA (Indirizzo) |
| PC --> DATA (Dato) |
| DATA (Indirizzo) <-- PIC |
| DATA (Dato) <-- PIC |
| PC --> (Indirizzo NON valido) |
| PC --> DATA (Indirizzo) |
| DATA (Indirizzo) <-- PIC |
| PC --> ACK (Indirizzo valido) |
| ACK (scrittura OK) <-- PIC |
| DATO NON CORRETTO |
| PC --> CMD (WRITE) |
| ACK (WRITE) <-- PIC |
| PC --> DATA (Indirizzo) |
| PC --> DATA (Dato) |
| DATA (Indirizzo) <-- PIC |
| DATA (Dato) <-- PIC |
| PC --> (Dato NON valido) |
| PC --> DATA (Dato) |
| DATA (Dato) <-- PIC |
| PC --> ACK (Dato valido) |
| ACK (scrittura OK) <-- PIC |
| BLOCCO NON CORRETTO |
| PC --> CMD (WRITE) |
| ACK (WRITE) <-- PIC |
| PC --> DATA (Indirizzo) |
| PC --> DATA (Dato) |
| DATA (Indirizzo) <-- PIC |
| DATA (Dato) <-- PIC |
| PC --> (Blocco errato) |
| ACK (Blocco errato) <-- PIC |
| PC --> DATA (Indirizzo) |
| PC --> DATA (Dato) |
| DATA (Indirizzo) <-- PIC |
| DATA (Dato) <-- PIC |
| PC --> ACK (Indirizzo valido) |
| PC --> ACK (Dato valido) |
| ACK (scrittura OK) <-- PIC |
| ERRORE SCRITTURA |
| PC --> CMD (WRITE) |
| ACK (WRITE) <-- PIC |
| PC --> DATA (Indirizzo) |
| PC --> DATA (Dato) |
| DATA (Indirizzo) <-- PIC |
| DATA (Dato) <-- PIC |
| PC --> ACK (Indirizzo valido) |
| PC --> ACK (Dato valido) |
| ACK (scrittura NON OK) <-- PIC |
| Ciclo di scrittura - 2 bytes indirizzo (la parte dopo il wait e' identica a quella per 1 byte di indirizzo) |
| CASO STANDARD |
| PC --> CMD (WRITE XTD) |
| ACK (WRITE XTD) <-- PIC |
| PC --> DATA (MSB Indirizzo) |
| DATA (MSB Indirizzo) <-- PIC |
| PC --> ACK (Indirizzo valido) |
| PC --> DATA (MSB Indirizzo) |
| PC (wait - Tciclo del micro + 1ms) |
| PC --> DATA (Indirizzo) |
| PC --> DATA (Dato) |
| DATA (Indirizzo) <-- PIC |
| DATA (Dato) <-- PIC |
| PC --> ACK (Indirizzo valido) |
| PC --> ACK (Dato valido) |
| ACK (scrittura OK) <-- PIC |
| MSB INDIRIZZO NON CORRETTO |
| PC --> CMD (WRITE XTD) |
| ACK (WRITE XTD) <-- PIC |
| PC --> DATA (MSB Indirizzo) |
| DATA (MSB Indirizzo) <-- PIC |
| PC --> ACK (Indirizzo non valido) |
| PC --> DATA (MSB Indirizzo) |
| DATA (MSB Indirizzo) <-- PIC |
| PC --> ACK (Indirizzo valido) |
| PC --> DATA (MSB Indirizzo) |
| PC (wait - Tciclo del micro + 1ms) |
| [...] |
| Risposte del micro al comando scrittura MCU con EEPROM fino a 256 bytes: |
| SCRITTURA STANDARD |
| PC --> CMD (WRITE) |
| ACK (WRITE) <-- PIC |
| SCRITTURA ESTESA |
| PC --> CMD (WRITE XTD) |
| ACK (NO XTD) <-- PIC |
| MCU con EEPROM oltre i 256 bytes: |
| SCRITTURA STANDARD |
| PC --> CMD (WRITE) |
| ACK (NO WRITE) <-- PIC |
| SCRITTURA ESTESA |
| PC --> CMD (WRITE XTD) |
| ACK (WRITE XTD) <-- PIC |