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 |