Everything except xmodem works
This commit is contained in:
@@ -6,7 +6,8 @@ enum {
|
||||
CMD_INVALID,
|
||||
CMD_WRITE,
|
||||
CMD_TEST,
|
||||
CMD_DUMP
|
||||
CMD_DUMP,
|
||||
CMD_ERASE
|
||||
};
|
||||
|
||||
char line[120];
|
||||
@@ -32,7 +33,7 @@ void setup() {
|
||||
setCtrlPins();
|
||||
|
||||
setAddrPinsOut();
|
||||
setDataPinsIn();
|
||||
setDataPinsOut();
|
||||
//setDataPinsOut();
|
||||
|
||||
Serial.begin(9600, SERIAL_8N1);
|
||||
@@ -84,6 +85,7 @@ byte parseCommand(char c) {
|
||||
case 'w': cmd = CMD_WRITE; break;
|
||||
case 't': cmd = CMD_TEST; break;
|
||||
case 'd': cmd = CMD_DUMP; break;
|
||||
case 'e': cmd = CMD_ERASE; break;
|
||||
default: cmd = CMD_INVALID; break;
|
||||
}
|
||||
|
||||
@@ -122,7 +124,7 @@ void loop() {
|
||||
Serial.println("Wrote: 0x3F");
|
||||
setDataPinsIn();
|
||||
delay(500);
|
||||
Serial.println("Received: ");
|
||||
Serial.print("Received: ");
|
||||
Serial.println(readData(0x0000), HEX);
|
||||
cmd = NULL;
|
||||
break;
|
||||
@@ -136,6 +138,10 @@ void loop() {
|
||||
// }
|
||||
cmd = NULL;
|
||||
break;
|
||||
case CMD_ERASE:
|
||||
eraseROM();
|
||||
cmd = NULL;
|
||||
break;
|
||||
|
||||
case CMD_INVALID:
|
||||
default:
|
||||
@@ -144,6 +150,8 @@ void loop() {
|
||||
Serial.println("Commands: ");
|
||||
Serial.println("w\twrite new firmware");
|
||||
Serial.println("d\tdump firmware");
|
||||
Serial.println("t\tdo a test write and then read");
|
||||
Serial.println("e\terase chip");
|
||||
Serial.println();
|
||||
break;
|
||||
}
|
||||
@@ -154,4 +162,18 @@ void dumpROM() {
|
||||
byte data = readData(0x0000 | i);
|
||||
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();
|
||||
}
|
Reference in New Issue
Block a user