Das Programm ist, ich löse das große und spannende Rätsel auf, ein Programm, dass auf einem OLED-I²C-Screen das Adafruit-Logo ein- und ausblendet. Und das will ich mit einem ESP auf 60 FPS hochkriegen, was mit meinem Arduino Due und sogar mit dem Uno geht. Indem man halt die Taktfrequenz auf 1000000 Bit/s und aufwärts stellt. Da kann man wunderbar Animationen aus SD-Karten abspielen, denn bei einer hohen Rate dauert es nur 10 ms und der Bildschirm ist aktualisiert. Beim ESP dagegen dauert es mindestens 18 - 19 ms, plus 2ms Rechenzeit für die Zufallsfunktion, de über den Buffer huscht. Und das ist doof! Ich fürchte, ich muss mir SPI-Displays holen.
Ich habe noch nie ein ESP8266 Modul gehabt, wohl aber ATtiny85, daher mische ich mich mal spekulativ ein.
Crystal Frequency: Das dürfte die Frequenz des Quarzes/Resonators sein. "The crystal frequency ranges from 24 MHz to 52 MHz."
CPU-Frequency: Das dürfte die Prozessorgeschwindigkeit sein. "The ESP8266EX integrates a Tensilica L106 32-bit RISC processor, which ... reaches a maximum clock speed of 160 MHz."
I2C: Hier hängt es vom Display ab, welche Geschwindigkeit möglich ist. Ein I2C-Scanner wie MultiSpeed I2C Scanner gibt Dir Auskunft. Auch 1000 kHz könnten möglich sein. Nach meiner Einschätzung dürfte überwiegend dieser Parameter für die Anzeigegeschwindigkeit verantwortlich sein.
Beim ESP ist das was anderes. Da wird eine Art delay verwendet, um beim I²C bis zum nächsten Clock-Takt zu warten. Und wenn dieses delay auf 1 gesetzt ist, was durch einstellen der Clock-Frequenz via setClock bei mir der Fall ist, was eine Frequenz von ca. 700kHz erzeugt. Und 1 ist der nidrigste, sinnige Wert. Mein Problem ist, dass der ESP an sich nicht schneller kann. Das Display schafft auch 1MHz, vielleicht sogar 1.5MHz, da bin ich mir nicht sicher, ein anderes, älteres Display von mir, was ich bei einem anderen Händler erworben habe, sogar 2Mhz, aber der ESP halt nur diese 700kHz. Und die wollte ich erhöhen, um unter die 161⁄3ms - 2ms zu kommen, denn dann hätte ich 60 FPS.
Das maximum bei I²C ist höher, wie gesagt bei 700kHz bei 160MHz CPU. Und bei SPI gilt für viele µCs: Maximale Geschwindigkeit = CPU-Takt / 2. Und da der CPU-takt auf 160MHz gesetzt werden kann, macht das Sinn.