Forum: Mikrocontroller und Digitale Elektronik hc zähler instabil


von Denton M. (denton_m)


Angehängte Dateien:

Lesenswert?

Hallo,
Frage zu der Beschaltung von 5-Bit-Zählers CD74HC4017PWR. Siehe Anhang.

Es wurde von mir eine Schaltung auf einem PIC16f887 MC entwickelt.

Kurze Erläuterung der Funktion der Schaltung. Es soll ein Kabeltester 
werden. Auf anderer Seite von Stecker 10126 gibt es ein 10226 Stecker 
und die Pins sind über Pulldown (10k) und teils über UND-Gatter mit µC 
verbunden. Der µC prüft, ob die Verbindung da ist und meldet es über 
LCD...

Alles andere wie LCD16x2 und die Abfrage an den Ports RA und RB läuft 
einwandfrei. Aber Zähler verhält sich instabil. Entweder schaltet(zählt) 
er gar nicht oder bleibt auf Q2 oder Q4 stehen.

Der PIC läuft mit dem 8MHz internal Oszillator
betrieben wird mit einem Li-Ion-Akku 3,7 Volt

von Christian S. (roehrenvorheizer)


Lesenswert?

Hallo,

mit den Details des PICs kenne ich mich nicht aus.
Mögliche Fehlerquellen:

der 100nF-Kondesator ist defekt.

der PIC bringt an seinen Ausgängen nicht die passenden H und L 
logic-level, die zur HC-Serie passen.

Flankensteilheit des clock-Pulses zu gering

lange Leitungen mit dadurch provozierten Überschwingern durch 
Reflexionen

LAtchup entfällt, sonst hättest Du Erwärmung angegeben

Reset kann nicht unabhängig von Q5 ausgelöst werden. Hier mal an Q5 
einen Widerstand einbauen in Richtung Reset, z.B. 10k Ohm.

mfG

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Der 4017 hat keine Open-Drain Ausgänge, d.h. bei einem Kurzschluß im 
Kabel kommt es zu Datenkämpfen (hohe Stromaufnahme, Latchup).

Reset mit einem Ausgang zu verbinden, verletzt die minimal nötige 
Haltezeit, es kann ein unvollständiges Reset erfolgen.

Wozu überhaupt der 4017, der MC kann doch Open-Drain viel besser.

von Günni (Gast)


Lesenswert?

Peter D. schrieb:
> Reset mit einem Ausgang zu verbinden, verletzt die minimal nötige
> Haltezeit, es kann ein unvollständiges Reset erfolgen.

Das kann hier nicht passieren. Die Haltezeiten gelten für Signale, die 
von externen Quellen angelegt werden. Verwendet man Signale aus dem 
Baustein selbst, gelten diese Bedingungen nicht. Ein Blick auf die 
Innenbeschaltung zeigt, dass das zulässig hier ist. Nicht zulässig wäre 
es, wenn mehrere Bausteine von dem Ausgang eines Bausteins so betrieben 
werden, da die Laufzeiten von Baustein zu Baustein exemplarbedingt 
variieren.

Ich vermute als Ursache für die Probleme ein aufbaubedingtes Problem 
oder eine Verletzung der Spezifikation für das Taktsignal (Pegel, 
Frequenz, Spikes, ...).

von Peter D. (peda)


Lesenswert?

Günni schrieb:
> Verwendet man Signale aus dem
> Baustein selbst, gelten diese Bedingungen nicht.

Kann man nicht pauschal sagen.
Ich hatte das mal mit einem CD4024 Zähler versucht, da ging das nicht 
zuverlässig. Erst als ich zwischen Ausgang und Resetpin ein RC-Glied 
geschaltet habe, hat der Zähler richtig gezählt.

von Günni (Gast)


Lesenswert?

Peter D. schrieb:
> Kann man nicht pauschal sagen.
> Ich hatte das mal mit einem CD4024 Zähler versucht, da ging das nicht
> zuverlässig. Erst als ich zwischen Ausgang und Resetpin ein RC-Glied
> geschaltet habe, hat der Zähler richtig gezählt.

Hängt tatsächlich von der Innenbeschaltung ab und meine Bemerkung galt 
für den 4017. Beim 4024 klappt es z.B. sicher, wenn man das erste 
Auftreten eines Zählerstandes per NAND-Gatter auscodiert und dessen 
Ausgang auf den Reset legt.

von Günni (Gast)


Lesenswert?

Peter D. schrieb:
> Kann man nicht pauschal sagen.
> Ich hatte das mal mit einem CD4024 Zähler versucht, da ging das nicht
> zuverlässig. Erst als ich zwischen Ausgang und Resetpin ein RC-Glied
> geschaltet habe, hat der Zähler richtig gezählt.

Hängt tatsächlich von der Innenbeschaltung ab und meine Bemerkung galt 
für den 4017. Beim 4024 klappt es z.B. sicher, wenn man das erste 
Auftreten eines Zählerstandes per NAND-Gatter auscodiert und dessen 
Ausgang auf den Reset legt.

Ergänzung: Bei Ripple-Countern wie 4024, 4040, 4060 usw. darf man nur 
die "1"-en auscodieren und muss darauf achten, dass die Durchlaufzeit 
zwischen dem höchsten und die niedrigsten Bit dazwischen geringer als 
die "Verweildauer" des niedrigsten Bits ist. Datenblätter sollte man 
halt lesen und verstehen, sonst sind Probleme vorprogrammiert. Dann 
bleibt bei "quick and dirty"-Lösungen oft nur "dirty" übrig.

von Denton M. (denton_m)


Lesenswert?

Aus dem Datenblatt: The  ’HC4017  is  a  high  speed  silicon  gate 
CMOS  5-stageJohnson  counter  with  10  decoded  outputs.  Each  of 
the decoded outputs is normally low and sequentially goes high on  the 
low  to  high  transition  clock  period  of  the  10  clock period 
cycle.

Peter D. schrieb:
>Der 4017 hat keine Open-Drain Ausgänge, d.h. bei einem Kurzschluß im
>Kabel kommt es zu Datenkämpfen (hohe Stromaufnahme, Latchup).

-Each  of  the decoded outputs is normally low... bedeutet es, dass wenn 
es z.B. Q1 high ist und es zu einem Kurzschluss (im Kabel) mit Q2 (low) 
kommt, dann gibt es einen Kurzschluss am IC(Zähler)?

-HC Types-2V to 6V Operation ->PASST
-High Noise Immunity: NIL = 30%, NIH = 30% of VCC t VCC = 5V ->auch gut.
-Input Rise and Fall Time: 2V . .1000ns (Max)
                         4.5V . . 500ns (Max) -> mehr als genug.
nicht klar:
Prerequisite for Switching Specifications->
Maximum Clock Frequency->Vcc 4.5V MIN:30MHz!!!
Was bedeutet MAX Frequency min:30MHz (bei 2Vcc sind es 6Mhz)???
kann das die Ursache sein?

Der Grund warum ich überhaupt auf den Zähler gekommen bin, ich wollte 
die IO-Ports auf dem µC sparen. Da ich noch 4 Augänge frei habe, denke 
ich, den Zähler im Notfall damit zu ersetzen.

von Harald W. (wilhelms)


Lesenswert?

Peter D. schrieb:

> Der 4017 hat keine Open-Drain Ausgänge, d.h. bei einem Kurzschluß im
> Kabel kommt es zu Datenkämpfen (hohe Stromaufnahme, Latchup).

Normale 4017 haben damit keine Probleme, aber wie sich da ein
74HC4017 benimmt, weiss ich nicht.

von Christian S. (roehrenvorheizer)


Lesenswert?

- Richtig

- die obere Frequenzgrenze hängt von der Betriebsspannung ab und wird 
mit kleinerer Betriebsspannung niedriger. Wobei nur das Minimum 
spezifiziert ist.

