Everything except xmodem works

This commit is contained in:
maddiebaka
2024-02-16 19:06:11 -05:00
parent 282bc84e35
commit fad8ab3c4b

View File

@@ -6,7 +6,8 @@ enum {
CMD_INVALID, CMD_INVALID,
CMD_WRITE, CMD_WRITE,
CMD_TEST, CMD_TEST,
CMD_DUMP CMD_DUMP,
CMD_ERASE
}; };
char line[120]; char line[120];
@@ -32,7 +33,7 @@ void setup() {
setCtrlPins(); setCtrlPins();
setAddrPinsOut(); setAddrPinsOut();
setDataPinsIn(); setDataPinsOut();
//setDataPinsOut(); //setDataPinsOut();
Serial.begin(9600, SERIAL_8N1); Serial.begin(9600, SERIAL_8N1);
@@ -84,6 +85,7 @@ byte parseCommand(char c) {
case 'w': cmd = CMD_WRITE; break; case 'w': cmd = CMD_WRITE; break;
case 't': cmd = CMD_TEST; break; case 't': cmd = CMD_TEST; break;
case 'd': cmd = CMD_DUMP; break; case 'd': cmd = CMD_DUMP; break;
case 'e': cmd = CMD_ERASE; break;
default: cmd = CMD_INVALID; break; default: cmd = CMD_INVALID; break;
} }
@@ -122,7 +124,7 @@ void loop() {
Serial.println("Wrote: 0x3F"); Serial.println("Wrote: 0x3F");
setDataPinsIn(); setDataPinsIn();
delay(500); delay(500);
Serial.println("Received: "); Serial.print("Received: ");
Serial.println(readData(0x0000), HEX); Serial.println(readData(0x0000), HEX);
cmd = NULL; cmd = NULL;
break; break;
@@ -136,6 +138,10 @@ void loop() {
// } // }
cmd = NULL; cmd = NULL;
break; break;
case CMD_ERASE:
eraseROM();
cmd = NULL;
break;
case CMD_INVALID: case CMD_INVALID:
default: default:
@@ -144,6 +150,8 @@ void loop() {
Serial.println("Commands: "); Serial.println("Commands: ");
Serial.println("w\twrite new firmware"); Serial.println("w\twrite new firmware");
Serial.println("d\tdump firmware"); Serial.println("d\tdump firmware");
Serial.println("t\tdo a test write and then read");
Serial.println("e\terase chip");
Serial.println(); Serial.println();
break; break;
} }
@@ -155,3 +163,17 @@ void dumpROM() {
Serial.println(data, HEX); Serial.println(data, HEX);
} }
} }
void eraseROM() {
setDataPinsOut();
writeByte(0xAA, 0x5555);
writeByte(0x55, 0x2AAA);
writeByte(0x80, 0x5555);
writeByte(0xAA, 0x5555);
writeByte(0x55, 0x2AAA);
writeByte(0x10, 0x5555);
delay(100);
setDataPinsIn();
}