Hallo Leute, ist erst einmal nur Neugier für ein mögliches Projekt. Ich stehe gerade auf dem Schlauch zum Datenblatt. Es geht um ATMEGA644P/ATMEGA1284P, aber das ist wohl nicht entscheidend. Ist es möglich, mit Hilfe eines 8-Bit-Timers (z.B. TIMER0) an einem Pin den halben Systemtakt auszugeben? Und wenn ja, wie macht man das am geschicktesten? Ich sehe da zwei Möglichkeiten, weiß aber nicht, ob die funktionieren würden. 1.) OCR0A auf 0x00, den Timer auf CTC und OC0A auf "Toogle on Compare Match" setzen. Ausgang wäre dann OC0A. Der Timerwert immer 0x00 (geht das?) 2.) OCR0A auf 0x01, den Timer auf CTC, OCR0B auf 0x01 und OC0B auf "Clear OC0B on Compare Match, set OC0B at BOTTOM" setzen. Ausgang wäre dann OC0B, der Timer immer zwischen 0x00 und 0x01 wechseln. Vielen Dank für jede Antwort. Gruß, DetlevT
Detlev T. schrieb: > 1.) OCR0A auf 0x00, den Timer auf CTC und OC0A auf "Toogle on Compare > Match" setzen. Ausgang wäre dann OC0A. Der Timerwert immer 0x00 (geht > das?) Genau so geht's. Alternativ kannst du über die CKOUT-Fuse den vollen Systemtakt auf ein Pin legen lassen.
Jörg Wunsch schrieb: > Alternativ kannst du über die CKOUT-Fuse den vollen Systemtakt auf > ein Pin legen lassen. So würd ich das auch machen. Dann kannst du noch einen beliebigen Frequenzteiler dahinter packen und du hast einen Timer für sinnvollere Sachen frei :) Gruß
Joachim A. schrieb: > und du hast einen Timer für sinnvollere > Sachen frei Andererseits muss ich zugeben, dass ich bislang wohl noch nie beide 8-bit-Timer der großen AVRs benötigt habe. Der Vorteil der Lösung mit dem Timer ist, dass man die Frequenz noch (in Grenzen) variieren kann. So funktioniert ja die Erzeugung des Target-Takts auf dem STK500.
Na, wenn du doch schon weißt, wie das so wo funktioniert, dann mach es doch einfach :) Wenn du mit deinen Hardware-Ressourcen soweit hinkommst ist doch alles tutti...
Joachim A. schrieb: > So würd ich das auch machen. Dann kannst du noch einen beliebigen > Frequenzteiler dahinter packen und du hast einen Timer für sinnvollere > Sachen frei :) Diese zusätzliche Hardware will ich Geizhals ja gerade einsparen. Am liebsten wäre es mir sogar, wenn es einen Pin gäbe, der sich via Software zwischen vollem und halben Systemtakt umschalten lässt. Das es so etwas nicht gibt, habe ich aber schon allein herausgefunden. ;) Fiktiv etwas zum Tüfteln für diejenigen, denen so etwas Spaß macht und mit dem heutigen Sudoko schon fertig sind: Nehmen wir an, ich würde ein(!) zusätzliches IC spendieren wollen. Fällt euch eine Schaltung ein mit folgenden Bedingungen: 1.) Zur Verfügung stehen der volle Takt aus einem Quarzoszillator (25MHz) sowie ein Signal aus einem ATMEGA-Pin. Letzterer könnte low, high oder ein Takt mit halber Frequenz sein, wegen der Laufzeiten dann aber wohl etwas phasenverschoben. 2.) Je nach Konfiguration dieses Pins soll die Schaltung entweder den vollen oder den halben Systemtakt ausgeben. 3.) High und low müssen mindestens 16ns dauern, ein Duty-Cycle von 50% ist nicht(!) nötig. 4.) Das ganze muss sich mit einem einzigen IC realisieren lassen, , vorzugsweise ein 74HCXXXX, nach Möglichkeit keine weiteren Komponenten (z.B. RC-Glieder) 5.) Es dürfen nur ICs verwendet werden, die bei Reichelt verfügbar sind. Ist wie gesagt mehr eine Denksportaufgabe als eine wirkliche Option. Eher würde ich am Ende einen Jumper nehmen, das würde eigentlich genügen. Gruß, DetlevT
Detlev T. schrieb: > Es dürfen nur ICs verwendet werden, die bei Reichelt verfügbar sind. XC 9536-15 PC44 :-)
Wer hat, der kann. :-) Ich denke da eher an ein (N)AND/(N)OR, wo man mit dem halben Systemtakt jeden zweiten Impuls "wegmaskiert", bei festem Pegel kommen dann alle Impulse durch.
Ein Widerstand (1k) von CLKO nach OC0A. Ist OC0A tristate, liegt die volle Frequenz an. Ist OC0A ein Ausgang, dann die geteilte Frequenz. Peter
Hallo Peter. das dürfte einem zusammen mit den unvermeidlichen Kapazitäten wohl ziemlich die Flanken versauen. Die ursprüngliche Frage wurde aber voll beantwortet. Dafür noch einmal Danke. DetlevT
Detlev T. schrieb: > das dürfte einem zusammen mit den unvermeidlichen Kapazitäten wohl > ziemlich die Flanken versauen. Ein 74HC14 dahinter. Allerdings bekommst du das als single gate IC nicht bei Tante Reichelt Nachf.
Hallo ihr Tüftler, noch ein Nachklapp zur Info, vielleicht braucht es ja eines Tages noch jemand. Ich denke, ich habe da noch eine gute Idee gehabt, die keine weitere Hardware braucht. Vielleicht kann das irgendjemand irgendwann noch gebrauchen. Ich hatte euch vorenthalten, dass damit ein Schieberegister 74HC166 angesteuert werden soll, das seine Daten dann entweder mit vollem oder halben Systemtakt herausschiebt. Der Systemtakt kommt dabei aus einem externen Quarzoszillator. Es müsste eigentlich gehen, wenn man den /CE-Eingang des 74HC166 entweder mit low-pegel oder halbem Systemtakt ansteuert. Im ersten Fall läuft er dann mit vollem Takt, im zweiten wird jeder zweite Impuls ignoriert, das Shiften läuft dann mit halbem Systemtakt. Pathologisch wäre es nur, wenn beide Signale "zu" synchron wären, damit ist wegen der Gatterlaufzeiten aber wohl eher nicht zu rechnen. Gruß, DetlevT
Wenn du ein zusätzliches IC willst, fällt mir spontan noch der 74HC4060 ein, dieser bietet einen Oszillator (einen Referenzquarz hast du ohnehin) sowie Teilerfaktoren 8/16/32 .. 8192, Betrieb mit externem Takt ist ebenfalls möglich. Allerdings bist du durch den geringsten Teilerfaktor 8 etwas beschränkt, die maximale Taktfrequenz beträgt 88 MHz, also 11 MHz Systemtakt maximal. Weiterhin gibt es noch den 74x74 mit 2 D-Flipflops, die du einfach als Teiler/2 schalten kannst. Gruß, Christian
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.