esp32 ESP-home PWM und Channel, Frequenzen und Aufteilung

selfmade01

Lieutenant
Registriert
Okt. 2012
Beiträge
735
Hallo,
ich bastle hier mit einem ESP32-S2-saola-1 Board.
Dazu verwende ich 8 Pin's des ESP-Boards für PWM-Signale.
Damit steuere ich LED-Treiber wie MW-LDD's an.
Die lassen sich von 0= aus bis 255=volllast dimmen.

Damit das aber auch gut funktioniert benötige auf jedem pin 6 x 1000 Hz und auf 2 pins zwischen 22000 und 33600 Hz.

Man muss hier wohl jedem definierten PWM-Pin oderPWM- pin-Paar einen Channel zuweisen sonst macht er das automatisch und teil auch dann die Frequenzen auf. An der Spannung scheint der ESP dann auch noch selbst zu schrauben.

Als ich für jeden PWM-Pin seinen eigenen PWM-Channel zugewiesen habe (mit Pärchen kannte ich mich nicht aus) hatte ich auch auf dem Test-Board überall meine 3.28V bei voll und 0V bei 0. Super dachte ich.

Jetzt wo die LDD-Treiber angeschlossen sind. erhalte ich auf manchen PWM-Pins nur noch 0.48x Volt

wie das?

Wie muss man das am besten verstehen was, wie , wo, welcher PWM Pin, zu welchem Channel gehört und was passiert dann mit den Frequenzen die man zugewisen hat, teilen sich die sich dann auf... oder was passiert da?

Ich finde da auch keine voll aussagekräftige Doku darüber

Grüße
Jürgen
 
Also, ich kenne den ESP32 nichzt.
22kHz bis 33,6kHz ist für PWM aber schon gehörig schnell. 1000Hz reichen doch locker aus für LED dimmen?!

Mögliche Gründe, warum du 0,48V hast:
  1. Dein Messgerät ist zu träge bei der hohen Frequenz und zeigt einen Mittelwert an
  2. Dein ESP-Board kann nicht schnell genug schalten und es wird aufgrund von minimalen Kapazitäten, wie sie schon die Leiterbahnen bilden können, tatsächlich 0,48V ausgegeben
https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf
https://www.espressif.com/sites/def...sp32_technical_reference_manual_en.pdf#ledpwm

Da ist die Doku. So wie es mir scheint, hat die Clock zwar 80 MHz, aber nach meinem Verständnis kann man diese Frequenz nicht "direkt" an einem oder mehreren Ausgängen nutzen.
 
scooter010 schrieb:
Da ist die Doku. So wie es mir scheint, hat die Clock zwar 80 MHz, aber nach meinem Verständnis kann man diese Frequenz nicht "direkt" an einem oder mehreren Ausgängen nutzen.
Da ich ja das Board zuerst außerhalb also auf dem BreadBoard getestet habe (konnte nur die Spannung bei den PWM-pins messen ) war die Spannung überall gleich.
Zuerst als ich die Kanäle 0-7 nicht zugewiesen hatte, hat das Board sich die PWM-Pins selbst aufgeteilt und da hatte ich unterschiedliche Spannungen.
Ich bin also nach dem Schritt den Pin's Kanäle zuzuwiesen weiter gekommen... aber nun da die LDD#s dranhängen zickt das alles .

Ich hätte noch eine Umbau-Alternative
ich habe auf der Platine noch einen PWM-Mux der kann auf seinen 16 PWM-Pins je 1000Hz... das würde für die LDD-Treiber reichen da sie selbst nur 1000Hz verkraften.

Mich wundert es eben da das Board nur zickt wenn die LDD's angeschlossen sind

Komisch..

edit: sehe gerade auf der von dir verlinkten Doku unter
Table 141.
das wohl das was er mindestens machen müsste wären 1KHz ... laut dem so wie ich es verstehe müsste das reichen.. aber ob ich irgendwelche Teiler etc. da noch angeben muss...
kann ich mir fast nicht vorstellen außer ich möchte etwas ganz spezielles.
Ergänzung ()

vielleicht wird es so etwas deutlicher.
Ich glaube ich habe die Kanäle wieder falsch gewählt denn
ich habe jetzt gemerkt das beim schalten eines bestimmten kanals oder PWM-Pins der auf einem bestimmten Kanal liegt ein anderer sogar ausgeschalteter PWM-Pin dessen LED's mit flackern

Ich glaube ich habe die Trennung von Kanälen falsch eingestellt

siehe Code und die Kommentare dahinter
Code:
output:
  - platform: ledc
    pin: GPIO1
    channel: 0 # ist ok
    inverted: True # 0 = volllast 255= aus
    frequency: 1220 Hz # default 490Hz
    id: led_panel1_GPIO1
  - platform: ledc
    pin: GPIO2
    channel: 0 # ist ok
    inverted: True  # 0 = volllast 255= aus
    frequency: 1220 Hz
    id: led_panel2_GPIO2
  - platform: ledc
    pin: GPIO3
    channel: 1 # ist ok
    frequency: 1000 Hz
    id:  led_4000k_p1_gpio3
  - platform: ledc
    pin: GPIO4
    channel: 2 # ist nicht ok. flackert wenn auf Channel 1 oder 2
    frequency: 1000 Hz
    id: led_4000k_p2_gpio4
  - platform: ledc
    pin: GPIO5
    channel: 3 # ist nicht ok, flackert wenn on und lässt sogar noch die LED's an led_4000k_p1_gpio3 leicht mit flackern
    frequency: 1000 Hz
    id:  led_660nm_p1_gpio5
  - platform: ledc
    pin: GPIO6
    channel: 4 # ist ok
    frequency: 1000 Hz
    id: farred_730nm_gpio6
  - platform: ledc
    pin: GPIO7
    channel: 5
    frequency: 1000 Hz
    id: led_660nm_p2_gpio7 # ist ok flackert nicht und stört keine anderen Kanäle
  #- platform: ledc
  #  pin: GPIO11
  #  channel: 7
  #  frequency: "4096Hz"
  #  id: PANEL_12V_FAN_GPIO11
 
Zuletzt bearbeitet:
Zurück
Oben