From a14ce4a8df5c093aed667c0e85aa39d90af3ce46 Mon Sep 17 00:00:00 2001 From: Michael McMaster Date: Sat, 20 May 2017 13:39:22 +1000 Subject: [PATCH] Save a cycle in fpga memory interface --- CHANGELOG | 3 ++- STM32CubeMX/SCSI2SD-V6/Src/fsmc.c | 11 +++++++++-- rtl/fpga_bitmap.o | Bin 32724 -> 32724 bytes src/firmware/scsiPhy.c | 6 ++++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 92cf01db..6af0a610 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,5 @@ -201705XX 6.1.1 +20170520 6.1.1 + - Performance improvements to improve throughput at all scsi speeds - Add new "turbo" speed option to boost speeds. - May not be reliable, and use is not supported. - Async timings trimmed diff --git a/STM32CubeMX/SCSI2SD-V6/Src/fsmc.c b/STM32CubeMX/SCSI2SD-V6/Src/fsmc.c index 8a7bf907..1e200f7c 100755 --- a/STM32CubeMX/SCSI2SD-V6/Src/fsmc.c +++ b/STM32CubeMX/SCSI2SD-V6/Src/fsmc.c @@ -71,8 +71,15 @@ void MX_FSMC_Init(void) Timing.AddressSetupTime = 2; Timing.AddressHoldTime = 1; - // 1 for synchroniser skew, 1 to skip hold time, 1 to process read, 1 to output - Timing.DataSetupTime = 5;//4 doesn't work ? ?? ? + // Writes to device: + // 1 for synchroniser skew (dbx also delayed) + // 1 to skip hold time + // 1 to write data. + + // Reads from device: + // 3 for syncroniser + // 1 to write back to fsmc bus. + Timing.DataSetupTime = 4; // Allow a clock for us to release signals, plus 3 for the synchroniser to // realise the cycle has ended. Need to avoid both devices acting as outputs diff --git a/rtl/fpga_bitmap.o b/rtl/fpga_bitmap.o index c535bdbd2776567e28eb6c23d61000ac3b2ae2f6..aa8447bf1e496a1cf2d12df11701fc359736f2f9 100644 GIT binary patch literal 32724 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 literal 32724 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 P-TR