Hi David,
I have downloaded the test_NANO33BLE branch on github and extended delays in the driver as you suggested:
#define WRITE_DELAY { WR_ACTIVE4; } //M4F @ 60MHz
#define IDLE_DELAY { WR_IDLE2; }
#define READ_DELAY { RD_ACTIVE16; RD_ACTIVE; }
I have also upgraded to an external power supply. The results of running the "LCD_ID_ReadReg" and "diagnose_TFT_support" are attached.
I think I have a rough understanding of the macros in the driver block, but don't fully understand the "read_8()" macro. Should it not be something like?:
#define read_8() ((((NRF_P0->IN & (1<<21)) >> 21) \
| ((NRF_P0->IN & (1 << 27)) >> 26) \
| ((NRF_P1->IN & (1 << 11)) >> 9) \
| ((NRF_P1->IN & (1 << 12)) >> 9) \
| ((NRF_P1->IN & (1 << 15)) >> 11) \
| ((NRF_P1->IN & (1 << 13)) >> 8) \
| ((NRF_P1->IN & (1 << 14)) << 8) \
| ((NRF_P0->IN & (1 << 23)) << 16)))
rather than:
#define read_8() ((((NRF_P0->IN & (1<<3)) >> 3) \
| ((NRF_P0->IN & (1 << 3)) >> 2) \
| ((NRF_P1->IN & (1 << 0)) << 2) \
| ((NRF_P1->IN & (1 << 12)) >> 9) \
| ((NRF_P1->IN & (1 << 13)) >> 9) \
| ((NRF_P1->IN & (1 << 7)) >> 2) \
| ((NRF_P1->IN & (1 << 4)) << 2) \
| ((NRF_P0->IN & (1 << 2)) << 5)))
I'm presuming the data being read is in the same order as the data being written e.g. data[0] corresponds to D0 (P0.21)
diagnose_TFT_suuport_results.txt (39 Bytes)
LCD_ID_Readreg_RESULTS.txt (1.55 KB)