www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Suche uC mit 3 Timern


Autor: Magic Magicjon (magicjon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,

ich bin auf der suche nach einem Mikrocontroller, welcher 3 Timer (8 
oder 16bit, egal) besitzt. Dazu sollten die Timer über externe Signale 
gestartet werden können, sprich also, es sollten drei Tx Pins vorhanden 
sein.

Bislang bin ich nur auf solche gestoßen, die zwar zwei 8Bit Timer und 
einen 16Bit Timer hatten, aber nur zwei externe Freigabe-Signale.

Vielleicht kennt jemand von euch da einen geeigneten der sowas hat?

Ansonsten werde ich doch den mit den zwei nehmen und den dritten mit 
externen Interrupts einschalten.

Danke schonmal

Gruß

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für AVR von Atmel gibt es eine Paramter-Liste, in der auch die Anzahl 
der Timer steht:
http://www.atmel.com/dyn/products/param_table_v2.a...

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll denn "starten" hier bedeuten?  Vielleicht beschreibst du ja
mal eher dein Problem.

Autor: Magic Magicjon (magicjon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
STK500-Besitzer schrieb:
> Für AVR von Atmel gibt es eine Paramter-Liste, in der auch die Anzahl
> der Timer steht:
> http://www.atmel.com/dyn/products/param_table_v2.a...

Auf der Seite habe ich mich schon umgeschaut, aber da bin ich noch nicht 
wirklich fündig geworden.

Jörg Wunsch schrieb:
> Was soll denn "starten" hier bedeuten?  Vielleicht beschreibst du ja
> mal eher dein Problem.

Starten =  Timer fängt an zu zählen. Also ein Freigabe-Signal für den 
Timer.

Was soll ich denn noch weiter beschreiben?
Ich brauche halt 3 Timer, die ich durch externe Signale (steigende 
Flanke, fallende Flanke) einschalten kann (=sie sollen anfangen zu 
zählen bis zu einem bestimmten Wert, der in einem vergleichsregister 
steht). Mehr habe ich damit erstmal nicht vor.

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Magic Magicjon schrieb:
> Starten =  Timer fängt an zu zählen. Also ein Freigabe-Signal für den
> Timer.

as ist ja unabhängig von den Timer.
Das kannst du ja in Softwre machen.
Du registirerst dich auf den PinChange Interrupt und aktivierst dann den 
Timer.
Vorausgesetzt das delay ist dir nicht zu groß.
wenn du die ISR als naked schreibst, dann kriesgt du das wahrscheinlich 
in 10-15 Takten hin, falls das reicht.

Autor: Timmo H. (masterfx)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Magic Magicjon schrieb:
> Auf der Seite habe ich mich schon umgeschaut, aber da bin ich noch nicht
> wirklich fündig geworden.
Hö? Du brauchst doch nur auf die Sortierungspfeile zu klicken, dann 
steht das was du wissen willst ganz oben.

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timmo H. schrieb:
> Hö? Du brauchst doch nur auf die Sortierungspfeile zu klicken, dann
> steht das was du wissen willst ganz oben.

ich vermute, er bezieht sich auf das Auslösen per externem Signal...

Autor: Magic Magicjon (magicjon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh, sorry. Ich habe das etwas durcheinander gebracht. Die externen Pins 
T0-Tx sind ja nur für einen externen Takt der Timer gedacht :-)

Also kann ich die Timer ja generell nur durch Interrupts starten, oder 
gibt es da doch eine externe Möglichkeit für?

Autor: Magic Magicjon (magicjon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Justus Skorps schrieb:
> Timmo H. schrieb:
>> Hö? Du brauchst doch nur auf die Sortierungspfeile zu klicken, dann
>> steht das was du wissen willst ganz oben.
>
> ich vermute, er bezieht sich auf das Auslösen per externem Signal...

ja genau, um die externe Auslösung gehts. Also sprich nur eine 
Hardwareauslösung.

Autor: Fabian B. (fabs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt die Möglichkeit die Externe Ereignisse über den InputCapture zu 
detektieren... aber das ist auch nicht exakt das was du willst.
Mach dir Gedanken über das zusätzliche Delay und realisier's in 
Software. Wenn du dich geschickt anstellst, ist dieses Delay konstant 
und du kannst es einfach auf den Wert drauf rechnen.

Gruß
Fabian

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso das kann natürlich sein.
Naja für die Reaktion auf steigende/fallende Flanke gibts ja externe 
Interrupts mehr als genug.

Autor: Magic Magicjon (magicjon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, ok. wird wohl darauf hinauslaufen, dass ich es mit den externen 
Interrupts machen werde.

Fabian B. schrieb:
> Wenn du dich geschickt anstellst, ist dieses Delay konstant
> und du kannst es einfach auf den Wert drauf rechnen.

Für ein einziges Signal ist das ja kein Problem, dass Delay konstant zu 
halten aber für 3 Signalen, bei denen die steigende oder fallende Flanke 
auch mal zur gleichen Zeit kommen kann? mmh, könnte schwieriger werden, 
dieses konstant zu halten.

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also der kann das:
STM32F103C8

Datenblatt RM0008
http://www.st.com/stonline/products/literature/rm/13902.pdf
Siehe Seite 294. "Slave mode: Trigger mode"

Der hat 4 Timer drin.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daher schrob ich ja oben auch, dass du bitte erstmal dein Problem
beschreiben sollst.  Irgendwas muss ja mit den Timern hernach auch
passieren, ansonsten rennen sie endlos weiter und laufen über und
und und...  Oder sie müssten halt (ebenfalls durch ein externes
Ereignis?) wieder angehalten werden.

Möglicherweise ist halt ein input capture tatsächlich das, was du
suchst.  Deine ursprünglich gestellte Aufgabe ließe sich durch
externe Takteinspeisung eines Timers über ein UND-Gatter erreichen,
das wiederum von einem Flipflop gesteuert wird, dessen SET-Signal
dein externer Trigger ist.  Da stellt sich natürlich sofort die
Frage, wer das FF dann wieder löscht...  (Den Takt könnte man dabei
auch aus dem Controller selbst an die Timer leiten.)

Ich fürchte nur, dass diese Logik, die zwar exakt deiner Aufgaben-
stellung entspricht, bei weitem nicht das ist, was du am Ende wirklich
brauchst.

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Allegemine Beschreibung über den STM32 Controller gibt es hier:
Siehe http://www.mikrocontroller.net/articles/STM32

Autor: moo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn 32-bit auch ok -> ATMEL AT91SAM7S.. der hat 3 16-Bit timer

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe ich was überlesen, oder hat wirklich noch keiner gesagt/gefragt,
wie schnell die Timer denn zählen sollen?

Um Jörg Wunsch zu zitieren:
> Vielleicht beschreibst du ja mal eher dein Problem.
WAS willst du mit diesen Timern machen?
Was sollen die Zählen?
Wie schnell soll das ganze gehen?
Welchen Jitter kannst du erlauben?

BTW
Wenn wir schon beim Vorschlagen von Hardware sind:
mit einem CPLD/FPGA wäre das ganz einfach.

Autor: Magic Magicjon (magicjon)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, ich  habe mal eine kleine Skizze erstellt. In dieser ist nur 1 
Signal dargestellt und die dazugehörenden Ausgänge.
Ich hoffe, man kann daraus erkennen, was ich machen möchte.
Das soll insgesamt drei mal passieren.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal vorbehaltlich der Antworten auf Lothars Fragen: ich denke, dass
ein input capture deine Lösung wäre, sofern du nach dem input capture
genug Zeit in der Interruptroutine hast, um den Vergleichswert zu
berechnen.  Der Timer würde dann einfach durchlaufen.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Bislang bin ich nur auf solche gestoßen, die zwar zwei 8Bit Timer und
> einen 16Bit Timer hatten, aber nur zwei externe Freigabe-Signale.

Schau dich mal bei Renesas um. Die M16C und groesser (M32,R32) haben 
immer irgendwas zwischen 8 und 16Timer. Solltest du die Timer fuer 
irgendwas im Zusammenhang mit Motorsteuerung brauchen, so sei erwaehnt 
das es auch Controller gibt die Timer besitzen die extra darauf 
optimiert sind. Dann reicht vielleicht auch ein neuerer R8C.

Olaf

Autor: Magic Magicjon (magicjon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller schrieb:
> WAS willst du mit diesen Timern machen?

was ich mit den Timern machen möchte, konnte ich hoffentlich durch die 
Skizze darstellen.

Lothar Miller schrieb:
> Was sollen die Zählen?

Über den Zählerstand soll eine Zeit eingestellt werden, wie man auch vlt 
aus der Skizze erkennen kann. Ist die Zeit von der steigenden oder 
fallenden Flanke des Eingangssignals bis zum Einschalten eines Ausgangs.

Lothar Miller schrieb:
> Wie schnell soll das ganze gehen?

Die Zeit wird sich irgendwo im Bereich von 1us bewegen. Das Signal an 
sich liegt im Frequenzbereich von 5-20kHz.

Lothar Miller schrieb:
> Welchen Jitter kannst du erlauben?

Also die Zeit muss z.B. 1us Betragen. Im Bereich bis 5% oder gar 10% 
größer wäre alles Ok. Kleiner darf nicht.

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.