We only need to test 50 and 25 as the rest are just divided and rounded to full and half.

This commit is contained in:
Eric Helgeson 2022-06-09 10:21:09 -05:00
parent 07961108c7
commit 1cfaf00594
1 changed files with 12 additions and 13 deletions

View File

@ -371,21 +371,20 @@ void setup()
//Occurs when the RST pin state changes from HIGH to LOW //Occurs when the RST pin state changes from HIGH to LOW
//attachInterrupt(RST, onBusReset, FALLING); //attachInterrupt(RST, onBusReset, FALLING);
// Try different clock speeds till we find one that is stable. // Try Full and half clock speeds.
LED_ON(); LED_ON();
int mhz = 50; int mhz = 0;
bool sd_ready = false; if (SD.begin(SdSpiConfig(PA4, DEDICATED_SPI, SD_SCK_MHZ(50), &SPI)))
while (mhz >= 32 && !sd_ready) { {
if(SD.begin(SdSpiConfig(PA4, DEDICATED_SPI, SD_SCK_MHZ(mhz), &SPI))) { mhz = 50;
sd_ready = true; }
} else if (SD.begin(SdSpiConfig(PA4, DEDICATED_SPI, SD_SCK_MHZ(25), &SPI)))
else { {
mhz--; mhz = 25;
}
} }
LED_OFF(); LED_OFF();
if(!sd_ready) { if(mhz == 0) {
#if DEBUG > 0 #if DEBUG > 0
Serial.println("SD initialization failed!"); Serial.println("SD initialization failed!");
#endif #endif
@ -594,8 +593,8 @@ void initFileLog(int success_mhz) {
LOG_FILE.print("SPI speed: "); LOG_FILE.print("SPI speed: ");
LOG_FILE.print(success_mhz); LOG_FILE.print(success_mhz);
LOG_FILE.println("Mhz"); LOG_FILE.println("Mhz");
if(success_mhz < 40) { if(success_mhz == 25) {
LOG_FILE.println("SPI under 40Mhz - read https://github.com/erichelgeson/BlueSCSI/wiki/Slow-SPI"); 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.print("SdFat Max FileName Length: ");
LOG_FILE.println(MAX_FILE_PATH); LOG_FILE.println(MAX_FILE_PATH);