From 1cfaf005943342fdeddb2c5fe9626953a0b502a1 Mon Sep 17 00:00:00 2001 From: Eric Helgeson Date: Thu, 9 Jun 2022 10:21:09 -0500 Subject: [PATCH] We only need to test 50 and 25 as the rest are just divided and rounded to full and half. --- src/BlueSCSI.cpp | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/BlueSCSI.cpp b/src/BlueSCSI.cpp index f200244..37f4990 100644 --- a/src/BlueSCSI.cpp +++ b/src/BlueSCSI.cpp @@ -371,21 +371,20 @@ void setup() //Occurs when the RST pin state changes from HIGH to LOW //attachInterrupt(RST, onBusReset, FALLING); - // Try different clock speeds till we find one that is stable. + // Try Full and half clock speeds. LED_ON(); - int mhz = 50; - bool sd_ready = false; - while (mhz >= 32 && !sd_ready) { - if(SD.begin(SdSpiConfig(PA4, DEDICATED_SPI, SD_SCK_MHZ(mhz), &SPI))) { - sd_ready = true; - } - else { - mhz--; - } + int mhz = 0; + if (SD.begin(SdSpiConfig(PA4, DEDICATED_SPI, SD_SCK_MHZ(50), &SPI))) + { + mhz = 50; + } + else if (SD.begin(SdSpiConfig(PA4, DEDICATED_SPI, SD_SCK_MHZ(25), &SPI))) + { + mhz = 25; } LED_OFF(); - if(!sd_ready) { + if(mhz == 0) { #if DEBUG > 0 Serial.println("SD initialization failed!"); #endif @@ -594,8 +593,8 @@ void initFileLog(int success_mhz) { LOG_FILE.print("SPI speed: "); LOG_FILE.print(success_mhz); LOG_FILE.println("Mhz"); - if(success_mhz < 40) { - LOG_FILE.println("SPI under 40Mhz - read https://github.com/erichelgeson/BlueSCSI/wiki/Slow-SPI"); + if(success_mhz == 25) { + LOG_FILE.println("SPI running at half speed - read https://github.com/erichelgeson/BlueSCSI/wiki/Slow-SPI"); } LOG_FILE.print("SdFat Max FileName Length: "); LOG_FILE.println(MAX_FILE_PATH);