- LiFePO4 Speicher Test         
Ergebnis 1 bis 9 von 9

Thema: PWM mit Timervorgabewert

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.07.2012
    Beiträge
    201
    Hallo Sauerbruch,

    Danke für deine Antwort.

    Die Displayhintergrundbeleuchtung läuft etwa mit 10,5V und 20-30mA. Die PWM pumpt mir die 5V Betriebsspannung über eine Induktivität in die Höhe. (siehe Schaltung im o.g. Link) Die 31,25kHz reichen aber nur für ca. 10V, 15mA. Da geht noch was!

    Für eine normale LED reicht die "normale" PWM schon aus aber hier geht es um eine Spannungserhöhung.

    Die Frage müsste jetzt eigentlich heißen: Wie funktioniert der "FAST PWM Modus" in Bascom?

    tausend Dank

    mfG
    Mario

    Achso: Die 62,5K stehen oben im Schaltplan, da ich eine 1mH Induktivität verwende wird meine optimale Frequenz anders sein. Aber um das zu testen müßte ich erst mal in diesem Bereich der PWM kommen.

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Okay - es geht Dir also gar nicht um ein variables Pulsweitenverhältnis, sondern Du bräuchtest eher ein Rechtecksignal mit 1:1-Tastverhältnis, aber variabler Frequenz - richtig?

    Fast-PWM ist ja fast das gleiche wie "normales" PWM, nur dass der Zähler halt von 255 nicht wieder rückwärts runterzählt, sondern direkt auf auf 0 gesetzt wird. Die Frequenz des PWM-Signals ist daher doppelt so hoch wie bei "normalem" PWM (Taktfrequenz / (Prescaler * 256)). Mit dem Wert im Output-Compare-Register (OCR) kann dann das Impuls-Pausen-Verhältnis eingestellt werden.

    Für Deine "Pumpe" wäre aber vielleicht der "CTC"-Modus das richtige: CTC heißt Clear Timer on Compare match - und das sagt eigentlich schon alles aus: Der Counter zählt so lange hoch, bis er den Wert im OCR-Register erreicht hat. Ist dies der Fall, wird der entsprechende Ausgang getoggelt und der Timer auf 0 resettet. Du bekommst also ein Rechtecksignal, das immer ein konstantes Tastverhältnis von 1:1 hat (weil´s ja durch Toggeln des Ausgangspins entsteht), aber eine sehr variable Frequenz. Je niedriger der Wert im OCR-Register ist, umso häufiger wird der Ausgang pro Zeiteinheit getoggelt. Eine Formel gibt es auch dazu: f = Taktfrequenz / (2*Prescaler*(OCR + 1)). Bei einem Prescaler von 1 könntest Du also Ausgangsfrequenzen zwischen 8 MHz (OCR=0) und 31,25 KHz (OCR=255) erzeugen. Auf Seite 111 des Datenblattes ist ein Diagramm, das mehr sagt als tausend Worte.

    PWM-Geschichten mit Bascom zu programmieren fand ich immer etwas mühsam und undurchschaubar . Wenn Du das Register TCCR2 selber setzt weißt Du wenigstens, dass alles so ist wie es sein soll. Für Timer2 im CTC-Modus müssten die Bits WGM21 und WGM20 auf 1 und 0 gesetzt werden (CTC-Modus), die Bits COM21 und COM20 auf 0 und 1 ("Toggle OC2 on compare match"), und die Bits CS22, CS21 und CS20 auf 0, 0 und 1 (prescaler = 1). Das Register im Ganzen muss also &B00011001 enthalten - dann sollte es klappen, wenn Pin P.3 auch als Ausgang konfiguriert ist.

    Ich hoffe, das war jetzt nicht zu viel verwirrende Informationen - andernfalls frag´ einfach nochmal nach!

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.07.2012
    Beiträge
    201
    Wow, vielen Dank für die vielen Informationen.

    Ich werde das heut Nachmittag alles mal Versuchen.

    Okay - es geht Dir also gar nicht um ein variables Pulsweitenverhältnis, sondern Du bräuchtest eher ein Rechtecksignal mit 1:1-Tastverhältnis, aber variabler Frequenz - richtig?
    Jein, die Induktivität braucht eine bestimmte Frequenz bei der Sie am effektivsten Arbeitet.
    Diese wollte ich durch testen erst einmal ermitteln - also variable Frequenz.
    Wenn ich diese ermittelt habe, kann diese auch fix bleiben, denn die Helligkeit kann dann über das Tastverhältnis (Schaltschwelle) geändert werden. Kurze Ein-Phase - weniger Energie - dunkleres Display, und umgedreht.
    Funktioniert aktuell auch schon wunderbar, nur ist die maximal Helligkeit erst zu ca. 80% erreicht. Die Ein-Phase sollte auch nicht länger sein als die Aus-Phase da sonst Energie über den MOS-FET (bei mir Transistor) verloren geht (in o.g. Schaltung Kurzschluss).
    Also die Schaltschwelle bei 0 entspricht Display aus, bis maximal ca. 120 entspricht der vollen Beleuchtung (beim 8Bit Timer ).

    mfG
    Mario

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.07.2012
    Beiträge
    201
    So, ich denke jetzt hab ich's mit der Hilfe von Sauerbruch begriffen. Vielen Dank nochmal.
    Den CTC- Modus habe ich nach deinen Angaben zum laufen bekommen und ganz gute Werte bei ca. 70kHz ermittelt.

    Hab das ganze jetzt auf Fast PWM umgebaut. Und auf 62,5kHz eingestellt. Die Helligkeit lässt sich jetzt wunderbar von
    Ocr1a = 0 (Display aus) bis Ocr1a = 70 (ca. 30mA über der Displaybeleuchtung einstellen). Hätte also noch genügend Puffer nach oben.


    Code:
    '8Bit FAST PWM mit 16MHz, Prescaler=1, F=62,5kHz
    
    'Im PWM Modus ausgeschalten
    'Foc1a = 0
    'Foc1b = 0
    
    'Modus 5 FAST PWM
    'Wgm13 = 0
    'Wgm12 = 1
    'Wgm11 = 0
    'Wgm10 = 1
    
    'Prescaler 1
    'Cs12 = 0
    'Cs11 = 0
    'Cs10 = 1
    
    'A=Clear at Match, Set at Bottom / B = Normal Port
    'Com1A1 = 1
    'Com1A0 = 0
    'Com1B1 = 0
    'Com1B0 = 0
    
    'Ins Register schreiben
    Tccr1a = &B10000001
    Tccr1b = &B00001001
    
    'Als Ausgang schalten
    Config Portb.1 = Output
    
    'Schaltschwelle festlegen
    Ocr1a = 0
    So ein wenig Starthilfe im Datenblatt Urwald, nimmt einen erstmal den ersten Schrecken...tausend Dank

    mfG
    Mario

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Wow, das ist ja mal ein sauber auskommentierter Code!!

    Schön dass es klappt - und mit der Zeit wirst Du sehen, dass diese Datenblätter gar nicht so schlimm sind. Im Gegenteil - je länger man ihn ihnen herumstöbert umso mehr entdeckt man, was diese kleinen Controller so alles können

    Weiterhin gutes Gelingen!

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 29.06.2012, 17:20
  2. Software PWM geht mit AT90S2313 und mit ATtiny2313 nicht???
    Von TobiasBlome im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 23.10.2006, 20:21
  3. Antworten: 7
    Letzter Beitrag: 22.02.2005, 17:15
  4. PWM für Servo mit eingebautem PWM gen. (Atmel 2313)
    Von Philipp_c im Forum AVR Hardwarethemen
    Antworten: 11
    Letzter Beitrag: 29.09.2004, 00:45
  5. [ERLEDIGT] DC-Motorregler mit 1,8kHz PWM mit dem Attiny15L. Wie?
    Von Andi170778 im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 08.04.2004, 09:44

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests