Hallo,
im Anhang findet ihr eine Platine + Schaltplan meines Schieberegisters
mit dem ich Tasterdrücke einlese. Meine Frage ist jetzt, welches
Register (74HC165 oder 74HCT165) eigentlich besser geeignet ist für
"normales" Tastereinlesen im Bezug auf Stabilität. Gehen wir mal davon
aus, dass die Versorgungsspannung schwankt (...klar...die soll nicht
Schwanken, aber nur für den Fall dass sie es mal tut, welches Register
kann das besser verkraften?..)
Wenn ich das Datenblatt richtig verstehen, kann der 74HCT165 eine kleine
Range an Versorgungsspannung vertragen (4.5-5.5V) Der 74HC165 kann eine
Versorgungsspannung von 2.0-6.0 verkraften.
Sehe ich das schon einmal richtig so?
Somit würde ich sagen, dass der 74HC165 besser geeignet ist, im Bezug
auf schwankende Versorgungsspannnung.
Was passiert genau, wenn der 74HCT165 oder auch der 74HC165 mit zu
geringer Spannung versorgt wird? Sind die Schaltzustände dann
undefiniert, oder wie wirkt sich das aus?
Vielen Dank!
So sieht der Code dazu aus:
1
voidEingaenge_abfragen()
2
{
3
4
PORTC|=(1<<PC4);
5
6
// Mit PL alle Eingänge in das Register schieben.
7
8
// PL auf High
9
PORTC|=(1<<PC5);
10
// PL auf Low
11
PORTC&=~(1<<PC5);
12
// PL auf High
13
PORTC|=(1<<PC5);
14
15
inti;
16
//Abfragen welches Registerbit gesetzt -> mit clock weiter schieben
Alex schrieb:> Was passiert genau, wenn der 74HCT165 oder auch der 74HC165 mit zu> geringer Spannung versorgt wird? Sind die Schaltzustände dann> undefiniert, oder wie wirkt sich das aus?
Wenn zu geringe Spannung, dann Fehler in der Versorgung. Über das
Verhalten der HCT zu spekulieren ist Quatsch. Praktisch unvorhersagbar
auch weil du nicht die Art und Höhe der Unterspannung spezifiziert hast.
T steht für TTL Pegel. Da dein unerwähnter µC vermutlich ein AVR ist mit
CMOS Pegeln ist, nimm HC. Man mischt Familien/Pegel nicht ohne Not.
...ganz klar, ich habe auch vermutlich vereinzelt Probleme mit meiner
Versorgung. Richtig belegen kann ich es aber leider noch nicht, da
seeeehr sporadisch... Ich muss den Fehler beheben! Ich wollte halt über
das Verhalten der Schieberegister dazu mehr Licht ins dunkeln bekommen.
Ich muss gestehen, dass ich einfach in meiner Kiste gegriffen habe und
ich nicht einmal 100% weiß (da komplett kompatibel) ob ich den mit oder
ohen T verbaut habe....
Ich habe eine ATMEGA 1284p verbaut .
Alex schrieb:> ...ganz klar, ich habe auch vermutlich vereinzelt Probleme mit meiner> Versorgung. Richtig belegen kann ich es aber leider noch nicht, da> seeeehr sporadisch...
Die im Schaltbild abgebildeten Abblockkondensatoren hast Du auch
eingelötet und sind möglichst nah (mit kurzer Verbindung) an den ICs?
Läßt du den ser-Eingang von IC1 offen oder ziehst du ihn auf einen
definierten Pegel?
Ein PullUp würde dir die Jumper sparen.
Wie lang sind denn die Leitungen für Clock und Sample?
Da kommen wohl die Fehler am einfachsten in die Schaltung.
Insgesamt habe ich so um die 6-7 Platinen davon hintereinander am
Laufen und je nachdem wo die Platine sitzt, habe ich den Jumper von JP3
und JP4 passend gebrückt...
Also beim ersten IC1 liegt der SER auf GND, wenn ich mich richtig
entsinne...
Also das Flachbandkabel von AVR NET IO bis zur erten Paltine ist circa
20cm lang, dann sitzen die 6-7 Platine dicht aneinader, denke das die
Verbindung von JP4 zum nächsten JP3 circa 5cm lang sind...
Ich streue mir das irgendeine Scheiße rein, denke mittlerweile auch,
dass SPI dort der falsche Weg war, da evtl,. für EMV zu anfällig...
(???)
Alex schrieb:> Also das Flachbandkabel von AVR NET IO bis zur erten Paltine ist circa> 20cm lang, dann sitzen die 6-7 Platine dicht aneinader, denke das die> Verbindung von JP4 zum nächsten JP3 circa 5cm lang sind...
So heisst es richtig:
Verbindung von JP2 zum nächsten JP1 circa 5cm lang sind...
Deine Leitung von Clk und CD werden sehr lang ohne das du sie pufferst.
auch die zeitliche Verzögerung zum Datensignal könnte zu gross werden.
Ein zusätzlicher C 10-100µ in der Versorgung pro Platine wäre auch nicht
verkehrt.
HC oder HCT ist bei 5V völlig egal. Die Ausgangspegel beider Chips sind
zu den Eingängen von AVR kompatibel. Und der Ausgang vom AVR ist zu den
EIngängen beider Chips kompatibel.
Stefan U. schrieb:> HC oder HCT ist bei 5V völlig egal. Die Ausgangspegel beider Chips sind> zu den Eingängen von AVR kompatibel. Und der Ausgang vom AVR ist zu den> EIngängen beider Chips kompatibel.
Damit sind wir ja schon mal bei einem zielgerichtetem Vorgehen ein Stück
zurück.
n^2 schrieb:> Deine Leitung von Clk und CD werden sehr lang ohne das du sie pufferst.> auch die zeitliche Verzögerung zum Datensignal könnte zu gross werden
Wie könnte ich die denn Puffern?
> Ein zusätzlicher C 10-100µ in der Versorgung pro Platine wäre auch nicht> verkehrt.
Auch, obwohl jeder IC schon 100nF besitzt? ... aber wäre ja auch kein
Problem...
rmu schrieb:> Ich bin vielleicht blind oder kann nicht zählen, aber am Layout sieht es> so aus als wären die GND-Pins (Pin 8) der Schieberegister nicht> verbunden?
Der Pin 8 liegt auf der Groundfläche (s.Anhang). In dem Layout sieht man
die Massefläche nur schraffiert, in Wirklichkeit ist sie als komplette
Fläche ausgeführt.... EMV mäßig vielleicht auch schon sch...wenn ich es
mir mal so überlege (???)
Alex (Gast)
>im Anhang findet ihr eine Platine + Schaltplan meines Schieberegisters>mit dem ich Tasterdrücke einlese.
Da ist glaub ich ein kleiner, aber gemeiner Bug drauf. Auf deinem Bild
ist die Massefläche ja nicht gefüllt. Poste mal ein Bild mit gefüllter
Massefläche und schau dir die Verbindung von Masse C2 zu Masse IC1 an .
. .
> Meine Frage ist jetzt, welches>Register (74HC165 oder 74HCT165) eigentlich besser geeignet ist für>"normales" Tastereinlesen im Bezug auf Stabilität.
Ist bei 5V CMOS kein großer Unterschied, es gehen beiden. HC hat die
Schaltschwelle bei 2,5V (VCC/2), HCT konstant bei 1,4V.
> Gehen wir mal davon>aus, dass die Versorgungsspannung schwankt (...klar...die soll nicht>Schwanken, aber nur für den Fall dass sie es mal tut, welches Register>kann das besser verkraften?..)
Vergiss es, das ist kein Kriterium.
>Wenn ich das Datenblatt richtig verstehen, kann der 74HCT165 eine kleine>Range an Versorgungsspannung
Früher hieß das Bereich.
>vertragen (4.5-5.5V) Der 74HC165 kann eine>Versorgungsspannung von 2.0-6.0 verkraften.
Ja.
>Somit würde ich sagen, dass der 74HC165 besser geeignet ist, im Bezug>auf schwankende Versorgungsspannnung.
Nicht wirklich. Deine 5V sollte nicht um mehr als +/-0,5V schwanken,
real deutlich weniger.
>Also das Flachbandkabel von AVR NET IO bis zur erten Paltine ist circa>20cm lang, dann sitzen die 6-7 Platine dicht aneinader, denke das die>Verbindung von JP4 zum nächsten JP3 circa 5cm lang sind...
Naja, da kommt man langsam in den Bereich von Laufzeiteffekten und
Reflektionen, siehe Wellenwiderstand.
>Ich streue mir das irgendeine Scheiße rein, denke mittlerweile auch,>dass SPI dort der falsche Weg war, da evtl,. für EMV zu anfällig...
Nein. Du hast nur das Thema HF entwas zu leicht genommen. Aber es gibt
Abhilfe.
Beitrag "Re: Skurriles Problem mit BS170 Mosfets">> Deine Leitung von Clk und CD werden sehr lang ohne das du sie pufferst.>> auch die zeitliche Verzögerung zum Datensignal könnte zu gross werden
Nein.
>Wie könnte ich die denn Puffern?
Musst du nicht, dein Net-IO reicht als Treiber.
>> Ein zusätzlicher C 10-100µ in der Versorgung pro Platine wäre auch nicht>> verkehrt.>Auch, obwohl jeder IC schon 100nF besitzt?
Ja. Die 100nF sind nur für ein paar Dutzend ns gut, dann geht dennen die
Luft aus.
https://www.mikrocontroller.net/articles/Kondensator#Entkoppelkondensator>Der Pin 8 liegt auf der Groundfläche (s.Anhang). In dem Layout sieht man>die Massefläche nur schraffiert, in Wirklichkeit ist sie als komplette>Fläche ausgeführt.... EMV mäßig vielleicht auch schon sch...wenn ich es>mir mal so überlege (???)
Ja, weil du an ein Wunder geglaubt hast. Siehe oben!
https://www.mikrocontroller.net/articles/Richtiges_Designen_von_Platinenlayouts#Vorgehen_bei_der_Layouterstellung
Unterpunkt Masseflächen!
rmu schrieb:> Ich bin vielleicht blind oder kann nicht zählen, aber am Layout sieht es> so aus als wären die GND-Pins (Pin 8) der Schieberegister nicht> verbunden?
Doch. Siehe IC1P und IC2P ganz oben, an denen auch C1, C2 hängen.
@ Frank M. (ukw) Benutzerseite
>rmu schrieb:>> Ich bin vielleicht blind oder kann nicht zählen, aber am Layout sieht es>> so aus als wären die GND-Pins (Pin 8) der Schieberegister nicht>> verbunden?>Doch. Siehe IC1P und IC2P ganz oben, an denen auch C1, C2 hängen.
Er redet vom LAYUT, nicht vom Schaltplan. Auch du solltest mal
versuchen, die Masserverbindung von C2 zur Masse von IC2 zu verfolgen .
. .
Falk B. schrieb:> Er redet vom LAYUT, nicht vom Schaltplan. Auch du solltest mal> versuchen, die Masserverbindung von C2 zur Masse von IC2 zu verfolgen .> . .
Von C1 wird die Massefläche bestimmt auch isoliert sein
Ach du meine Güte.
Recht viel blöder kann man nicht versuchen GND an die IC anzuschließen.
Auch VCC, an den PullUps mit dicken Leitungen, zum IC mit dünnen?
Eine Massefläche ist kein Wundermittel, eher in deinem Fall ein
Zufallsprodukt.
Leiterschleifen zum Ausgleich der Laufzeit in psec.-Bereich? Völliger
Blödsinn.
Sorry. Auf großen Unsinn gehören deutliche Worte.
Falk B. schrieb:> Er redet vom LAYUT, nicht vom Schaltplan.
Upps, das Layout hab ich ja noch gar nicht gesehen, habe immer nur auf
den Schaltplan geschaut. Ja, hier fehlt die Masse an den C.
@ Frank M. (ukw) Benutzerseite
>Upps, das Layout hab ich ja noch gar nicht gesehen, habe immer nur auf>den Schaltplan geschaut. Ja, hier fehlt die Masse an den C.
Nö, die ist schon dran, an der arg zerstückelten Massefläche. Die ist im
Bild nicht ausgefüllt, nur die Konturen sind gestrichelt dargestellt.
Also bisher werde ich mich noch um folgende Punkte bemühen:
1. Jede zweite Ader im Flachbadnkabel auf GND
2. Terminierung, da weiß ich noch nicht genau wie ich das am besten
mache....(Beuispiel immer gerne....)
Im Anhang die Massefläche...denke, es ist alles verbunden, ob im HF
Bereich auch vernünftig, kann ich nicht beurteilen....
1. Jede zweite Ader im Flachbandkabel auf GND
2. Terminierung, da weiß ich noch nicht genau wie ich das am besten
mache....(Beuispiel immer gerne....)
3. 10-100µF Kondensator in der Spannungsversorung je Platine.
@ Alex (Gast)
>1. Jede zweite Ader im Flachbadnkabel auf GND>2. Terminierung, da weiß ich noch nicht genau wie ich das am besten>mache....(Beuispiel immer gerne....)
Mal gelesen?
https://www.mikrocontroller.net/topic/goto_post/3220070>Im Anhang die Massefläche...denke, es ist alles verbunden,
Mach mal SHOW und click die Masse an. Dann verfolge die leuchtende Masse
von C2 zur Masse von IC1 (schreib ich nun schon das 3. Mal)
> ob im HF>Bereich auch vernünftig,
Leider nein.
@ Stefan Us (stefanus)
>Vielleicht hilft es bei Dir, die Taktrate (der CLK Leitung)>herabzusetzen, mit Hilfe von NOP's zwischen Daten und Takt
Das hilft in den meisten Fällen nicht, denn das Schieberegister (der
Empfänger) ist eher zu schnell als zu langsam.
Falk B. schrieb:> Das hilft in den meisten Fällen nicht, denn das Schieberegister (der> Empfänger) ist eher zu schnell als zu langsam.
Ich hab jetzt nicht nachgesehen,aber möglicherweise haben
die beiden Versionen unterschiedliche Geschwindigkeit?
Dann würde ich die langsamere Version nehmen.
Das Problem ist hier wohl eindeutig das schlechte PCB-Layout (v.a. die
Masseführung!). Mit HC wird es dann vermutlich etwas besser
funktionieren, als mit HCT, einfach weil bei HC die Eingangs-Schwelle
zur Unterscheidung zwischen High/Low weiter von GND weg ist.