mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Welcher µC hat viele Timer und Cature/Compare-Einheiten?


Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Sab (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soviel Compareeinheiten wird's nie geben. Die muss man ordnen und 
nachladen.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Vaterssohn (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Eine Übersicht der AVR's von der ATMEL - Homepage

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: AVRler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal in die Tabelle hier:
http://atmel.com/dyn/products/param_table.asp?fami...
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.

Autor: Obelix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dich mal bei Renesas um. Die M16C-Serie.

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.




Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
interessant, werde mir die Teile mal anschauen.

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sag doch einfach mal, welches Zeitraster Du überhaupt brauchst ?

Ohne die Anforderungen zu kennen, sind alle Tips nur Rauschen im Walde.


Peter

Autor: Dirk Hofmann (arm-dran)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt µCs mit dieser Anzahl von Capture/Compare.

Nur finde ich es komisch, daß Du den Controller-Typ danach aussuchen 
willst !?

Dirk

Autor: Andreas K. (oldcoolman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Dirk Hofmann (arm-dran)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.


Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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.
           _____     _______
___________|    |_____|

Autor: Andreas K. (oldcoolman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@dirk...

die Betonung in meinem Beitrag sollte auf dem Hinweis sein,
daß beide typen abgekündigt sind.

gruß


Andreas

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Pikotz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Jeder Hersteller bietet mehr, JEDER !!!!

Jemand der in Großbuchstaben schreibt, dazu mit mehreren Ausrufezeichen, 
hat im Allgemeinen nicht allzuviel Ahnung.

Autor: dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mb90350 von fujitsu.

www.glyn.de

auch in kleinen stückzahlen.
d.

Autor: Dirk Hofmann (arm-dran)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

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.