From b14903f2db251b70694d528a31d8567cadd9886f Mon Sep 17 00:00:00 2001 From: Michael McMaster Date: Fri, 21 May 2021 18:17:01 +1000 Subject: [PATCH] Fixes for FMC interface corruption --- STM32CubeMX/2021/Src/fmc.c | 6 +++--- src/firmware/config.c | 2 +- src/firmware/scsiPhy.c | 12 ++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/STM32CubeMX/2021/Src/fmc.c b/STM32CubeMX/2021/Src/fmc.c index cc23ebee..06cab262 100644 --- a/STM32CubeMX/2021/Src/fmc.c +++ b/STM32CubeMX/2021/Src/fmc.c @@ -56,7 +56,7 @@ void MX_FMC_Init(void) /* Timing */ // 1 clock to read the address, + 1 for synchroniser skew - Timing.AddressSetupTime = 4; + Timing.AddressSetupTime = 5; Timing.AddressHoldTime = 2; // Writes to device: @@ -67,12 +67,12 @@ void MX_FMC_Init(void) // Reads from device: // 3 for syncroniser // 1 to write back to fsmc bus. - Timing.DataSetupTime = 8; + Timing.DataSetupTime = 9; // Allow a clock for us to release signals // Need to avoid both devices acting as outputs // on the multiplexed lines at the same time. - Timing.BusTurnAroundDuration = 2; + Timing.BusTurnAroundDuration = 3; Timing.CLKDivision = 16; // Ignored for async Timing.DataLatency = 17; // Ignored for async diff --git a/src/firmware/config.c b/src/firmware/config.c index 81de8b61..091eaf7f 100755 --- a/src/firmware/config.c +++ b/src/firmware/config.c @@ -36,7 +36,7 @@ #include -static const uint16_t FIRMWARE_VERSION = 0x0647; +static const uint16_t FIRMWARE_VERSION = 0x0648; // Optional static config extern uint8_t* __fixed_config; diff --git a/src/firmware/scsiPhy.c b/src/firmware/scsiPhy.c index a883dd5a..df1ebc30 100755 --- a/src/firmware/scsiPhy.c +++ b/src/firmware/scsiPhy.c @@ -122,12 +122,12 @@ scsiReadByte(void) // Ready immediately. setDataCount resets fifos - __disable_irq(); + //__disable_irq(); while (!scsiPhyComplete() && likely(!scsiDev.resetFlag)) { - __WFI(); // Wait for interrupt + //__WFI(); // Wait for interrupt } - __enable_irq(); + //__enable_irq(); uint8_t val = scsiPhyRx(); // TODO scsiDev.parityError = scsiDev.parityError || SCSI_Parity_Error_Read(); @@ -347,12 +347,12 @@ scsiWriteByte(uint8_t value) scsiSetDataCount(1); scsiPhyTx(value); - __disable_irq(); + //__disable_irq(); while (!scsiPhyComplete() && likely(!scsiDev.resetFlag)) { - __WFI(); + //__WFI(); } - __enable_irq(); + //__enable_irq(); } void -- 2.38.5