diff --git a/src/bootloader.c b/src/bootloader.c index c803d22..d0d9359 100644 --- a/src/bootloader.c +++ b/src/bootloader.c @@ -423,9 +423,10 @@ void SPIFI_Init() /* В Winbond для выставления QE используется команда 0x01 в 1-м бите 2го статус регистра. */ uint8_t sreg1 = HAL_SPIFI_W25_ReadSREG(&spifi, W25_SREG1); - if (sreg1 > 0x03) sreg1 = 0; // снятие защиты от записи (protection bits) + if (sreg1 > 0x03) sreg1 = 0; // снятие защиты от записи (protection bits) uint8_t sreg2 = HAL_SPIFI_W25_ReadSREG(&spifi, W25_SREG2); - if (!(sreg2 & 0x02)) sreg2 |= 0x02; // установка бита QE (quad enable) + if (!(sreg2 & 0x02)) sreg2 |= 0x02; // установка бита QE (quad enable) + if (sreg2 & 0x40) sreg2 &= ~0x40; // сброс бита CMP, если вдруг он выставился по какой-то причине HAL_SPIFI_W25_WriteSREG(&spifi, sreg1, sreg2); #if CHIP_MODE == 1