Forum: Mikrocontroller und Digitale Elektronik ESP32 VS Code Arduino Framework CPU Takt


von David P. (devryd)


Lesenswert?

hallo zusammen,
ich habe gerade mit dem ESP32 angefangen und suche eine Möglichkeit den 
CPU Takt unter VS Code einzustellen. Ich weiß, dass es in der Arduino 
IDE geht, finde aber die passende Einstellung in VS Code nicht. Ich 
weiß, dass es oft nicht sinnvoll ist den Takt zu reduzieren um Strom zu 
sparen, ich glaube aber, dass mein derzeitiges Entwicklungsboard ein 
Problem mit der Stromversorgung hat. Auf vollen 240MHz funktioniert 
Bluetooth nur sehr sporadisch. Wenn ich in der Arduino IDE den Takt 
reduziere, funktioniert es.

Edit: hier noch der Code. Ist nur ein Beispiel aus dem Internet, reicht 
aber zum Testen bis jetzt
1
#include "BluetoothSerial.h" 
2
3
// init Class:
4
BluetoothSerial ESP_BT; 
5
6
// init PINs: assign any pin on ESP32
7
int led_pin_1 = 4;
8
int led_pin_2 = 0;
9
int led_pin_3 = 2;     // On some ESP32 pin 2 is an internal LED, mine did not have one
10
11
// Parameters for Bluetooth interface
12
int incoming;
13
14
void setup() {
15
  Serial.begin(19200);
16
  ESP_BT.begin("ESP32_Control"); //Name of your Bluetooth interface -> will show up on your phone
17
18
  pinMode (led_pin_1, OUTPUT);
19
  pinMode (led_pin_2, OUTPUT);
20
  pinMode (led_pin_3, OUTPUT);
21
}
22
23
void loop() {
24
  
25
  // -------------------- Receive Bluetooth signal ----------------------
26
  if (ESP_BT.available()) 
27
  {
28
    incoming = ESP_BT.read(); //Read what we receive 
29
30
    // separate button ID from button value -> button ID is 10, 20, 30, etc, value is 1 or 0
31
    int button = floor(incoming / 10);
32
    int value = incoming % 10;
33
    
34
    switch (button) {
35
      case 1:  
36
        Serial.print("Button 1:"); Serial.println(value);
37
        digitalWrite(led_pin_1, value);
38
        break;
39
      case 2:  
40
        Serial.print("Button 2:"); Serial.println(value);
41
        digitalWrite(led_pin_2, value);
42
        break;
43
      case 3:  
44
        Serial.print("Button 3:"); Serial.println(value);
45
        digitalWrite(led_pin_3, value);
46
        break;
47
    }
48
  }
49
}

: Bearbeitet durch User
von Andree S. (amshh)


Lesenswert?

Passiert bei platformio in der platformio.ini:

Für 240MHz:
board_build.f_cpu = 240000000L

von David P. (devryd)


Lesenswert?

Perfekt, danke
240mhz ist auch der Standart oder?

von Stefan F. (Gast)


Lesenswert?

David P. schrieb:
> Ich weiß, dass es oft nicht sinnvoll ist den Takt zu reduzieren um
> Strom zu sparen, ich glaube aber, dass mein derzeitiges
> Entwicklungsboard ein Problem mit der Stromversorgung hat.

Dann löse das doch erst mal. Denn so großartig weniger wird das nicht, 
wenn du nur die Taktfrequenz änderst. Mit zu schwacher Stromversorgung 
wird er niemals stabil laufen.

Es ist ein ziemlich häufiger Fehler, die Stromversorgung auf die 
durchschnittliche Stromaufnahme auszulegen, anstatt auf die maximale.

von David P. (devryd)


Lesenswert?

Ich weiß nicht, ob es genau an der Stromversorgung hängt, das war nur 
das einzige was mir eingefallen ist.

von Stefan F. (Gast)


Lesenswert?

David P. schrieb:
> Ich weiß nicht, ob es genau an der Stromversorgung hängt, das war nur
> das einzige was mir eingefallen ist.