Kommen 30 MHz aus Deinem PIC? Vermutlich nicht.

Mfg

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Denton M. schrieb:
> Peter D. schrieb:
>>Der 4017 hat keine Open-Drain Ausgänge, d.h. bei einem Kurzschluß im
>>Kabel kommt es zu Datenkämpfen (hohe Stromaufnahme, Latchup).
>
> -Each  of  the decoded outputs is normally low... bedeutet es, dass wenn
> es z.B. Q1 high ist und es zu einem Kurzschluss (im Kabel) mit Q2 (low)
> kommt, dann gibt es einen Kurzschluss am IC(Zähler)?

Ja. Speziell bei 74HC sind p-Kanal- und n-Kanal-MOSFET ungefähr gleich 
und es stellt sich an beiden kurzgeschlossenen Ausgängen des Zählers 
ungefähr Vcc/2 ein. Dabei fließt je nach Betriebsspannung ordentlich 
Querstrom.

> nicht klar:
> Prerequisite for Switching Specifications->
> Maximum Clock Frequency->Vcc 4.5V MIN:30MHz!!!
> Was bedeutet MAX Frequency min:30MHz (bei 2Vcc sind es 6Mhz)???

Es ist der mindestens garantierte Wert der Schaltfrequenz. Weil man für 
die Schaltfrequenz natürlich den Maximalwert angibt, die etwas 
unglückliche Kombination aus min/max.

> kann das die Ursache sein?

Nein.

> Der Grund warum ich überhaupt auf den Zähler gekommen bin, ich wollte
> die IO-Ports auf dem µC sparen. Da ich noch 4 Augänge frei habe

Mit 3 Ausgängen am µC könntest du auch einen von 8 Ausgängen eines 
74HC138 auf L setzen (alle anderen auf H). Das ist bis auf die 
invertierte Logik genau die gleiche Funktion. Allerdings hast du auch 
hier das Problem, keine open-collector Ausgänge zu bekommen. Dafür 
müßtest du schon richtiges TTL verwenden.

: Bearbeitet durch User
von Günni (Gast)


Lesenswert?

Denton M. schrieb:
> bedeutet es, dass wenn
> es z.B. Q1 high ist und es zu einem Kurzschluss (im Kabel) mit Q2 (low)
> kommt, dann gibt es einen Kurzschluss am IC(Zähler)?

Die Ausgänge sind über Pufferstufen vom Zähler selbst entkoppelt. Jeder 
Pin darf maximal mit 25 mA belastet werden. Wenn ein Kurzschluss zu 
erwarten ist, sollte man in die Leitungen Längswiderstände von 200 Ohm 
einfügen, um auf der sicheren Seite zu sein. Insgesamt darf das IC nur 
50 mA über die VCC und GND Pins ziehen. Da bei diesem IC immer nur ein 
Ausgang gleichzeitig einen High-Pegel ausgibt, ist ein Überschreiten 
dieses Grenzwertes nicht zu befürchten. (Das wäre anders, wenn mehrere 
Ausgänge nach VCC kurzgeschlossen werden.) Kurzschlüsse können sich auf 
den Zählerstand auswirken, wenn durch ungünstige (schlechte) 
Verbindungen zu VCC und GND durch den Strom ein Spannungsversatz 
auftritt. Wenn dann die Eingangssignale "gute" Pegel haben, kann sogar 
die zulässige Eingangsspannung über- oder unterschritten und 
schlimmstenfalls ein "Latch-Up" erzeugt werden.

von Günni (Gast)


Lesenswert?

Denton M. schrieb:
> Maximum Clock Frequency->Vcc 4.5V MIN:30MHz!!!
> Was bedeutet MAX Frequency min:30MHz (bei 2Vcc sind es 6Mhz)???

