mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TTL Baustein gesucht, 8bit "Counter"


Autor: Michael (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht geht es nur mir so, aber ich verstehe beim besten Willen 
nicht was Du möchtest.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Roth (gelb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Suche mal unter 'programmable counter'. Auswendig weiß ich jetzt nur 
74160 mit 4 Bit, es gibt aber sicher auch moderneres.

Grüße, Peter

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klingt ein bischen wie ein ladbarer Zähler plus etwas Gedöns drumrum. 
Oder natürlich platzsparend nach einem entsprechend programmierten µC.

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde auch mindestens 3 TTL-ICs als nötig ansehen.

Oder einen MC (ATtiny24) oder CPLD (GAL22V10) programmieren.


Peter

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
74HC/HCT40103
Ist zwar CMOS, aber die ttl-kompatible Variante. Sollte wohl 
einigermaßen passen.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
74HC593 ist ähnlich. Offen ist, welche Rolle der "Eingang" genau spielt.

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube mich an den 74HCT590 .. 592, oder so zu erinnern.

Autor: Bernd Rüter (Firma: Promaxx.net) (bigwumpus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Autor: Bernd Rüter (Firma: Promaxx.net) (bigwumpus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na gut, geb mich geschlagen...

Aber den dürftigen Angaben kann man ja alles hineininterpretieren.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
#include <avr/io.h>

#define TRIGGER_PORT    PIND
#define TRIGGER_DDR     DDRD
#define TRIGGER_PIN     PD0

#define OUTPUT_PORT     PORTD
#define OUTPUT_DDR      DDRD
#define OUTPUT_PIN      PD1

#define CLOCK_PORT      PIND
#define CLOCK_DDR       DDRD
#define CLOCK_PIN       PD2

#define COUNTER_PORT    PINB
#define COUNTER_DDR     DDRB

int main()
{
  uint8_t counter;
  uint8_t i;

  TRIGGER_DDR &= ~( 1 << TRIGGER_PIN );
  CLOCK_DDR   &= ~( 1 << CLOCK_PIN );
  COUNTER_DDR = 0xFF;

  OUTPUT_DDR  |= ( 1 << OUTPUT_PIN );

  OUTPUT_PORT &= ~( 1 << OUTPUT_PIN );

  while( 1 ) {

    // wait for 0 - 1 on Trigger Port
    while( !( TRIGGER_PORT & ( 1 << TRIGGER_PIN ) ) )
      ;

    // get the intended counter value
    counter = COUNTER_PORT;

    // wait for 0 on clock
    // output should go high with the first raising clock edge
    while( CLOCK & ( 1 << CLOCK_PIN ) )
      ;

    // count the clock pulses until
    // the match the intended counter value

    for( i = 0; i < counter; ++i ) {
      // wait for 0->1 (raising edge)  on clock
      while( !( CLOCK_PORT & ( 1 << CLOCK_PIN ) ) )
        ;

      OUTPUT_PORT |= ( 1 << OUTPUT_PIN );

      // wait for 1->0 (falling edge) on clock
      while( CLOCK & ( 1 << CLOCK_PIN ) )
        ;
    }

    // wait for another 'low' cycle on the clock to complete
    // the last clock pulse
    while( !( CLOCK_PORT & ( 1 << CLOCK_PIN ) ) )
      ;

    // that's it, enough clock pulses counted, output low again
    OUTPUT_PORT &= ~( 1 << OUTPUT_PIN );
  }
}

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  A. K. (prx)

>"Load". Ausserdem läd der 40103 asynchron.

Der kann auch synchron.

MFg
Falk

Autor: faustian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
74AS867 und ein bisschen Logik evtl...

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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.

Autor: Michael (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der 40103 ist ein 8bit-er, voreinstellbar, rückwärtszählend, einen 
(neg.) Ausgang, ...

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael (Gast)

>      IMG_0505.jpg
>      624,5 KB, 21 Downloads

Und wieder ein Kandidat für Bildformate

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.