Hallo zusammen, ich suche einen TTL Baustein der folgende Aufgabe erfülen soll. Ich gebe ein Takt hinein und parallel 8bit. Der Ausgang sollte soviele Takte high bleiben, wie parallel hinein geladen wurden, danach wieder low. Wie nennt sich solch ein Baustein? Kennt jemand was brauchbares? Danke schön schon mal, hoffe jemand kann mir helfen.
Vielleicht geht es nur mir so, aber ich verstehe beim besten Willen nicht was Du möchtest.
Hi >Vielleicht geht es nur mir so, aber ich verstehe beim besten Willen >nicht was Du möchtest. Nach längerem Überlegen würde ich auf eine Rückwärtszähler mit Preload tippen. Als ein IC fällt mir da nichts ein. Aber mit 2 74xx92 oder 93 könnte es gehen. MfG Spess
Suche mal unter 'programmable counter'. Auswendig weiß ich jetzt nur 74160 mit 4 Bit, es gibt aber sicher auch moderneres. Grüße, Peter
Klingt ein bischen wie ein ladbarer Zähler plus etwas Gedöns drumrum. Oder natürlich platzsparend nach einem entsprechend programmierten µC.
Das müsste ein Binärabwärtszähler sein. Guck mal bei NXP.com im der Logic-Abteilung. Es gibt Zähler, die in beide Richtungen zählen können und denen man einen Wert vorgeben kann.
Ich plädire auch für einen kleinen µC mit mindestens 10 I/Os (Takt-Input+8-Bit-Wert+Output). Z.B. nen kleinen MSP430
Ich denke nicht, dass ein Zähler direkt das ist was er haben möchte. So wie ich das verstanden habe, möchte er beispielweise eine binäre 5 anlegen, woraufhin die Baugruppe für die nächsten 5 Takte ein High Signal erzeugt. eine binäre 67 anlegen, woraufhin die Baugruppe für die nächsten 67 Takte ein High Signal erzeugt. Hmm. Ein 9 Bit Rückwärtszähler müsste das können. 9 Bit deshalb weil das 9. Bit der Ausgang ist und das ganze darauf basiert, dass bei einem Unterlauf über 0 drüber das 9. Bit dann seinen Pegel ändert. Will ich 67 Takte haben, lade ich die 67 (oder 66?) in den Zähler. Das 9. Bit ist dann low. Während des runterzählens ist es immer noch low bis die 0 erreicht ist. Beim nächsten Zählvorgang erfolgt der Unterlauf und das 9. Bit wird high. Summa summarum: Nach der eingestellten Anzahl an Takten ändert das 9. Bit seinen Pegel. So in etwa, einfach nur als Idee präsentiert. Unklar ist: Was soll passieren, wenn die Taktanzahl geändert wird, während der Zähler noch am zählen ist? Soll sich der ganze Vorgang periodisch wiederholen oder ein Einmalereignis sein? Ich denke allerdings, dass ein kleiner µC die wahrscheinlich deutlichst einfachste Lösung für das Problem darstellt.
Ich würde auch mindestens 3 TTL-ICs als nötig ansehen. Oder einen MC (ATtiny24) oder CPLD (GAL22V10) programmieren. Peter
74HC/HCT40103 Ist zwar CMOS, aber die ttl-kompatible Variante. Sollte wohl einigermaßen passen.
Ich könnte mir vorstellen, er sucht eine "Eimerkette" mit programmierbarer (8-Bit-Wert) Länge. Dafür hat man die CPLDs oder uCs erfunden...
nee - nix Eimerkette (Schieberegister). Er will doch einen 8bit-Wert laden, und dann abwärts zählen - also typischer Rückwärtszähler mit Preload-Eingängen. Man kann ihn also mit Wert X laden, und dann zählt er mit jedem Takt rückwärts X-mal bis 0 - solange bleibt der Eingang auf H (oder L - kann mann sich beim 40103 aussuchen)
Na gut, geb mich geschlagen... Aber den dürftigen Angaben kann man ja alles hineininterpretieren.
Karl heinz Buchegger schrieb: > eine binäre 5 anlegen, woraufhin die Baugruppe für die nächsten 5 Takte > ein High Signal erzeugt. > eine binäre 67 anlegen, woraufhin die Baugruppe für die nächsten 67 > Takte ein High Signal erzeugt. Sorry, wenn ich mich nicht ausreichend konkret ausgedrückt habe, aber Karl Heinz hat genau verstanden, was ich machen möchte. Ich werde mir jetzt mal die verschiedenen Lösungsansätze anschauen. Den 74hc160 hatte ich mir auch schon mal rausgesucht, sind halt nur 4bit... kann man ja vielleicht kaskadieren. Besten Dank an alle, ich melde mich weider, wenn ich die Vorschläge verifiziert habe. MfG, Michael
Michael schrieb: > Karl heinz Buchegger schrieb: >> eine binäre 5 anlegen, woraufhin die Baugruppe für die nächsten 5 Takte >> ein High Signal erzeugt. >> eine binäre 67 anlegen, woraufhin die Baugruppe für die nächsten 67 >> Takte ein High Signal erzeugt. > > Sorry, wenn ich mich nicht ausreichend konkret ausgedrückt habe, aber > Karl Heinz hat genau verstanden, was ich machen möchte. Ich denke andere haben das schon auch verstanden. Ob es allerdings einen einzelnen IC dafür gibt .... Du suchst eine diskrete Schaltung dafür
1 | #include <avr/io.h> |
2 | |
3 | #define TRIGGER_PORT PIND
|
4 | #define TRIGGER_DDR DDRD
|
5 | #define TRIGGER_PIN PD0
|
6 | |
7 | #define OUTPUT_PORT PORTD
|
8 | #define OUTPUT_DDR DDRD
|
9 | #define OUTPUT_PIN PD1
|
10 | |
11 | #define CLOCK_PORT PIND
|
12 | #define CLOCK_DDR DDRD
|
13 | #define CLOCK_PIN PD2
|
14 | |
15 | #define COUNTER_PORT PINB
|
16 | #define COUNTER_DDR DDRB
|
17 | |
18 | int main() |
19 | {
|
20 | uint8_t counter; |
21 | uint8_t i; |
22 | |
23 | TRIGGER_DDR &= ~( 1 << TRIGGER_PIN ); |
24 | CLOCK_DDR &= ~( 1 << CLOCK_PIN ); |
25 | COUNTER_DDR = 0xFF; |
26 | |
27 | OUTPUT_DDR |= ( 1 << OUTPUT_PIN ); |
28 | |
29 | OUTPUT_PORT &= ~( 1 << OUTPUT_PIN ); |
30 | |
31 | while( 1 ) { |
32 | |
33 | // wait for 0 - 1 on Trigger Port
|
34 | while( !( TRIGGER_PORT & ( 1 << TRIGGER_PIN ) ) ) |
35 | ;
|
36 | |
37 | // get the intended counter value
|
38 | counter = COUNTER_PORT; |
39 | |
40 | // wait for 0 on clock
|
41 | // output should go high with the first raising clock edge
|
42 | while( CLOCK & ( 1 << CLOCK_PIN ) ) |
43 | ;
|
44 | |
45 | // count the clock pulses until
|
46 | // the match the intended counter value
|
47 | |
48 | for( i = 0; i < counter; ++i ) { |
49 | // wait for 0->1 (raising edge) on clock
|
50 | while( !( CLOCK_PORT & ( 1 << CLOCK_PIN ) ) ) |
51 | ;
|
52 | |
53 | OUTPUT_PORT |= ( 1 << OUTPUT_PIN ); |
54 | |
55 | // wait for 1->0 (falling edge) on clock
|
56 | while( CLOCK & ( 1 << CLOCK_PIN ) ) |
57 | ;
|
58 | }
|
59 | |
60 | // wait for another 'low' cycle on the clock to complete
|
61 | // the last clock pulse
|
62 | while( !( CLOCK_PORT & ( 1 << CLOCK_PIN ) ) ) |
63 | ;
|
64 | |
65 | // that's it, enough clock pulses counted, output low again
|
66 | OUTPUT_PORT &= ~( 1 << OUTPUT_PIN ); |
67 | }
|
68 | }
|
>Ich denke andere haben das schon auch verstanden. Ob es allerdings einen >einzelnen IC dafür gibt .... Vielleicht stelle ich mich nur etwas dusslig an, wenn es ums Verstehen des Problems geht. Aber sollte der 74HC/HCT40103 nicht genau das sein, was gesucht wurde?
@ Jens G. (jensig) >Vielleicht stelle ich mich nur etwas dusslig an, wenn es ums Verstehen >des Problems geht. Aber sollte der 74HC/HCT40103 nicht genau das sein, >was gesucht wurde? Fast. Braucht man noch einen BCD to binary Dekoder, um die Taktanzahl dezimal eingeben zu können. Die Jugend von heute kann ja nicht mehr Binärzahlen lesen ;-) MfG Falk
Nicht ganz, denn alle diese Zähler laden permanent bei aktivem Ladesignal, d.h. sie fangen erst an zu zählen, wenn der Eingang wieder inaktiv ist. Folglich muss noch etwas Logik zwischen "Eingang" und "Load". Ausserdem läd der 40103 asynchron. Wenn der Ausgang synchron mit dem Takt starten soll, dann ist man mit einem synchron ladenden Zähler wie dem '592 einfacher dabei.
@ A. K. (prx)
>"Load". Ausserdem läd der 40103 asynchron.
Der kann auch synchron.
MFg
Falk
@ Falk Brunner (falk) >Fast. Braucht man noch einen BCD to binary Dekoder, um die Taktanzahl >dezimal eingeben zu können. Die Jugend von heute kann ja nicht mehr >Binärzahlen lesen ;-) Nun, da muß ich wohl was beim Zwischen-den-Zeilen-Lesen etwas überlesen haben ;-) >@ A. K. (prx) >>"Load". Ausserdem läd der 40103 asynchron. >Der kann auch synchron. >MFg >Falk So isses - je nach Pegel an den Steuereingängen.
Ich hab das Problem nochmal aufs grundlegende aufgedröselt, siehe Bild. Wenn ich kein voreinstellbaren 8bit Zähler bekomme, der rückwärts zählen kann, könnt ich ja auch nen 4bit rückwärts Zähler nehmen. Und dann halt nen 8xOR oder halt mehrere OR entsprechend zusammen schalten.
Michael schrieb: > Wenn ich kein voreinstellbaren 8bit Zähler bekomme, der rückwärts zählen > kann, Wie hier schon x-mal aufgeführt wurde gibt es wehr wohl diverse voreinstellbare 8-Bit Zähler, die sogat exakt dieses von dir skizzierte OR-Gate bereits enthalten. Was sie alle nicht enthalten ist eine Logik, die aufgrund einer positiven Flanke laden.
der 40103 ist ein 8bit-er, voreinstellbar, rückwärtszählend, einen (neg.) Ausgang, ...
Beim 40103 ist übrigens alles Active-L - könnte durchaus etwas störend sein. Ach ja - für Freunde von Dezimalzählern gibt's auch den Bruder 40102.
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.