From dc0bce859c0a4edf21aa7346505d43f7c49fb3d7 Mon Sep 17 00:00:00 2001 From: Eric Helgeson Date: Wed, 5 Oct 2022 20:25:45 -0500 Subject: [PATCH] Revert "We only need to test 50 and 25 as the rest are just divided and rounded to full and half." This reverts commit 1cfaf005943342fdeddb2c5fe9626953a0b502a1. --- src/BlueSCSI.cpp | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/BlueSCSI.cpp b/src/BlueSCSI.cpp index 16c064c..0773101 100644 --- a/src/BlueSCSI.cpp +++ b/src/BlueSCSI.cpp @@ -450,20 +450,21 @@ void setup() //Occurs when the RST pin state changes from HIGH to LOW //attachInterrupt(RST, onBusReset, FALLING); - // Try Full and half clock speeds. + // Try different clock speeds till we find one that is stable. LED_ON(); - 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; + int mhz = 50; + bool sd_ready = false; + while (mhz > 25 && !sd_ready) { + if(SD.begin(SdSpiConfig(PA4, DEDICATED_SPI, SD_SCK_MHZ(mhz), &SPI))) { + sd_ready = true; + } + else { + mhz--; + } } LED_OFF(); - if(mhz == 0) { + if(!sd_ready) { #if DEBUG > 0 Serial.println("SD initialization failed!"); #endif @@ -669,9 +670,6 @@ void initFileLog(int success_mhz) { LOG_FILE.print("SPI speed: "); LOG_FILE.print(success_mhz); LOG_FILE.println("Mhz"); - 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); LOG_FILE.println("Initialized SD Card - let's go!");