diff --git a/NORFlasherFirmware.ino b/NORFlasherFirmware.ino index 7c50908..0a7d8aa 100644 --- a/NORFlasherFirmware.ino +++ b/NORFlasherFirmware.ino @@ -25,14 +25,16 @@ uint16_t addressPage = 0; bool receiveBlockHandler(void *blk_id, size_t idSize, byte *data, size_t dataSize) { unsigned int id = *((int *) blk_id); - unsigned long page = (id - 1) * DATA_LEN; - addressPage += page; + //unsigned long page = (id - 1) * DATA_LEN; + //addressPage += page; for (int i = 0; i < dataSize; i++) { unsigned long index = i + addressPage; programData(data[i], index); //programData(id, i); } + addressPage += DATA_LEN; + return true; } @@ -144,6 +146,7 @@ void loop() { switch (cmd) { case CMD_WRITE: setDataPinsOut(); + addressPage = 0; Serial.println("Burn new ROM: Waiting for an xmodem transfer.."); if (xmodem.receive() == true) { delay(1000); @@ -172,7 +175,7 @@ void loop() { //cmd = NULL; break; case CMD_ERASE: - //eraseROM(); + eraseROM(); cmd = NULL; break; diff --git a/ROMWireProtocol.cpp b/ROMWireProtocol.cpp index 3bb714a..302c34a 100644 --- a/ROMWireProtocol.cpp +++ b/ROMWireProtocol.cpp @@ -81,7 +81,7 @@ void writeByte(byte data, unsigned long address) { digitalWrite(OE, HIGH); digitalWrite(PGM, HIGH); - delayMicroseconds(10); + delayMicroseconds(20); digitalWrite(PGM, LOW); delayMicroseconds(3);