@@ -215,7 +215,7 @@ void SPIFlash::_endProcess(void) {
215215 _chipDeselect ();
216216 delay (3 );
217217}
218-
218+ /*
219219//Writes a page of data into a page buffer
220220bool SPIFlash::_writePage(uint16_t page_number, uint8_t *data_buffer) {
221221 if(!_notBusy() || page_number >= 4096 || !_writeEnable())
@@ -241,7 +241,7 @@ bool SPIFlash::_writePage(uint16_t page_number, uint8_t *data_buffer) {
241241 // Erase Security Register and Program Security register
242242
243243 return true;
244- }
244+ }*/
245245
246246// Prints hex/dec formatted data from page reads - for debugging
247247void SPIFlash::_printPageBytes (uint8_t *data_buffer, uint8_t outputType) {
@@ -452,21 +452,27 @@ bool SPIFlash::writeBytes(uint16_t page_number, uint8_t offset, uint8_t *data_bu
452452bool SPIFlash::writePage (uint16_t page_number, uint8_t *data_buffer, bool errorCheck) {
453453 uint8_t temp_buffer[256 ];
454454 char buffer[80 ];
455- _writePage (page_number, data_buffer);
455+ uint32_t address = _getAddress (page_number);
456+
457+ _beginWrite (address);
458+ for (uint16_t i = 0 ; i < 256 ; i++)
459+ _writeNextByte (data_buffer[i]);
460+ _endProcess ();
456461
457462 if (errorCheck)
458463 {
459- readPage (page_number, temp_buffer);
460- for (int a=0 ; a<256 ; ++a) {
461- if (!temp_buffer[a] == data_buffer[a])
464+ _beginRead (address);
465+ uint8_t j;
466+ for (j = 0 ; j < 256 ; j++)
467+ {
468+ if (data_buffer[j] != _readNextByte ())
469+ {
462470 return false ;
463- else
464- {
465- sprintf (buffer, " Writing page (%04x) done" , page_number);
466- Serial.println (buffer);
467- return true ;
468- }
471+ }
469472 }
473+ sprintf (buffer, " Writing page (%04x) done" , page_number);
474+ Serial.println (buffer);
475+ return true ;
470476 }
471477 else
472478 {
@@ -524,7 +530,7 @@ bool SPIFlash::eraseBlock32K(uint16_t page_number) {
524530 return true ;
525531}
526532
527- // Erases one 32k block containing the page to be erased. The blocks are numbered 0 - 15 containing 256 pages each.
533+ // Erases one 64k block containing the page to be erased. The blocks are numbered 0 - 15 containing 256 pages each.
528534// Page 0-255 --> Block 0; Page 256-511 --> Block 1;......Page 3840-4095 --> Block 15
529535bool SPIFlash::eraseBlock64K (uint16_t page_number) {
530536 if (!_notBusy () || !_writeEnable ())
0 commit comments