Hallo, ich suche einen Baustein, der Impulse bis zu einer Frequenz von 10MHz über 1-4s ohne Vorteiler zählt und anschließend mit einem ATMEGA ausgelesen werden kann. (24bit oder 32bit Zähler) Mir ist bekannt, dass ich mit einem ATMEGA mir einem Frequenzzähler oder Zähler programmieren kann. Ich muss dann aber leider einen Vorteiler verwenden und somit die Messzeit erhöhen - das möchte ich vermeiden. Als Zeitbasis möchte ich einen 10MHz TCXO verwenden, der an einem Zeitnormal abgeglichen werden kann. Mich interessiert die relative Genauigkeit mehr als die absolute Genauigkeit Gibt es überhaupt solche Bauteile? Gruß Tom
http://www.standardics.nxp.com/products/hc/datasheet/74hc590.pdf Die 74HC590 koennen so was. Du brauchst allerdings bei 32Bit 4 Stueck davon. Gruss Helmi
Ja. Du machst dir den Zähler sehr wohl mit einem ATMega, dann nimmst du aber 1 74ls393 (74HC393) als 8-Bit-Vorteiler, diesen liest du dann zusammen mit dem Timer1(16 Bit) des ATMega aus. Ein separates Gatter als Zählertor ist allerdings dann notwendig, z.B. ein 7400. Ein LS/HC sollte bis 25MHz können. Brauchst du 32 Bit, dann nimmst du eben 2 mal 74393. 74393 Dual 4-bit asynchronous binary counters with reset. +---+--+---+ /1CLK |1 +--+ 14| VCC 1RST |2 13| /2CLK 1Q0 |3 74 12| 2RST 1Q1 |4 393 11| 2Q0 1Q2 |5 10| 2Q1 1Q3 |6 9| 2Q2 GND |7 8| 2Q3 +----------+ Quelle: GIICM http://kingswood-consulting.co.uk/giicm/
Jörn wrote: > Mir ist bekannt, dass ich mit einem ATMEGA mir einem Frequenzzähler oder > Zähler programmieren kann. Ich muss dann aber leider einen Vorteiler > verwenden und somit die Messzeit erhöhen Das ist Quatsch, Du rechnest den Vorteiler einfach in das Ergebnis mit rein, d.h. die Periodenzahl ist 16 * Zählergebnis. Nur bei kleinen Frequenzen (<16Hz) mußt Du den Bereich umschalten, also den Vorteiler überbrücken. Z.B. den 74HC193 kannst Du als Vorteiler 1:16 nehmen oder per Setzeingang den Eingang auf QD durchschleifen. D.h. im Setzmodus teilt er 1:1, im Zählmodus 16:1. Peter
Man kann das auch mit einfachen Ripple-Countern z.B. 74HC4040 lösen, wenn genügend Zeit zur Auswertung zur Verfügung steht. Dazu brauchst Du nur wenige I/O-Pins. Der Clock-Eingang muß zwischen Signalquelle und µP umschaltbar sein und das MSB des Zählers wird abgefragt. 1. Zunächst gibst Du soviele Clock-Impulse auf den Zähler, bis das MSB auf null springt (Reset). Alternativ kannst Du den Zähler mit einem zusätlichen I/O-Pin direkt resetten. 2. Dann schaltest Du die Clock-Leitung für eine genau definierte Gate-Zeit, z.B. 1s, auf die Signalquelle. 3. Du gibst soviele Clock-Impulse auf den Zähler, bis das MSB wieder auf null springt. 4. Du berechnest daraus den relevanten Zählerstand nach der Gate-Zeit. Das ist zwar etwas umständlich in der Software, vereinfacht die Hardware aber erheblich. Die Umschaltung des Clock-Einganges ist sehr einfach: Signal über Widerstand z.B. 1k auf Clock-Eingang. I/O-Pin direkt auf Clock-Eingang. I/O-Pin hochohmig (Eingang) ---> Zählmodus I/O-Pin niederohmig (Ausgang) ---> Zähler zählt nur Impulse von µP Zur Verkürzung der Auswertezeit empfiehlt es sich bei Verwendung mehrerer 4040-er jeden einzeln auszuwerten. Dazu fügst Du die o.a. Gate-Schaltung zwischen Ausgang eines 4040 und den Eingang des folgenden 4040 ein. Mit dem I/O-Pin kannst Du dann das MSB des 4040 abfragen und Clock-Impulse einfügen, um den nachfolgenden 4040 auszuzählen. Jörg P.S.: Vermutlich brauchst Du max. einen externen Zählerbaustein. Die Zählerüberläufe kannst Du ja per Software mitzählen oder einem internen Zähler zuführen.
Schau mal nach dem 8253/54 http://www.osdever.net/documents/8253.pdf Der hat Gatefunktion und man kann auch mit einem Timer den 2 Timer (er hat 3) gaten. gruß hans
Sicher das du extra-Hardware brauchst/willst? Ich denke, das kann der Controller alleine, lass ihn halt ungeteilt zählen und behandle die Überläufe in Software (z.B. als Interrupts). Jörg
Was spricht dagegen, das Signal als Takteingang für einen Timer im Mega zu verwenden? Dann kann der µC wieder alles alleine erledigen und du brauchst keine externe Hardware. Ein Timer macht die Zeitbasis Ein zweiter Timer zählt die externen Ereignisse Noch ein bischen Interrupt Logik um die Überläufe des Zähltimers zu bearbeiten. Fertig.
Alternativ zum HC590 koennte man nen AS867 nehmen, der braucht zwar viel Strom aber schafft auch grinsend 60-70Mhz (ausprobiert, das Datenblatt untertreibt ein wenig). Ueber 100Mhz kann man schaffen mit einem F74 als erste Stufe - wenn man nicht so ein Esel ist wie ich und sich bei der Verdrahtung so vergreift dass bei ca. 80MHz Schluss ist :(
faustian wrote: > Ueber 100Mhz kann man schaffen mit einem F74 als erste Stufe - wenn man > nicht so ein Esel ist wie ich und sich bei der Verdrahtung so vergreift > dass bei ca. 80MHz Schluss ist :( Ich biete 210MHz: http://de.farnell.com/fairchild-semiconductor/74vhc4040m/ic-sm-logic-74vhc-binary-counter/dp/1607651 Peter
>>faustian wrote: >> Ueber 100Mhz kann man schaffen mit einem F74 als erste Stufe - wenn man >> nicht so ein Esel ist wie ich und sich bei der Verdrahtung so vergreift >> dass bei ca. 80MHz Schluss ist :( >Ich biete 210MHz: >http://de.farnell.com/fairchild-semiconductor/74vh... Ich biete 8GHz http://www.onsemi.com/pub_link/Collateral/NBSG53A-D.PDF Gruss Helmi
@An Alle Mit einer so großen Resonanz habe ich nicht gerechnet – vielen Dank. - Bisher war ich immer der Meinung, dass man mit einem ATMEGA nur bis 1/3 des Taktes zählen kann, damit man auch mit ungünstigen Taktverhältnissen zurechtkommt (und das gilt auch für die Vorteiler). (Grundlagenfrage) Stimmt das so??? Wenn ich unabhängig von diesem Problem mit einem der internen Vorteiler arbeitet habe ich das Problem, dass ein Teil der Information in dem Vorteiler „steckt“ und nicht ausgelesen werden kann. Um doch alle (periodischen) Ereignisse zu erfassen müsste ich die Messdauer erhöhen. - Den Zähler mit drei oder vier 74HC590 aufzubauen gefällt mir. Die Kosten sind minimal (Stückpreis <40ct) und der Kopf kann beim Programmieren im Mittagsschlaf verbleiben. ---> Mein Favorit Liege ich richtig, dass ein kaskadierter Zähler auch bei ungünstigeren Tastverhältnissen bis ca. 15MHz zu gebrauchen ist? Wo liegt die Grenze bei ziemlich symmetrischen Signalen? - Die Idee einen auslesbaren Vorteiler zu verwenden und ihn mit einem internen 16-bit Zähler zu koppel finde ich genial (einfach). :-)) 74HC393 und 74HC4040 - Bis zu welcher Grenze kann man einen 74HC4040 , HC590 , HC4040 verwenden (ungünstige und günstige Taktverhältnisse)? - Der 8254 vereint quasi mehrere 74HC590. Man muss nur den Bus programmieren. Die 74as867 , 74F74, 74VHC4040 kennt mein Händler leider nicht Tom
Tom wrote: > - Bisher war ich immer der Meinung, dass man mit einem ATMEGA nur bis > 1/3 des Taktes zählen kann, damit man auch mit ungünstigen > Taktverhältnissen zurechtkommt (und das gilt auch für die Vorteiler). > (Grundlagenfrage) > Stimmt das so??? Nicht ganz. Wenn dein externer Takt symmetrisch ist, dann besteht nur die Forderung, dass er kleiner als f[IOclk]/2 sein muss. Du bräuchtest also einen mit 20 MHz getakteten AVR, um bis 9,99999 MHz zählen zu können. Ggf. kannst du aber einfach 2:1 extern vorteilen: dann hast du auf jeden Fall ein symmetrisches Tastverhältnis, und du könntest für die 9,999999 MHz auch den AVR direkt mit 10 MHz takten.
>- Der 8254 vereint quasi mehrere 74HC590. Man muss nur den Bus >programmieren. Vergiss den das ist ein Uralt Teil aus den 70er >Die 74as867 , 74F74, 74VHC4040 kennt mein Händler leider nicht Alternativ kannst du einen 74AC74 verwenden. Der sollte besser zu bekommen sein. 74F74 ist auch schon vom aussterben bedroht. >- Bis zu welcher Grenze kann man einen 74HC4040 , HC590 , HC4040 >verwenden (ungünstige und günstige Taktverhältnisse)? Das sollte im Datenblatt drin stehen. Da die Zaehler kaskadiert werden braucht nur der 1. Zaehler die Frequenz abzukoennen. Bedenke aber das das Ergebnis durch den Ripple Carry etwas spaeter an den Ausgaengen erscheint. >- Den Zähler mit drei oder vier 74HC590 aufzubauen gefällt mir. Du hast schon gesehen das die Tri-State Ausgaenge haben ? Damit sollte die parallel Schaltung einfach werden. >- Bisher war ich immer der Meinung, dass man mit einem ATMEGA nur bis >1/3 des Taktes zählen kann, damit man auch mit ungünstigen >Taktverhältnissen zurechtkommt (und das gilt auch für die Vorteiler). >(Grundlagenfrage) >Stimmt das so??? Es gilt die Frequenz die sich aus der kuerzeren Zeit ergibt und die darf nicht ueberschritten werden. Gruss Helmi
Ist für meinen Zweck die 74F oder die 74AC Serie eher zu empfehlen? Gruß Tom
Das mit der niedrigeren Frequenz beim zweiten kaskadierten Zaehler funktioniert so aber nur bei einem Asynchronzaehler....
Tom wrote: > Ist für meinen Zweck die 74F oder die 74AC Serie eher zu empfehlen? Du wolltest doch nur 10MHz, das schafft ein normaler HC. Z.B. der 74HC393 schafft je nach Hersteller: Fairchild: 50MHz TI: 60MHz ST: 79MHz NXP: 99MHz Peter
Tom wrote: > - Bis zu welcher Grenze kann man einen 74HC4040 , HC590 , HC4040 > verwenden (ungünstige und günstige Taktverhältnisse)? Bei 5 V ca. 50-90 MHz, je nach Hersteller > Die 74as867 , 74F74, 74VHC4040 kennt mein Händler leider nicht HC- oder HCT-Typen sind bei 10 MHz völlig ausreichend. Ein ungünstiges Tastverhältnis kannst Du mit einem vorgeschalteten Monoflop vermeiden, das eine feste Zeitkonstante von 20-50 ns hat, je nachdem was das Datenblatt sagt und welche obere Grenzfrequenz Du noch zulassen willst. Jörg
>Ein ungünstiges Tastverhältnis kannst Du mit einem vorgeschalteten Monoflop >vermeiden,das eine feste Zeitkonstante von 20-50 ns hat, Eher nicht. Da sind die FlipFlops im Zaehler immer noch schneller als das Monoflop. Wenns durch ein unguenstiges Tastverhaeltnis Probleme geben sollte schaltes du besser ein FlipFlop aus einer schnelleren Serie davor.
Ich hab in einem anderen Forum einen "gated counter" vorgeschlagen, das koennte vielleicht auch fuer Deine Anwendung brauchbar sein, zumindest Teile davon. Schaltplan ist im Anhang zu diesem Posting, und hier ist der Link zum anderen Thread: http://www.picaxeforum.co.uk/showthread.php?t=12263&page=2 Der Zaehler hat 16 bit, aber fuer 32 Bit musst Du bloss noch zwei weitere 74HC393 dazuhaengen. Die Start- und Stop-Signale koennen bei Deiner Anwendung ja vom Atmega kommen. Wenn Du den angegebenen Thread verfolgst, siehst Du die ganze Schaltung auch in einem einzigen CPLD (Xilinx 9572) integriert, mein Simulator sagt, das sollte bis ca. 66 MHz laufen. Das CPLD-Projekt kann ich Dir gerne bei Bedarf emailen. Wolfgang
Für meinen aktuellen Anwendungszweck reichen 10MHz aus. Wenn ich aber die Beiträge lese, kommt der Wunsch mein Gerät universeller zu gestellten und die Grenze deutlich nach oben zu verschieben. <faustian wrote> Das mit der niedrigeren Frequenz beim zweiten kaskadierten Zaehler funktioniert so aber nur bei einem Asynchronzaehler.... Warum? Ist eine solch Kombination sinnvoll? 74AC74 oder 74f74 (als Eingang) oder einem anderen auslesbaren Vorteiler (geteilt durch 2 oder 4) um auf 50MHz oder weniger zu kommen 3-4 74HC590 (oder weniger, wenn der interne Zähler des AVR verwendet wird) Bei Frequenzen über 50MHz ist eine Eingangsbeschaltung nicht mehr trivial. Einige Vorschläge sind sicherlich nicht nur für mich interessant. Gruß Tom
>Das mit der niedrigeren Frequenz beim zweiten kaskadierten Zaehler >funktioniert so aber nur bei einem Asynchronzaehler.... Weil bei einem Synchronzaehler alle FlipFlops gleichzeitig schalten. Die Clock Eingaenge liegen dort alle parallel. Deshalb muessen die alle die hoechste Zaehlfrequenz abkoennen. Bei einem Asynchronzaehler liegt der Clock vom zweiten FlipFlop am Ausgang des ersten und muss dann nur die haelfte abkoennen. Syncronzaehler werden gebrauch wenn man das Ergebnis direkt nach dem Takt haben muss. In deinem Fall der Frequenzmessung brauchst du das aber nicht weil du mit dem auslesen durch den Prozessor Zeit hast.
Mit einem Vorteiler ist es ja schon ein wenig asynchron geworden. Bei einem echten Synchronzaehler bekommen alle Stufen denselben Takt, nur die Daten sind anders die dazwischen hergeschoben werden.
Hallo, 74ACT161 hat bei mir sicher bis 80MHz gezählt, darüber hatte ich keinen TTL-Pegel zur Verfügung. 80/16 wären 5MHz, die passen zum AVR. Die Ausgänge des ACT noch an 4 Portpins, dazu noch CLR und TE an den AVR und fertig. Zähler auf 0 mit CLR, dann für die Torzeit mit TE freigeben, anschließend eben A...D einlesen. Wären dann 20Bit mit dem 16Bit-Counter des AVR. Gruß aus Berlin Michael
Wenn es um eine Frequenzmeessung mit hoher auflösung geht sollte man in der Regel die Input Capture funktion nutzen und nicht einfach zählen. Das Gibt vor allem für niedriege Frequenz auch noch eine hohe Auflösung. Man kann so z.B. die Schwankungen der Netzfrequenz verfolgen. Bei vielen Chips kann man die ICP funktion über den extra ICP Eingang oder den analogen Comperator (und damit auch über AD Eingänge) laufen lassen. Man hat also schon die Möglichkeit intern die Quelle umzuschalten. Für höhere Frequenzen genügt dann ein einfacher Vorteiler. Da geht dann so ziehmlich jeder Zählerbaustein (wenigstens 7 Bit, besser 8). Bis ca. 100 kHz (bei mir gehen gut 300 kHz bei 20 MHz Quarz) sollte man noch ohne Verteiler verarbeiten können für höhere Frequenz wäre dann ein Teiler :256 oder so passend. Man sollte damit mit 2 Bereichen auskommen. Das direkte Signal kann an den ICP Pin das geteilte an den Comperator. Wenn man Angst hat wegen kurzer Pulse, eventuell immer einen Teiler durch 2 davor.
Ulrich wrote: > Wenn es um eine Frequenzmeessung mit hoher auflösung geht sollte man in > der Regel die Input Capture funktion nutzen und nicht einfach zählen. > Das Gibt vor allem für niedriege Frequenz auch noch eine hohe Auflösung. Ist aber bei höheren Frequenzen komplett unbrauchbar.
Jörg Wunsch wrote: > Ulrich wrote: >> Wenn es um eine Frequenzmeessung mit hoher auflösung geht sollte man in >> der Regel die Input Capture funktion nutzen und nicht einfach zählen. >> Das Gibt vor allem für niedriege Frequenz auch noch eine hohe Auflösung. > > Ist aber bei höheren Frequenzen komplett unbrauchbar. Besser gesagt, schadet nix bei hohen Frequenzen. Ich messe etwa 0,5s und dann bis zur nächsten Flanke des Eingangssignals. Damit habe ich die Dauer n für die Periodenanzahl m. f_input = f_Quarz * m / n Dazu geht der Eingang auf ICP und T0. Und damit erreiche ich ne hohe Genauigkeit (5 Digits), egal ob ich 0,5Hz oder 10MHz messe ohne jede Umschaltung. Wenn der GCC double könnte, wärs noch genauer. Bloß für den Vorteiler bei >10MHz braucht man ne Bereichsumschaltung. Peter
Übrigens , CSD hat mir neulich diese IC bestellt und geliefert > SN74LV8154N 32 bit mit parallel out in einem chip für unter 2 euro. gruss klaus
@An alle Vielen Dank für eure Hilfe. Ich werde jetzt die vielen Beiträge in Ruhe durcharbeiten. Ihr habt auch viele meiner ungestellten Fragen beantwortet :-)) Gruß Tom
guck dir den an : www.herbert-dingfelder.de/freq_counter/freq_counter.html Ich habe es auch benutzt, zwar etwas umgebaut mit autorange, mehreren gate times, und zwei vortilern ( 200-250 mhz mit 74ACT74 und 1GHZ mit u6060b ), aber im prinzip is das was DL5NEG vorgeschlagen gut genug ( je nach quarz kann es probleme beim abgreifen geben, ich habe persönlich einen oszilator mit 10.240 mhz genommen ) Den U6060B kann ich nicht empfehlen, ist schon 100 jahre alt das teil, dafür gibts bessere neuere teile, ich hatte den noch hier und da er ttl ausgang hat war es keine schlechte idee - habe bis 533 ttl/cmos signale damit gemessen, ohne probleme.
Naja, eine Auflösung von 10 Hz ist auch weit oberhalb der gängigen Möglichkeiten. Aber für Amateurfunker reicht das sicher. Industrie-Elektroniker sind da anspruchsvoller.
Ich habe ein Zähler auf AVR basis, der die ICP Funktion nutzt. Bis etwa 200 kHz (bis etwa 330 kHz gehen) wird das direkte Signal ohne Tieler genutzt und dabei über mehrere Perioden gemessen. Dabei wird nicht nur die erste undletzte Zeit genutzt, sondern jeweils der Mittelwert aus einigen Messungen. Ideal wäre eine lineare Interpolation der Zeiten, das war mit aber etwas zu rechenintensiv (vor allem in ASM). Das gibt eine wirklich hohe Auflösung auch nach einer kurzen Gate Zeit. Für höhere Frequenzen reicht ein Teiler :256 dann für Frequenzen bis gut 50 MHz, sofern es der Eingangsteil mitmacht. Auch mit dem Teiler kreigt man schon ab etwa 10 kHz eine gute Auflösung. Bei praktisch jeder Frequenz besser als man es durch einfaches Zählen hinkriegen kann.
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.