Frequenzzähler

Mikro23

Mitglied
2 Jan 2017
294
22
18
Großraum Hannover
Sprachen
C, Assembler
Als Counter kann er, wenn er extern ausgelöst wird, nur maximal die CPU Frequenz /2,5 messen.
Der braucht ja etwas Zeit um die Flankenänderung zu erkennen und zu verarbeiten.
Nachdem ich mich wunderte, warum der counter nicht mit maximal möglicher Frequenz laufen können sollte und im Datenblatt auch keine Aussage dazu finden konnte, habe ich es ausprobiert.

Im Schaltplan der timer/counter befindet sich laut Datenblatt nur ein edge detector. 8087

Das ist in erster Näherung nichts weiter als ein Schmitt-Trigger und der würde den counter nicht daran hindern mit maximaler Geschwindigkeit der Hardware zu laufen.
Nach dem Test sieht es so aus, als ob der Takt über ein mit dem CPU-Takt getaktetes Flipflop läuft.

Der Takteingang der timer/counter wird also offenbar doch mit dem CPU-Takt synchronisiert. d.h. obwohl der counter (die hardware) mindestens mit 20 MHz laufen kann (FCPU = 20 MHz, prescaler = 1), zählt er einen externen Takt bei FCPU = 8 Mhz noch bis knapp unter 4 MHz richtig und bei 1 MHz bis fast 500 kHz.

Darüber fällt die angezeigte Frequenz erst wieder ab - liegt wohl daran, daß er mehr und mehr Flanken verpaßt - und springt dann immer chaotischer rum (hatte keine Lust, das noch genauer zu untersuchen). Gilt jetzt nur für den mega48, und damit vermutlich für die meisten alten megas und tinies.

Bei den xmegas könnte es anders sein, die laufen mit bis zu 32 MHz und fast alle timer/counter haben eine high resolution extension, mit der sie noch 8 mal schneller laufen können.
 
  • Like
Wertungen: TommyB

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.281
60
48
Hennigsdorf
Sprachen
BascomAVR, Assembler
und im Datenblatt auch keine Aussage dazu finden konnte,
17.0.3 External clock source
An external clock source applied to the T1/T0 pin can be used as Timer/Counter clock (clkT1/clkT0). The T1/T0 pin is sampled once every system clock cycle by the pin synchronization logic. The synchronized (sampled) signal is then passed through the edge detector. Figure 17-1 shows a functional equivalent block diagram of the T1/T0 synchronization and edge detector logic. The registers are clocked at the positive edge of the internal system clock (clkI/O). The latch is transparent in the high period of the internal system clock. The edge detector generates one clkT1/clkT0 pulse for each positive (CSn2:0 = 7) or negative (CSn2:0 = 6) edge it detects.
Figure 17-1. T1/T0 pin sampling
The synchronization and edge detector logic introduces a delay of 2.5 to 3.5 system clock cycles from an edge has been applied to the T1/T0 pin to the counter is updated.
Gilt jetzt nur für den mega48, und damit vermutlich für die meisten alten megas und tinies.
;)
Da haste dann auch`n Bild, unter anderem mit diversen D-Q-Latches (teilweise mit der IO-Clock getaktet) - in der derzeit aktuellen Online-Version des Datenblattes auf Seite 148...
 

Mikro23

Mitglied
2 Jan 2017
294
22
18
Großraum Hannover
Sprachen
C, Assembler
Danke.
Steht in meinem Datenblatt vom mega48/88.. unter
21. Timer/Counter 0, 1 Prescalers
21.3. External Clock Source
auf Seite 193.
Im aktuellen Datenblatt auch unter
17.Timer/Counter0 and Timer/Counter1 prescalers
Da frage ich mich, was das im Kapitel Prescalers zu suchen hat.
Da habe ich jedenfalls nicht gesucht, weil External Clock Source nichts mit Prescaler zu tun hat...
 

Mikro23

Mitglied
2 Jan 2017
294
22
18
Großraum Hannover
Sprachen
C, Assembler
Bei den xmegas kann man die timer/counter über das event-system takten.
Da kann man den synchronizer anscheinend umgehen.
8088
Damit müßte man dann einen Frequenzzähler bauen können, der bis mindestens 32 MHz läuft.
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)