mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Microcontroller mit 8x PWM?


Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

ich suche nach einem Microcontroller, der mindestens 6x PWM out hat, 
besser wären 8x PWM.

Hat jemand einen geeigneten Chip griffbereit, die Suche und Google 
bringen nicht wirklich etwas brauchbares :-(

Danke Euch und einen schönen Sonntag
Thorsten

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zB. so:

http://www.atmel.com/dyn/products/param_table.asp?...

Gruß Sven

Dann Spalte ablesen ;-)

Autor: jippi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo thorsten
was soll der controller noch erledigen
ansonten können einfach 8 pin zu fuß als PWM programmiert
werden
bernd

Autor: norad (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hätte dir jetzt beinahe den AT89C51ED2 von Atmel empfohlen abr der 
hat nur 4 PWM Ausgänge.

So wie es aussieht must Du es Softwaremässig realisieren.

Ich hab mal sowas versucht, siehe folgendes Programm, um ein Lauflicht 
mit 8 LEDs zu dimmen.

Einfach mal Ausprobieren. Läuft auf AT89C51ED2 aber es sollte auch auf 
jeden anderen 8051er lauffähig sein.

Man benötigt allerdings ProgStudio 2007 von Batronix, hier kannst Du ne 
Demo bis 2k herunterladen:
http://www.progshop.com/versand/software/prog-stud...



flags   EQU     20h
fl      BIT     flags.0
fl1     BIT     flags.1
fl2     BIT     flags.2
fl3     BIT     flags.3
fl4     BIT     flags.4
fl5     BIT     flags.5
fl6     BIT     flags.6
fl7     BIT     flags.7

duty    DATA    30h
duty1   DATA    31h
duty2   DATA    32h
duty3   DATA    33h
duty4   DATA    34h
duty5   DATA    35h
duty6   DATA    36h
duty7   DATA    37h



MAX     EQU     255
MIN     EQU     0
tick    EQU     R0


$INCLUDE "D:\Batronix\Prog-Studio 2007 
Community\Microcontroller\Atmel\89c51ed2.mc"

LJMP  start

ORG   000Bh             ;Interrupt Timer 0
    LJMP ISR_Timer0

start:
    MOV flags,#00
  MOV duty,#100
    MOV duty1,#80
    MOV duty2,#60
    MOV duty3,#40
    MOV duty4,#30
    MOV duty5,#20
    MOV duty6,#10
    MOV duty7,#00
  MOV P1,#00
    MOV  TMOD,#00000010b        ;Timer 0 Initialisieren
  MOV  TH0,#0A0h
  MOV  TL0,#0A0h
  SETB EA
    SETB ET0
    SETB TR0


xxx:

    SJMP xxx



ISR_Timer0:
    PUSH   PSW
    CLR   TF0

  INC tick
    CLR c
    MOV A,tick
  CJNE A,#45,ISRX
        MOV  tick,#0
        SJMP ISRNEXT
ISRX:
        LJMP ISRXXX
ISRNEXT:
        If Not BIT fl  Then  INC duty Else DEC duty
        If Not BIT fl1 Then  INC duty1 Else DEC duty1
        If Not BIT fl2 Then  INC duty2 Else DEC duty2
        If Not BIT fl3  Then INC duty3 Else DEC duty3
        If Not BIT fl4  Then INC duty4 Else DEC duty4
        If Not BIT fl5 Then INC duty5 Else DEC duty5
        If Not BIT fl6  Then INC duty6 Else DEC duty6
        If Not BIT fl7  Then INC duty7 Else DEC duty7

        If duty = MAX Then  SETB fl
        If duty = #MIN   Then  CLR fl
        If duty1 = MAX Then SETB fl1
        If duty1 = #MIN Then   CLR fl1
        If duty2 = MAX Then SETB fl2
        If duty2 = #MIN   Then CLR  fl2
        If duty3 = MAX Then SETB fl3
        If duty3 =  #MIN  Then CLR  fl3
        If duty4 = MAX Then SETB fl4
        If duty4 =  #MIN  Then CLR  fl4
        If duty5 = MAX Then SETB fl5
        If duty5 =  #MIN  Then CLR  fl5
        If duty6 = MAX Then SETB fl6
        If duty6 =  #MIN  Then CLR  fl6
        If duty7 = MAX Then SETB fl7
        If duty7 =  #MIN  Then CLR  fl7
ISRXXX:
    If tick < duty Then  CLR    P1.0 Else  SETB P1.0
    If tick < duty1 Then CLR   P1.1 Else   SETB P1.1
    If tick < duty2 Then CLR   P1.2 Else   SETB P1.2
    If tick < duty3 Then CLR   P1.3 Else   SETB P1.3
    If tick < duty4 Then CLR   P1.4 Else   SETB P1.4
    If tick < duty5 Then CLR   P1.5 Else   SETB P1.5
    If tick < duty6 Then CLR   P1.6 Else   SETB P1.6
    If tick < duty7 Then CLR  P1.7 Else    SETB P1.7

    POP  PSW

RETI

Autor: Michael Werner (michelw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
der AT89C51ED2 hat 5 PWM Kanäle.

Nutze ich auch.
Alternativ der 8051F410 von Silabs. Kostet 5 - 7 € , hat 6 PWM bis yu 16 
Bit.
Braucht keinen ext. Oszillator, keine Resetbeschaltung.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die meisten LPC2000 haben 6 PWMs.

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vielen Dank für die Infos, werde mir die Datenblätter mal anschauen.

Der Controller soll eine Multieinspritzung bei einem Heizungsbrenner 
steuern. Dieser soll sechs Einspritzdüsen bekommen, die unterschiedlich 
angesteuert werden können.

Gruß
Thorsten

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieh dir mal den TMS 470 von TI an( ARM 7 TDMI).
Der kann je nach Ausführung zwischen 24 und 32 PWM mit niedriger µSec 
Auflösung.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Thorsten (Gast)

>Der Controller soll eine Multieinspritzung bei einem Heizungsbrenner
>steuern. Dieser soll sechs Einspritzdüsen bekommen, die unterschiedlich
>angesteuert werden können.

Dafür reicht Soft-PWM locker aus. Das kann fast jeder uC.

MFG
Falk

Autor: Ulli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... und wenn die Software-PWM genau in dem Moment abstürzt, wenn sie 
"hi" ausgibt, dann hat er 'ne Sauna ;-)

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Davor schützt auch ne Hardware-PWM nicht von alleine, da bedarf es in 
jedem Fall zusätzlicher anderer Massnahmen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.