Hallo!
Hab zur Zeit folgendes Problem:
Es sollen für eine LED Ansteuerung (R,G,B) 3 PWM Signale erzeugt werden.
Die PWM Werte werden über ein einfaches Protokoll über eine serielle
Scnittstelle empfangen.
Nur irgendwie hab ich das Gefühl das fast alle (halbwegs erhältlichen)
MCUs Immer nur 2 max. PWMs pro Timer können. Sicher könnt ich 2 Timer
"gleichschalten" aber dann bleibt für den Programmablauf meißt keiner
übrig weil eine CPU mit 3 Timer dann oft schon wieder eine (Preis)Klasse
höher liegt. Oder überseh ich irgendwas? (sooooviel hab ich mit
Mikrocontrollern in der Regel nicht zu tun)
So schreibt zwar TI bei den MSP430 was von 3CCR aber mehr als 2
sinnvolle PWM Signale bekomm ich da nicht raus (weil das CCR0 Register
braucht man ja für den Vorgabenwert). Die Varianten mit den 7CCR sind
dann wieder sündhaft teuer und groß.
ATMEL AVR hat sowieso irgendwie immer nur OCxA und OCxB kommt mir vor
und oft nur 8 Bit PWM.
PIC hab ich nur überflogen da nicht sehr sympatisch, scheint sowas aber
auch nicht zu bieten.
Was ich halt brauchen würd sind: 3PWMs (mind. 12 Bit) die nur 1 Timer
verbrauchen, einen 2ten Timer für Programmsteuerung, einen externen
Interruptpin und einen UART, 4kB Flash, 256Byte Ram, und irgendein
klitzekleines (QFN) sagen wir mal 20pin Gehäuse. Stückpreis sollte sowas
1,5€ bei 10Stück sein (falls dann mal mehr wird entsprechend weniger).
Habt ihr nen Geheimtip? Gibts vieleicht was 8051er artiges?
Billige Entwicklungsumgebung wär halt fürn Anfang auch wichtig.
MfG Oli
Das liegt wohl daran, daß diese MCUs für solch anspruchsvolle Aufgaben
nicht konzipiert sind. Aber auch die Doppelkern CPUs bieten kein PWM im
geforderten Maß.
Blinkende LEDs sind eben eine richtige Herausforderung :-)
olitheone wrote:
> Was ich halt brauchen würd sind: 3PWMs (mind. 12 Bit) die nur 1 Timer> verbrauchen...
Wie wäre es mit Software-PWM? Alles eine Frage der Anforderung (z.B.
Frequenz).
Unter den PIC30 sind einige, die auf PWM spezialisiert sind und eine
entsprechend hohe Anzahl PWMs implementieren.
Auch allerlei LPC2000 sind dahingehend gut ausgestattet.
Bei Atmel solltest du mal unter AT90PWM suchen. Zwar eher für
Motorsteuerung gedacht, aber evtl. auch dafür nutzbar.
Infineon's XC866 ist ganz nett für sowas. Hat eine 3-phasige PWM-Einheit
drauf (CAPCOM6). Weiß nur nicht wie man als Bastler an die Dinger ran
kommt.
Aber wie auch schon die Vorredner erwähnt haben, um ne LED anzusteuern
kann man auch locker alles in Software machen. Es reicht ja ne Frequenz
von 100Hz.
Hallo!
@Gast:
Anspruchsvoll? Ok wenn ich mit der PWM nen Motor betreib und alle 10us
ne neue Vorgabe mach (für z.B. Sinusansteuerung) aber bei meiner
Anwendung kommt max. alle 100ms ein neuer Wert.
Es ist halt generell meine Frage was es den MCU Herstellern so schwer
macht mehr PWMs an einen Timer zu koppeln (die muß auch keinen
Spezialitäten wie symmetrische PWM oder so können). Oder bin ich der
einzige der sowas braucht. Ich erinnere mich dunkel an ein Praktikum in
meiner Ausbildung wo wir bei einem C517 mit einem Timer ein ganzes 8Bit
Port PWMen konnten.
@Thomas & Jörg:
Hmmm - an SoftPWM hab ich garnet gedacht. Meint ihr das geht sich aus?
3x PWM bei 12Bit Ausflösung bei ca. 120Hz PWM Frequenz und zusätzlich
die Protokollverarbeitung (wird in die Richtung verstümmeltes DALI
Protokoll gehen)? Die CPU soll nicht allzuschnell laufen müssen
(vielleicht interner Oszillator) und wichtig ist auch bei hoher UART
Last kein Flackern oder so zu sehen.
@Andreas Kaiser:
LPC 2101 würd vom Preis her fast hinkommen, jedoch zu groß und mit
Dual-Versorgung zu nervig :-)
MfG Oli
@Eduard:
Interner Oszillator und UART ist problematisch ich weiß aber bei 1200Bps
sollts noch laufen.
Der PIC is übrigends leider zu teuer.
@rufus:
Das is genau so ein MSP430 Derivat mit dem 7CCR welches nicht unter 6€
zu haben ist.
Trotzdem mal danke an alle!
MfG Oli
olitheone wrote:
> @Eduard:> Interner Oszillator und UART ist problematisch ich weiß aber bei 1200Bps> sollts noch laufen.
Wieder mal einer, der bei Prozentrechnung geschlafen hat...
olitheone wrote:
> Das is genau so ein MSP430 Derivat mit dem 7CCR welches nicht unter 6€> zu haben ist.
Der AT89LP4052 kostet bei progshop 1,73€ ab 18St.
Durch die Interruptprioritäten kann man die Software-PWM mit der
höchsten Priorität machen und der UART eine niedrigere geben.
120Hz * 2^12 = 500kHz Interrutprate = 40 Zyklen bei 20MHz, ist zu
schaffen.
Mit ner intelligenten PWM (Tabelle mit den 3 Timerreloadwerten für die 3
Ausgänge), sind die 40 Zyklen auch nur die Spitzenlast (max 3* je
120Hz-Periode).
Wobei kein Mensch 12Bit unterscheiden kann, 10Bit sollten reichen.
Peter
Nur am Rande: Mein Lieblingschip kostet in der Tat 12 Euro, hatte aber
nie Probleme auf allen seinen 32 GPIO Beinchen 32 verschiedene PWM
Signale mit 100 ms Perioden und einer Auflösung von 10 Bits auszugeben.
Natürlich alles in Software :-)
Auflösung des Rätsels: Parallax Propeller
Hallo oli,
das gleiche Problem mit nahezu identischer Aufgabenstellung habe ich
auch. Momentan fahre ich die RGB-Steuerung mit Soft-PWM in einem Mega8
und 8MHz Resonator (billiger und kleiner als Quarz). Der Controller wird
seriell vom Master gesteuert und funktioniert auch ganz ordentlich, aber
die Adressierung im (eigenen) Bus ist nervend und die Auflösung von 8
Bit sind uns zu wenig. Die PWM-Frequenz ist irgendwas um die 130 Hz und
zumindest bei Kopfbewegungen und kleiner Einschaltdauer sieht man das
flackern ganz eindeutig.
Bei kleinen Einschaltwerten ist auch der Stufenunterschied sehr deutlich
auszumachen und fast kein langsamer flüssiger Dimmvorgang möglich.
Das waren zumindest die Rückmeldungen vom Vertrieb ;-)
Daher habe ich mich auf die Suche nach einem Controller gemacht, der 1.
sehr günstig, 2. sehr klein (MLF-Gehäuse nicht mehr als 7 mm
Kantenlänge), 3. vier PWM's in Hardware mit 12 Bit kann und 4. mit
open-source-Tools programmierbar ist.
Bei Atmel gab's das nur in riesengroßem TQFP (mega64 und seine Brüder),
die kleinen LPC-ARM's gibt's auch nur in TQFP, zu 8051 wollte ich nicht
zurück und so lächelte auf einmal die PIC24F Familie. Der C-Compiler ist
sehr günstig, das MPLAB-ICD-Zeugs scheint zu funktionieren und ein
Eval-Board gibt's auch für kleine Steine. Der Gag ist aber, daß es den
PIC24FJ16GA04 für unter 2$ im 28-poligen QFN gibt. Da kotzt nur noch der
Bestücker ;-)))
Schau ihn Dir mal an, für mich scheint er ideal für diese gehobene
LED-Beleuchtungsklamotte.
Lange her, daß ich den Pic's wegen der grausligen Bankswitcherei den
Rücken zugewandt hatte, aber Atmel hat halt nix im Programm was passt.
Außerdem hat Microchip die Dinger für Umsonst flott als Muster auf
meinen Tische geschafft, was sonst nur TI und National so hinbekommen.
Und Motorolla oder wie die heute heißen sind mit dem 68332 ja in einer
ganz anderen Gehäuse- und Preisklasse.
Ciao
Krempel
Die PIC24/30/33 sind an und für sich recht gut designed, leiden
allerdings etwas unter der Implementierung (d.h. dem Inhalt vom Errata
Sheet). Insbesondere die noch ziemlich frischen PIC24.
Michael P. wrote:
> Nur am Rande: Mein Lieblingschip kostet in der Tat 12 Euro, hatte aber> nie Probleme auf allen seinen 32 GPIO Beinchen 32 verschiedene PWM> Signale mit 100 ms Perioden und einer Auflösung von 10 Bits auszugeben.
100ms ist bestimmt ein Schrehbfeiler.
100ms a 10Bit sind doch nur 10,24kHz, da gähnt jeder 8Bitter nur.
Peter
Was ich nicht verstehe:
1. Mega8 hat 3 Timer mit 2x16bit PWM + 1x8bit PWM
2. Mega88 hat 3 Timer mit 2x16bit PWM + 4x8bit PWM
3. Tiny25 hat zwei Timer mit 2x8bit High-Speed PWM + 2x8bit PWM
Und die kosten alle < 3 Teuronen !
Und gibt's alle im DIP !
Solange es nicht um DDS im MHz Bereich geht ist der Tiny25 wohl die
beste Wahl für LED Flackerei inklusive USI Steuerung.
Und Software PWM mit einem 8MHz Quarz sollte auch bei drei Kanälen über
100Hz kommen.
Kopfkratz
Ja, aber für das was wir damit machen wollen, sind die Erratas scheinbar
okay. Ansonsten hast Du recht, die Liste liest sich beeindruckend ;-)))
Was auch noch ginge, wären die PsOC's von Cypress, aber da ist bei drei
PWM's und einer seriellen Schnitte die Bude schon reichlich voll.
Außerdem wieder nur im Tqfp-Gehäuse und das ist zumindest bei mir zu
groß. Ich habe als Zielvorgabe 7 mm Platinenbreite, da wird die Auswahl
sehr klein....
Sebastian Heyn wrote:
> @Eduard:>>>Umsonst ist nur der Tod....>> kennst wohl die Preise der Bestatter nicht? ;-)
i.A. kostet er einem aber das Leben...
Peter Dannegger wrote:
> Michael P. wrote:>> Nur am Rande: Mein Lieblingschip kostet in der Tat 12 Euro, hatte aber>> nie Probleme auf allen seinen 32 GPIO Beinchen 32 verschiedene PWM>> Signale mit 100 ms Perioden und einer Auflösung von 10 Bits auszugeben.>>> 100ms ist bestimmt ein Schrehbfeiler.> Peter
Ja, dumm :-( Es sollte 20 ms heißen, was aber egal ist... Der Clou ist
natürlich, dass der DutyCycle zwischen 10% und 0,01% davon beträgt ;-)
Hallo!
So - ICD2-Clone ist bestellt.
Hab mir zusätzlich zum kleinen PIC auch die dsPICs angeschaut. Wenn die
Geschwindigkeitsmäßig so halbwegs mit einem kleinen ARM (so 50MHz
Klasse) mithalten können las ich die ARMs fürs erste mal sterben.
Jetzt brauch ich nur noch eine Bezugsquelle für die PICs. Weiß jemand wo
man die 16Bit PICs (24F, dsPIC33) als Privatperson (über die Firma würds
im Not-Notfall auch gehen) in kleinen Stückzahlen (max. 25 auf einmal)
bekommt?
Die 8bitter bekommt man ja an jeder Ecke, nur mit den 16Bittern schauts
schlecht aus.
Sampling ist bei Microchip offenbar nicht so einfach - bringt aber auch
nicht die Welt weil ich im Laufe der Zeit sowieso einige Stück brauche.
MfG Oli