I've spent a few hours investigating my "dodgy" CF card and improving my CF card test App. My test App now detects errors from the dodgy card whilst passing good cards.
With the dodgy card and the standard CF module (without the R/C filter found in the latest version) I get results as shown below.
The memory block at 9000 is the data being written while the data at 9800 is the data read back. They should be the same.
The program allows the read/verify cycle to be repeated for each sector but it always fails, so either the read errors are totally repeatable or the data is incorrectly written to the card.
Notice how the errors occur on every 4th byte read. It doesn't seem to be dependent on the previous write value. However, I think this was not the case with v1.1 of the test program. One possible reason is that v1.1 did the verify during the sector read. ie. between each byte read from the card. Version 1.2 uses the OTIR and INIR for maximum write and read speeds. The verify then takes place after the read is complete, by comparing the write buffer and read buffer stored in RAM.
Here is an example of what is written to the card and what is read back:
9000: FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF ................
9800: FF FF 00 55 FF 00 FF 55 00 FF FF 55 FF FF 00 55 ...U...U...U...U
See below for the full buffer data.
I've attach the SCM Compact Flash Test App v1.2.0 for your entertainment.
Steve
Small Computer Monitor - RC/Z180
*Ready
*
*g8000
Compact flash card test v1.2.0 by Stephen C Cousins
Card at address $10:
Number of sectors on card: $5503EA00
Card size: 1TB
Card's self diagnostic test passed
WARNING: This will erase all data from the card
Do you wish to continue? (Y/N)
Sector: $00000000 failed: code $04
Verify error detected comparing data read back
Do you wish to retry the verify? (Y/N)
Do you wish to continue? (Y/N)
Sector: $00000001 failed: code $04
Verify error detected comparing data read back
Do you wish to retry the verify? (Y/N)
Do you wish to continue? (Y/N)
Sector: $00000002 failed: code $04
Verify error detected comparing data read back
Do you wish to retry the verify? (Y/N)
failed: code $04
Verify error detected comparing data read back
Do you wish to retry the verify? (Y/N)
Do you wish to continue? (Y/N)
Last write data at $9000
Last read back data at $9800
*
*
*m9000
9000: FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF ................
9010: FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF ................
9020: 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 ................
9030: FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF ................
9040: FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF ................
9050: 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 ................
9060: FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF ................
9070: FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF ................
9080: 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 ................
9090: FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF ................
90A0: FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF ................
90B0: 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 ................
90C0: FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF ................
90D0: FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF ................
90E0: 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 ................
90F0: FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF ................
9100: FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF ................
9110: 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 ................
9120: FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF ................
9130: FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF ................
9140: 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 ................
9150: FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF ................
9160: FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF ................
9170: 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 ................
9180: FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF ................
9190: FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF ................
91A0: 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 ................
91B0: FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF ................
91C0: FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF ................
91D0: 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 ................
91E0: FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF ................
91F0: FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF 00 FF FF ................
9200: AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA .U..U..U..U..U..
9210: 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 U..U..U..U..U..U
9220: F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 ..U..U..U..U..U.
9230: AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA .U..U..U..U..U..
9240: 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 U..U..U..U..U..U
9250: F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 ..U..U..U..U..U.
9260: AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA .U..U..U..U..U..
9270: 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 U..U..U..U..U..U
9280: F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 ..U..U..U..U..U.
9290: AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA .U..U..U..U..U..
92A0: 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 U..U..U..U..U..U
92B0: F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 ..U..U..U..U..U.
92C0: AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA .U..U..U..U..U..
92D0: 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 U..U..U..U..U..U
92E0: F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 ..U..U..U..U..U.
92F0: AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA .U..U..U..U..U..
9300: 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 U..U..U..U..U..U
9310: F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 ..U..U..U..U..U.
9320: AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA .U..U..U..U..U..
9330: 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 U..U..U..U..U..U
9340: F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 ..U..U..U..U..U.
9350: AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA .U..U..U..U..U..
9360: 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 U..U..U..U..U..U
9370: F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 ..U..U..U..U..U.
9380: AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA .U..U..U..U..U..
9390: 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 U..U..U..U..U..U
93A0: F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 ..U..U..U..U..U.
93B0: AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA .U..U..U..U..U..
93C0: 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 U..U..U..U..U..U
93D0: F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 ..U..U..U..U..U.
93E0: AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA .U..U..U..U..U..
93F0: 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 F0 AA 55 U..U..U..U..U..U
*m9800
9800: FF FF 00 55 FF 00 FF 55 00 FF FF 55 FF FF 00 55 ...U...U...U...U
9810: FF 00 FF 55 00 FF FF 55 FF FF 00 55 FF 00 FF 55 ...U...U...U...U
9820: 00 FF FF 55 FF FF 00 55 FF 00 FF 55 00 FF FF 55 ...U...U...U...U
9830: FF FF 00 55 FF 00 FF 55 00 FF FF 55 FF FF 00 55 ...U...U...U...U
9840: FF 00 FF 55 00 FF FF 55 FF FF 00 55 FF 00 FF 55 ...U...U...U...U
9850: 00 FF FF 55 FF FF 00 55 FF 00 FF 55 00 FF FF 55 ...U...U...U...U
9860: FF FF 00 55 FF 00 FF 55 00 FF FF 55 FF FF 00 55 ...U...U...U...U
9870: FF 00 FF 55 00 FF FF 55 FF FF 00 55 FF 00 FF 55 ...U...U...U...U
9880: 00 FF FF 55 FF FF 00 55 FF 00 FF 55 00 FF FF 55 ...U...U...U...U
9890: FF FF 00 55 FF 00 FF 55 00 FF FF 55 FF FF 00 55 ...U...U...U...U
98A0: FF 00 FF 55 00 FF FF 55 FF FF 00 55 FF 00 FF 55 ...U...U...U...U
98B0: 00 FF FF 55 FF FF 00 55 FF 00 FF 55 00 FF FF 55 ...U...U...U...U
98C0: FF FF 00 55 FF 00 FF 55 00 FF FF 55 FF FF 00 55 ...U...U...U...U
98D0: FF 00 FF 55 00 FF FF 55 FF FF 00 55 FF 00 FF 55 ...U...U...U...U
98E0: 00 FF FF 55 FF FF 00 55 FF 00 FF 55 00 FF FF 55 ...U...U...U...U
98F0: FF FF 00 55 FF 00 FF 55 00 FF FF 55 FF FF 00 55 ...U...U...U...U
9900: FF 00 FF 55 00 FF FF 55 FF FF 00 55 FF 00 FF 55 ...U...U...U...U
9910: 00 FF FF 55 FF FF 00 55 FF 00 FF 55 00 FF FF 55 ...U...U...U...U
9920: FF FF 00 55 FF 00 FF 55 00 FF FF 55 FF FF 00 55 ...U...U...U...U
9930: FF 00 FF 55 00 FF FF 55 FF FF 00 55 FF 00 FF 55 ...U...U...U...U
9940: 00 FF FF 55 FF FF 00 55 FF 00 FF 55 00 FF FF 55 ...U...U...U...U
9950: FF FF 00 55 FF 00 FF 55 00 FF FF 55 FF FF 00 55 ...U...U...U...U
9960: FF 00 FF 55 00 FF FF 55 FF FF 00 55 FF 00 FF 55 ...U...U...U...U
9970: 00 FF FF 55 FF FF 00 55 FF 00 FF 55 00 FF FF 55 ...U...U...U...U
9980: FF FF 00 55 FF 00 FF 55 00 FF FF 55 FF FF 00 55 ...U...U...U...U
9990: FF 00 FF 55 00 FF FF 55 FF FF 00 55 FF 00 FF 55 ...U...U...U...U
99A0: 00 FF FF 55 FF FF 00 55 FF 00 FF 55 00 FF FF 55 ...U...U...U...U
99B0: FF FF 00 55 FF 00 FF 55 00 FF FF 55 FF FF 00 55 ...U...U...U...U
99C0: FF 00 FF 55 00 FF FF 55 FF FF 00 55 FF 00 FF 55 ...U...U...U...U
99D0: 00 FF FF 55 FF FF 00 55 FF 00 FF 55 00 FF FF 55 ...U...U...U...U
99E0: FF FF 00 55 FF 00 FF 55 00 FF FF 55 FF FF 00 55 ...U...U...U...U
99F0: FF 00 FF 55 00 FF FF 55 FF FF 00 55 FF 00 FF 55 ...U...U...U...U
9A00: AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 .U.UU..U..UU.U.U
9A10: 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 U..U..UU.U.UU..U
9A20: F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 ..UU.U.UU..U..UU
9A30: AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 .U.UU..U..UU.U.U
9A40: 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 U..U..UU.U.UU..U
9A50: F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 ..UU.U.UU..U..UU
9A60: AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 .U.UU..U..UU.U.U
9A70: 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 U..U..UU.U.UU..U
9A80: F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 ..UU.U.UU..U..UU
9A90: AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 .U.UU..U..UU.U.U
9AA0: 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 U..U..UU.U.UU..U
9AB0: F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 ..UU.U.UU..U..UU
9AC0: AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 .U.UU..U..UU.U.U
9AD0: 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 U..U..UU.U.UU..U
9AE0: F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 ..UU.U.UU..U..UU
9AF0: AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 .U.UU..U..UU.U.U
9B00: 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 U..U..UU.U.UU..U
9B10: F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 ..UU.U.UU..U..UU
9B20: AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 .U.UU..U..UU.U.U
9B30: 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 U..U..UU.U.UU..U
9B40: F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 ..UU.U.UU..U..UU
9B50: AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 .U.UU..U..UU.U.U
9B60: 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 U..U..UU.U.UU..U
9B70: F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 ..UU.U.UU..U..UU
9B80: AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 .U.UU..U..UU.U.U
9B90: 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 U..U..UU.U.UU..U
9BA0: F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 ..UU.U.UU..U..UU
9BB0: AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 .U.UU..U..UU.U.U
9BC0: 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 U..U..UU.U.UU..U
9BD0: F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 ..UU.U.UU..U..UU
9BE0: AA 55 F0 55 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 .U.UU..U..UU.U.U
9BF0: 55 F0 AA 55 F0 AA 55 55 AA 55 F0 55 55 F0 AA 55 U..U..UU.U.UU..U
*