From db64fd9f98523e10e99c19c1d89dae6091148196 Mon Sep 17 00:00:00 2001 From: Markus Sattler Date: Fri, 8 May 2015 15:27:32 +0200 Subject: [PATCH] fix SPI run on system clock --- hardware/esp8266com/esp8266/libraries/SPI/SPI.cpp | 6 +++++- libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/hardware/esp8266com/esp8266/libraries/SPI/SPI.cpp b/hardware/esp8266com/esp8266/libraries/SPI/SPI.cpp index 2523e689f..740401c3a 100644 --- a/hardware/esp8266com/esp8266/libraries/SPI/SPI.cpp +++ b/hardware/esp8266com/esp8266/libraries/SPI/SPI.cpp @@ -43,7 +43,6 @@ void SPIClass::begin() { pinMode(MISO, SPECIAL); ///< GPIO12 pinMode(MOSI, SPECIAL); ///< GPIO13 - GPMUX = 0x105; // note crash if SPI flash Frequency < 40MHz SPI1C = 0; setFrequency(1000000); ///< 1MHz SPI1U = SPIUMOSI | SPIUDUPLEX | SPIUSSE; @@ -187,6 +186,11 @@ void SPIClass::setFrequency(uint32_t freq) { } void SPIClass::setClockDivider(uint32_t clockDiv) { + if(clockDiv == 0x80000000) { + GPMUX |= (1 << 9); // Set bit 9 if sysclock required + } else { + GPMUX &= ~(1 << 9); + } SPI1CLK = clockDiv; } diff --git a/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp b/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp index cae7632fb..c6be8c177 100644 --- a/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp +++ b/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp @@ -153,7 +153,7 @@ void Adafruit_ILI9341::writedata(uint8_t c) { static inline void spi_begin(void) __attribute__((always_inline)); static inline void spi_begin(void) { #ifdef ESP8266 - SPI.beginTransaction(SPISettings(40000000, MSBFIRST, SPI_MODE0)); + SPI.beginTransaction(SPISettings(80000000, MSBFIRST, SPI_MODE0)); #else SPI.beginTransaction(SPISettings(8000000, MSBFIRST, SPI_MODE0)); #endif