There is an undocumented feature in the driver with
PARALLEL_CS_NONE parameter
It causes 12ns timing for NRD/NWE regardless any other timing settings (verified with LA).
Also I do not understand the elapsed time results for the test sketch, where I write/read 1 mil bytes with the same elapsed time for quite different EMB timings:
// Configure parallel bus for 8bits, no CS, A0, and NRD and NWE
Parallel.begin(PARALLEL_BUS_WIDTH_8, PARALLEL_CS_1, 1, 1, 1);
// Configure bus timings.. EXPERIMENTAL
Parallel.setAddressSetupTiming(1,1,1,1);
// NWE, NCSWE, NRD, NCSRD - we do not use NCSs
Parallel.setPulseTiming(4,1,7,1);
Parallel.setCycleTiming(6,9);
START OF THE TEST
WRITING BYTES TO RAMDISK
READING BYTES FROM RAMDISK
SUM = 234000000
ELAPSED WRITE = 680 msec
ELAPSED READ = 846 msec
TEST STOP
// Configure parallel bus for 8bits, no CS, A0, and NRD and NWE
Parallel.begin(PARALLEL_BUS_WIDTH_8, PARALLEL_CS_1, 1, 1, 1);
// Configure bus timings.. EXPERIMENTAL
Parallel.setAddressSetupTiming(1,1,1,1);
// NWE, NCSWE, NRD, NCSRD - we do not use NCSs
Parallel.setPulseTiming(7,1,7,1);
Parallel.setCycleTiming(9,9);
START OF THE TEST
WRITING BYTES TO RAMDISK
READING BYTES FROM RAMDISK
SUM = 234000000
ELAPSED WRITE = 680 msec
ELAPSED READ = 846 msec
TEST STOP
with the sketch from 8MB Ramdisk (external RAM) for Arduino.. - #24 by pito - Other Hardware Development - Arduino Forum
(you may run the sketch without the ramdisk attached).
PS: with 12ns+48ns+12ns=72ns write cycle I would expect faster write than above 680ns per byte. Does it mean the driver (inclusive the "for loop") creates a 610ns overhead??