Hallo, ich suche einen µC der mind. 2 16bit-Timer hat und jeder Timer mind. 8 Capture/Compare-Einheiten hat. Da ich insgesamt 8 Signale ausgeben will die sich auch mal überschneiden können, sehe ich das programmiertechnisch etwas schwierig zu bewerkstelligen, deshalb will ich das ganze mit einem µC aufbauen der hardwareseitig schon alles onboard hat damit ich nicht über Software(Timingprobleme) stolpere. Ich übergebe also 8 Start- und Stopwerte an die Compare Register die dann beim Auftreten einen Pin toggeln. Bei Infineon bin ich auf den XC167 gestoßen, dieser hat 5 16bit Timer und mehrere CAP/COM Einheiten. Leider in kleinen Stückzahlen schwer zu bekommen, und außerdem glaube ich das man die Entwicklungssoftware (Keil) auch kaufen muss. Das AVR-Studio vom Atmel ist ja kostenlos. Gibt es ein Pedant von Atmel oder bei welchen Hersteller könnte man noch einen passenden µc mit günstiger Entwicklungsumgebung finden? Manche Atmegas haben auch 4 16-Bit Timer aber nur 3 Compareregister und ich muss ja 16 Zeitpunkte festlegen.
Soviel Compareeinheiten wird's nie geben. Die muss man ordnen und nachladen.
Wenn ein grösserer Controller so sehr anderweitig ausgelastet ist, dass er kritische Zeitbedingungen nicht einhalten kann, kommt evtl. ein zweiter kleinerer Controller eigens dafür in Frage. In diesem Fall könnte vielleicht ein Tiny2313 dafür verwendet werden, per UART (ohne Interrupt) einlaufende Kommandos in ein exaktes Zeitraster umzusetzen. Ist auch der zu langsam, könnte ein externes CPLD sinnvoller sein.
ja die Übersicht kenne ich. Habe auch schon daran gedacht 2 große ATMegas zu nehmen wo sich jeder nur um 4 Signale kümmert. Dachte das es da evtl. fertige Bauteile gibt die für solche timerintensive Anwendungen gedacht sind und man sich das softwareseitige Sorteieren der Ereignisse sparen kann.
Schau mal in die Tabelle hier: http://atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=part_no&Direction=ASC Atmels mit 8 PWMs wären z.B.: - AT90CAN-Automotive - ATMega128 Gibt's bis 16 PWMs z.B.: - ATMega1280 Allerdings 8 Captures :-/ Müßtest Du dann schon mit PIN-Change IRQs realisieren. Als "Heimwerkerlösung" würde ich's einfach mal mit'm Mega88 versuchen, der hat 6 PWMs, da noch zwei dranzutüdeln sollte kein so großes Problem sein.
Schau dich mal bei Renesas um. Die M16C-Serie.
Hallo Sieh dir mal den TMS 470 von TI an. Das ist ein ARM7 µC der eine interesannte Erweiterung hat. Der HighEndTimer HET. Mit diesem HET hast du bis zu 32 !! Pins (je nach Hardwareversion) die du beliebig ansteuern kannst. Als : + normale IO Pins + PWM out + PWM in (messen) + externe Interruptquelle + capture + compare + .... in beliebiger Kombination der HET hat eine Programmspeicher bis zu 128 Befehle. Damit kannst du die IO Operatioenen steuern und die Daten teilweise schon verarbeiten. Entwicklungsumgebung für ARM 7 git es auch kostenlos.
interessant, werde mir die Teile mal anschauen.
etwas alt zwar, aber 16bit timers und ccu: SAB-C517A von infineon. wenn du etwas komplexere mikrocontroller magst: MC68332 von freescale. integriert ist ein zweiter prozessor, TPU genannt (time processing unit). mit der kannst du die komplexesten aufgaben lösen, unter anderem auch pwm. kenne mich damit allerdings nicht so gut aus, da müsstest du im Programmer's Manual nachlesen.
Sag doch einfach mal, welches Zeitraster Du überhaupt brauchst ? Ohne die Anforderungen zu kennen, sind alle Tips nur Rauschen im Walde. Peter
Es gibt µCs mit dieser Anzahl von Capture/Compare. Nur finde ich es komisch, daß Du den Controller-Typ danach aussuchen willst !? Dirk
Hallo, der tip mit dem 517 ist ganz nett, könnte noch den c509 dazustellen. beide infineon. Beid controller sind abgekündigt. Also wenns was für die Zukunft sein soll. Vorsicht! gruß Andreas
Sorry Andreas, aber welchen Grund gint es heute noch "INFINEON" µCs einzusetzen. Außer daß es in den UNIs von Infineon getürkt eingeredet wird? Auch der C167 ??? Jeder Hersteller bietet mehr, JEDER !!!! Ein Wunder, daß man bei Infineon nicht noch für den Download eines Datasheet bezahlen muß. Die Firma ist so unnötig wie eine Zecke auf der Haut.
@ Peter Dannegger: Das Zeitraster ist eher unkritisch, es wäre aber einfacher zu programmieren wenn sich die Timer um das ganze kümmern also ihren Interrupt anspringen und ich nicht erst vorsortieren muss welche Aktion als nächstes kommt. Ich versuche es mal anhand einer kleinen Zeichnugn zu erklären. So wie es unten ist kann man schön dem Output Compare-Register den Zählerstand für die gewünschte nächste Aktion mitteilen, es kann aber passieren das das 2te Ausgangssignal(untere) sich zeitlich nach links verschiebt und dann kommt man in den Bereich wo es zu Überschneidungen der Aktionen kommt oder das erst Aktion 3 und dann 2 ausgeführt werden muss. Bei 8 Ausgangssignalen die nicht miteinander identsich sind ist das dann entsprechend komplizierter zudem sich die Frequenzen als auch Pulslängen verändern. 1. 2. 5. 7. _______ _______ __| |________| |________ 3. 4. 6. _____ _______ ___________| |_____|
@dirk... die Betonung in meinem Beitrag sollte auf dem Hinweis sein, daß beide typen abgekündigt sind. gruß Andreas
@ Thomas O. >So wie es unten ist kann man schön dem Output Compare-Register den >Zählerstand für die gewünschte nächste Aktion mitteilen, es kann aber >passieren das das 2te Ausgangssignal(untere) sich zeitlich nach links >verschiebt und dann kommt man in den Bereich wo es zu Überschneidungen >der Aktionen kommt oder das erst Aktion 3 und dann 2 ausgeführt werden >muss. Bei 8 Ausgangssignalen die nicht miteinander identsich sind ist >das dann entsprechend komplizierter zudem sich die Frequenzen als auch >Pulslängen verändern. Wie wäre es die 8 Ausgangssignale in einen Datenstrom zusammenzufassen und über EINEN Output-Compare Interrupt auszugeben? Schliesslich muss man "nur" die Punkte berechen, an denen sich das 8-Bit Datenwort ändert, dort muss der Output-Compare klingeln. Dann einfach ein neues 8-Bit Datenwort ausgeben und weiter gehts. Als einzige Randbedingung steht dabei der minimale Abstand zwischen zwei Flanken, der bei dieser Softwarelösung in Assembler bei ca. 10..20 Takten liegt. MFG Falk
Thomas O. wrote: > @ Peter Dannegger: Das Zeitraster ist eher unkritisch Dannn würde ich ne Softwarelösung nehmn, ne Art Scheduler. Schön ist dann natürlich ein MC mit Interruptprioritäten, dann gibt man die höchste Priorität dem Scheduler und die anderen Interrupts laufen ganz normal. In Hardware könnte man auch einen Atmel 8051 mit PCA nehmen, der hat 5 Ausgänge die per Compare gesetzt werden und dann hat man Zeit, den nächsten Comparewert zu laden. Für die restlichen 3 Ausgänge kann man T0, T1, T2 nehmen, wobei T0 und T1 den Pin per Interrupthandler setzen müssen (auf Priorität 3 setzen). Peter
> Jeder Hersteller bietet mehr, JEDER !!!!
Jemand der in Großbuchstaben schreibt, dazu mit mehreren Ausrufezeichen,
hat im Allgemeinen nicht allzuviel Ahnung.
mb90350 von fujitsu. www.glyn.de auch in kleinen stückzahlen. d.
Pikotz wrote: >> Jeder Hersteller bietet mehr, JEDER !!!! > > Jemand der in Großbuchstaben schreibt, dazu mit mehreren Ausrufezeichen, > hat im Allgemeinen nicht allzuviel Ahnung. Na dann schreib mal schön in Großbuchstaben.
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.