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
http://www.atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=1214&Direction=DESC# da solltest du fündig werden ;)
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
Na dann wäre der alte 68332 mit der TPU was für dich. ;-) MW
Interner Oszi und UART? Viel Spaß :-) Aber nur so nebenbei: Der PIC18F1330 hat z.B. 3 14bit-PWM-Ausgänge, 8k Flash, 256 Byte RAM, 16 I/O, int. Oszillator, EUSART, etc... http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en022957
Der Timer_B des MSP430 könnte was für Dich sein. Anbei ein Codebeispiel von TI, Beschreibung:
1 | // MSP-FET430P140 Demo - Timer_B, PWM TB1-6, Up Mode, DCO SMCLK |
2 | // |
3 | // Description: This program generates six PWM outputs on P4.1-6 using |
4 | // Timer_B configured for up mode. The value in CCR0, 512-1, defines the PWM |
5 | // period and the values in CCR1-6 the PWM duty cycles. Using ~800kHz SMCLK |
6 | // as TBCLK, the timer period is ~640us. |
7 | // ACLK = na, SMCLK = MCLK = TBCLK = default DCO ~800kHz. |
Reicht das?
@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....
@Eduard:
>Umsonst ist nur der Tod....
kennst wohl die Preise der Bestatter nicht? ;-)
@Andreas Ke. Hey der PIC gefällt mir irgendwie. Ich glaub der wird gesampelt. Danke für den Tip - hätte ansonsten Microchip eher gemieden. MfG Oli
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.