esp8266 / esp8266/Arduino

Wi-Fi won't start after long SPI transfer

Aperta
#3,984 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
C++
Stelle
16.7k
Fork
13.1k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

### Basic Infos

#### Hardware
Hardware: Wemos D1 mini Pro
Core Version: 2.3.0

### Description

If sending a long SPI sequence before initializing Wi-Fi, Wi-Fi won't connect anymore. Example bellow fails at 29 times sending data over SPI, but works up to 28 times.
If starting Wi-Fi first, the problem seems to disappear.

### Settings in IDE

Module: WeMos D1 R2 & mini
Flash Size: 4MB
CPU Frequency: 80Mhz
Upload Using: SERIAL
Reset Method: nodemcu

### Sketch

```cpp

#include
#include

char ssid[] = "myssid";
char pass[] = "mypassword";

void setup() {
Serial.begin(115200);

Serial.print("setup: Connecting to ");
Serial.println(ssid);

startupLogo(); // this makes the SPI calls

WiFi.begin(ssid, pass);

Serial.print("setup: ");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();

Serial.println("setup: WiFi connected");
}

void loop() {

SPIwrite(D0,0x53122);
Serial.print("Loop!");
delay(500);

}

void SPIwrite(byte nCS, unsigned long theString) {
Serial.printf("SPIwrite: SPI value = 0x%08x ",theString);
Serial.println(theString,BIN);

SPI.begin();
SPI.beginTransaction(SPISettings(15000000, MSBFIRST, SPI_MODE0));
digitalWrite(nCS, LOW); // device select
SPI.transfer(theString); // 8 bits out
digitalWrite(nCS, HIGH); // data transfer to SPI outputs...
SPI.endTransaction();
SPI.end();
}

void startupLogo(){
int i=0;

while (i<29) {
SPIwrite(D3, 0x22122);
i++;
delay(100);
}

}

```

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia con lo sketch allegato, in particolare setup(), startupLogo(), SPIwrite() e la chiamata a WiFi.begin(). Esegui la riproduzione con 28 e poi 29 trasferimenti SPI prima dell’inizializzazione del Wi-Fi; è completata quando il Wi-Fi si connette in modo affidabile dopo il trasferimento più lungo.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
arduino, cpp
Ambito
embedded-iot, networking
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.