Und das erste, was man überprüfen sollte. Das kann man doch ausrechnen. 
Für den ESP kannst du 500mA ansetzen. Was brauchst du sonst noch und wie 
viel liefert dein Netzteil und der Spannunsgregler?

von David P. (devryd)


Lesenswert?

Bei meinem Board war vorher ein AMS1117(?) verbaut, falls ich mich 
richtig erinnere. Diesen habe ich aber irgendwann mal gegen einen 
MCP1700 getauscht, aufgrund des geringeren Leerlaufstroms. Ich hatte 
knapp über 200mA gefunden als Maximalstrom für den ESP32. Dafür wäre der 
MCP1700 ja genug. Scheinbar habe ich da den falschen Wert gefunden. 
Sonst betreibe ich gerade nichts. Es geht erstmal darum, die Software 
zum laufen zu bekommen

von Stefan F. (Gast)


Lesenswert?

Der MCP1700 ist definitiv zu schwach.

> Es geht erstmal darum, die Software zum laufen zu bekommen

Erstmal muss die Stromversorgung stimmen, davon hängt alles weitere ab. 
Solange die Hardware nicht in Ordnung ist wird selbst perfekte Software 
nicht stabil laufen.

von David P. (devryd)


Lesenswert?

Stefan ⛄ F. schrieb:
>> Es geht erstmal darum, die Software zum laufen zu bekommen
>
> Erstmal muss die Stromversorgung stimmen, davon hängt alles weitere ab.
> Solange die Hardware nicht in Ordnung ist wird selbst perfekte Software
> nicht stabil laufen.

Das war nur als Erklärung gemeint, warum nichts anderes verbaut ist. Mit 
instablier Hardware lässt sich natürlich nicht arbeiten. Kannst du etwas 
stärkeres als einen MCP1700 empfehlen?
Kann ich einfach 2 davon parallel schalten?

von Stefan F. (Gast)


Lesenswert?

David P. schrieb:
> Kannst du etwas stärkeres als einen MCP1700 empfehlen?

Ja, siehe http://stefanfrings.de/esp8266/index.html#power

> Kann ich einfach 2 davon parallel schalten?

Das habe ich noch nie versucht. Wenn du ein Oszilloskop hast, kannst du 
es ausprobieren. Würde mich interessieren, ob es gut klappt.

von David P. (devryd)


Lesenswert?

Oszilloskop habe ich leider keins.
Dann installiere ich wohl wieder den ams1117 und muss mit dem hohen idle 
Strom leben

von Stefan F. (Gast)


Lesenswert?

Der LF33 zieht nur 0,5mA.

Was hast du denn vor? Dein Programm nutzt den Deep Sleep Modus eh nicht. 
Kann es auch nicht, weil es dann nicht empfangsbereit ist.

von David P. (devryd)


Lesenswert?

Mir ist bewusst dass ich noch keinen deep sleep nutze. Ich wollte 
erstmal Bluetooth an sich zum Laufen bekommen, weil ich damit noch nicht 
gearbeitet habe. Der Rest kommt jetzt nach und nach.

von Stefan F. (Gast)


Lesenswert?

David P. schrieb:
> Mir ist bewusst dass ich noch keinen deep sleep nutze. Ich wollte
> erstmal Bluetooth an sich zum Laufen bekommen, weil ich damit noch nicht
> gearbeitet habe. Der Rest kommt jetzt nach und nach.

Na dann bestelle dir bei Aliexpress ein paar HT7833 und Kondensatoren, 
die kann man immer mal brauchen.

Achtung: Die haben eine andere Pinbelegung, als der AMS1117!

von Wolfgang (Gast)


Lesenswert?

David P. schrieb:
> ich habe gerade mit dem ESP32 angefangen und suche eine Möglichkeit den
> CPU Takt unter VS Code einzustellen.

Du kannst den CPU Takt nicht einstellen, auch in der Arduino IDE nicht.
Du kannst die Frequenz lediglich dem Compiler mitteilen.

von Wolfgang (Gast)


Lesenswert?

David P. schrieb:
> 240mhz ist auch der Standart oder?

Oh, oh

von David P. (devryd)


Lesenswert?

Wolfgang schrieb:
> Oh, oh

Was genau möchtest du mir damit sagen?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.