In meinem Motorola Datenbuch steht bei 2 V Versorgung bei 25°C 
Umgebungstemperatur eine typische maximale Frequenz von 8 MHz, 
garantiert werden aber nur 4 MHz. Bei einer Versorgung von 4,5 V 
(Versorgung mit 5V bei einer Toleranz der Versorgung von 10%) eine 
typische Maximalfrequenz von 40 MHz, garantiert sind da aber nur 20 MHz. 
Steigt die Temperatur des IC (beispielsweise durch Leistungsabgabe an 
Verbraucher wie die Leitungen) auf 85°C, sinkt die Frequenz um etwa ein 
Viertel.

von Bronko (Gast)


Lesenswert?

Hi Denton,

häng doch mal ein Oszilloskop oder Logik-Analyse dran. (CLK, RST,...) 
Vlt. siehst du dann selbst schon was schief läuft, sonst einfach hier 
posten.

Es wäre interessant den Schaltungsteil zu sehen der die Pins steuert. So 
kann man nur allgemein mutmaßen.

Gruß

von Denton M. (denton_m)


Lesenswert?

Bronko schrieb:
>häng doch mal ein Oszilloskop
Pico 2205A MSO USB-Oszilloskop ist unterwegs.;)

von Denton M. (denton_m)


Angehängte Dateien:

Lesenswert?

Stimmt es, was ich und die anderen über Kurzschluss geschrieben haben, 
wenn man an den LOW-Ausgängen des Zählers ein HIGH-Signal von außen 
gibt? Dann ist mein Schaltplan nicht korrekt, denn ich wollte mit RD1 
von PIC zurücksetzen.

von Peter D. (peda)


Lesenswert?

Denton M. schrieb:
> denn ich wollte mit RD1
> von PIC zurücksetzen.

Dann laß die Verbindung zu Q5 einfach weg.
Q1..Q4 schließen bei Kabelfehler aber weiterhin kurz. Daher solltest Du 
dort Dioden verwenden.

von Stefan F. (Gast)


Lesenswert?

Wenn du einen Ausgang der auf LOW liegt von außen auf HIGH ziehst hast 
du einen Kurzschluss. Entweder gewinnt der stärkere, oder das Ergebnis 
wird ein unklarer Signalpegel. Oder es geht sogar etwas kaputt.

Bei niedrigen Frequenzen kann man eine der beiden Quellen durch einen 
Widerstand in reihe schwächer machen, um so die Priorität festzulegen, 
wer gewinnen soll.

von Teo D. (teoderix)


Lesenswert?

Stefan ⛄ F. schrieb:
> Bei niedrigen Frequenzen kann man eine der beiden Quellen durch einen
> Widerstand in reihe schwächer machen, um so die Priorität festzulegen,
> wer gewinnen soll.

Habens Dir Heute wieder mal Entkoffeinierten untergejubelt!? ;)

Das muss verodert werden (nicht "verödet"!) und da leisten hier Dioden 
hervorragende Dienste.
https://www.elektronik-kompendium.de/sites/dig/0710091.htm

von Stefan F. (Gast)


Lesenswert?

Teo D. schrieb:
> Das muss verodert werden

Wieso? Er kann doch den Ausgang des Mikrocontroller hochohmig schalten, 
solange er den Zähler nicht überstimmen will. Das macht er bereits, 
falls ich ihn richtig verstanden habe.

von Teo D. (teoderix)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wieso? Er kann doch den Ausgang des Mikrocontroller hochohmig schalten,
> solange er den Zähler nicht überstimmen will.

Was nutzt das? Den genau dass will er doch!
Damit kann er sich höchsten eine Diode einsparen.

von Stefan F. (Gast)


Lesenswert?

Teo D. schrieb:
> Damit kann er sich höchsten eine Diode einsparen.
Und einen Pull-Down Widerstand.

von Peter D. (peda)


Lesenswert?

Denton M. schrieb:
> Da ich noch 4 Augänge frei habe, denke
> ich, den Zähler im Notfall damit zu ersetzen.

Dann mach das doch. Dann sind immer noch 2 Pins frei und Du kannst 
Open-Drain Ausgänge programmieren.

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
Noch kein Account? Hier anmelden.