Das Schiftregister ist an meinen ATmega16 angebunden. Ich verwende die ersten 4 Pins des PortDs. Dabei ist Bit0 der takt und Bit3 ist SI. Bit1 ist RCK und Bit2 ist G.(Meine ich. Ist schon länger her) Mit dem Nachfolgenden Programm kann ich alle Pins des Schiftregisters auf 1 oder 0 setzen. Programm1: ________________________________________________________________ .include "m16def.inc" ;Definitionsdatei einbinden, ggf. durch ;2333def.inc ersetzen .def temp = r16 ldi temp, LOW(RAMEND) ; LOW-Byte der obersten RAM-Adresse out SPL, temp ldi temp, HIGH(RAMEND) ; HIGH-Byte der obersten RAM-Adresse out SPH, temp ldi r16, 0xFF out DDRD, r16 ldi r20, 0x00 ;Counterregister ldi r21, 0x04 ;Durchlaufangaberegister ldi r16, 0b00001000 ;AusgabeRegister Schleife: Cbr r16,0b00000001 out PORTD, r16 NOP NOP sbr r16,0b00000001 out PORTD, r16 inc r20 cp r20, r21 BRNE Schleife SBR r16, 0b00000010 out PORTD, r16 NOP Nop nop CBR r16, 0b00000010 out Portd, r16 Ende: rjmp Ende ______________________________________________________
Das ist ersteinmal verwunderlich, da ich herausgefunden habe, dass nur bei steigender Taktflange geschrieben wird und nicht auch bei fallender, wie ich es vermutet habe(flüchtigkeit beim Lesen + Stress). Naja aber wenn ich jetzt dieses Programm laufen lasse: .include "m16def.inc" ;Definitionsdatei einbinden, ggf. durch ;2333def.inc ersetzen .def temp = r16 ldi temp, LOW(RAMEND) ; LOW-Byte der obersten RAM-Adresse out SPL, temp ldi temp, HIGH(RAMEND) ; HIGH-Byte der obersten RAM-Adresse out SPH, temp ldi r18, 0b11001100 ;Bytespeicher ldi r19, 0b00110011 ;Bytespeicher ldi r16, 0xFF out DDRD, r16 ldi r20, 0x00 ;Counterregister ldi r21, 0x08 ;Durchlaufangaberegister ldi r16, 0b00000000 ;AusgabeRegister Schleife: SBRC r18, 0x0 rjmp ByteAusleseWennEins CBR r16, 0b00001000 rjmp EndeDerByteAuslese ByteAusleseWennEins: SBR r16, 0b00001000 EndeDerByteAuslese: out PORTD, r16 ;rcall TuNichts nop SBRC r16, 0x0 rjmp TaktWenn1 SBR r16, 0b00000001 rjmp TaktAendernEnde TaktWenn1: CBR r16, 0b00000001 TaktAendernEnde: out PortD,r16 ;rcall TuNichts inc r20 lsr r18 cp r20, r21 BRNE Schleife CBR r16, 0b00000010 out PortD,r16 NOP NOP SBR r16, 0b00000010 out PortD,r16 ;rcall TuNichts ;CBR r16, 0b00000010 /* rcall TuNichts SBR r16, 0b00000010 out PortD,r16 rcall TuNichts CBR r16, 0b00000010 */ ende: rjmp ende
Dann setzt er alle Pins auf High. Ich habe schon alles ausprobiert, ich habe sogar den gesampen Speicher für Haltstatesfunktionen, die sich gegenseitig öffnen aufgebraucht. Ich dachte einmal, dass es funktioniert hat, aber das war wohl ein Versehen. Was mache ich beim 2. Programm falsch(abgesehen, dass ich ebend nur jeden 2. Schleifendurchlauf sinnvoll verwende) und warum funktioniert das 1. Programm auf allen Pins, obwohl es nur 4 Pins beschreiben sollte weil nur jeder 2. Schleifendurchlauf effektiv ist. Kann das an den 14cm Kabel zwischen dem Atmega16 und dem Shiftgegister liegen?
Erstmal: Ich hab fast nix gelesen, keine Zeit. Aber: Du benutzt einen 74HC Chip - die sind nicht TTL kompatibel, da der 0-Volt-Pegel anders ist. Versuch mal einen 2.2K Pullup-Widerstand an den HC-Inputs.
Andere Möglichkeit: Du benutzt die 74HCT Version; das ist ebenfalls High-Speed-CMOS, aber speziell an die TTL Pegel angepasst.
Die Bezeichnung auf dem Chip ist: f P0130AG MM74HC595N MC74HC595N Wohin soll ich denn hochziehen? Nach 5V? Wie ist denn der LowPegel an den Teilen? Warum steht davon nichts im Datenblatt?
Schau' mal in den Tietze/Schenk, da steht das ganz gut drin. Meines wissens ist der low-Pegel "passiv" unten, wird also intern nicht auf masse gezogen sondern kann einfach Strom aufnehmen. Beim open-collector ist's anders rum, der wird nicht aktiv auf high gezogen sondern der Kollektor des Aufgnagstransistors ist nur am Pin und nicht mehr intern angeschlossen.
"Schau' mal in den Tietze/Schenk" Was ist das? Was ist das denn jetzt für ein Chip? Kann ich den nicht direkt an einen Atmega anshcließen? Der zieht an den Ausgängen doch alles aktiv auf 0 oder auf 5V. Da sollte das mit dem Direktanschluss doch keine Probleme bereiten. "Aufgnagstransistors" meinst du Ausgangstransistors? Heißt das, du redest vom Atmel und nicht vom Schieberegister?
Soweit ich weiß musst Du die HC-Azsgänge mit 2.2K nach +5V hochziehen. Der HC-Chip erkennt ein High erst ab 3.5 Volt, bei TTL-Logik jedoch genügen 2.4Volt. Deswegen vermut ich mal kommt an Deinem Schieberegister nur Mist an. "Warum steht davon nichts im Datenblatt?" Warum sollte es? Es gibt unterschiedliche Typen von Logikfamilien, das sieht man an der Bezeichnung, z.B. 74HC, 74HCT, 74LS,... Die haben halt unterschiedliche Spezifikationen für die Pegel.
Sorry hab Mist geschrieben; die Pullups kommen natürlich an die Eingänge vom HC...
Also an den HC595 sollte es ersteinmal nicht liegen. Ich habe diese auch schon öfters direkt an einem AVR betrieben, ohne Probleme. Problematisch könnte hardwareseitig aber natürlich die Leitungslänge sein. Bei mir spielte sich das bisher alles auf einer Platine ab. Widerstände an den Eingängen des HC könne da schon helfen, da dann etwas mehr Strom über die Leitungen fließt las nur mit den recht hochohmigen HC-Eingängen. Das Programm an sich halte ich für "etwas umständlich", wenn es nur darum geht, ein Byte auf einen HC595 auszugeben. Da sollte es überschaubarere Lösungen geben. Empfehlen kann ich aber immer, für die verwendeten Pins Namen und Masken zu definieren, das liest sich einfach besser (z.B. sbi PORTD,pSCK). Ausserdem würde ich empfehlen, nach Möglichkeit sbi und cbi Befehle zu verwenden, ist einfacher zu lesen, kürzer und die anderen Bits des Ports bleiben unangetatstet. Jörg
>"Schau' mal in den Tietze/Schenk" >Was ist das? Die E-Technik Bibel. Der Buchtitel ist glaubich "Halbleiterschaltungstechnik"
Ach, meint ihr, dass die Leitungen zu stark stören, da die aufgrund der hochohmigen Eingänge zu stromlos sind? Gehen auch leicht höhere Widerstandswerte als Pullup. Ich glaube nicht, dass ich 2.2 genau herumliegen habe, aber 3.3 oder was in der Art habe ich (recht sicher) Das müsste noch beim Schrott von Pollin dabeigewesen sein :-)
Ich habe aus mehreren 9KOhm Widerständen einen Wald drangelötet, so dass jeder Eingang einen 3Kohm Pullup hat. Es hat NICHTs gebracht. Es ist nur so, dass nun alle Ausgänge auf 0 anstatt auf 5.5V stehen, wenn ich verschiedenartige Daten eingeben will!
Wenn Du es drauf anlegst, dass andere Leute das Programm anschauen, dann versuch mal es in lesbarer Form rüberzubringen. ggf. als Anhang (vorzugsweise ohne TAB chars). So wie oben gepostet ist es praktisch unlesbar. Leute, was soll das mit den TTL Pegeln? Der AVR ist CMOS mit ebensolchen Pegeln, der HC595 ist es, also wo ist hier TTL?
Heißt das, das mit dem Pullup bringt nichts? Dann kann ich die ja wieder herunterlöten..
Damit kann ich die Ausgänge entweder auf 1 oder 0 setzen. Das Programm Läuft so, dass ich die Bits des PortD mit dem Register verbunden habe. Dabei ist Bit0 der Takt und Bit3 ist mit den Daten gefüllt. Die anderen beiden Pins sind für die Aktivierung der Ausgänge und das Storage Register. http://www.freak5mynew.no-ip.info/Muell/ShiftregisterAllesAufEINSoderNULL.txt Das hier funktioniert genauso, außer dass es ebend nicht funktioniert :-( Das Ende habe ich mal weggelassen, da es nur "nop" Befehle sind. Da das Prog nicht funzte habe ich wahrlos viele nop Befehle eingegeben. http://www.freak5mynew.no-ip.info/Muell/ShiftregisterFunztNicht.txt Naja viele bereiche, die mit dem Nichtstun zutun haben habe ich ausgeklammert usw. Ich weiß nicht woran der Fehler liegen kann, da das Programm im Debugger eine gute Ausgabe erzeugt. Aber irgendwas muss falsch sein. Ich würde mich freuen, wenn mir jemand helfen könnte!
Hallo @Freak5, angenommen die Steuerpins am AT-- werden richtig gesetzt dann schau mal auf die anderen Voraussetzungen. Ist das Schieberegister "richtig" an die 5V angebunden? (Anständige Masseleitung?, abgeblockte Versorgungsspannung [C's bei den IC])? Sind Abschlusswiderstände bei den Schieberegistersteuereingängen vorhanden [am letzten IC]? Belasten die Ausgänge der Schieberegister die Versorgungsspannung? Gruss Kurt
"Abschlusswiderstände bei den Schieberegistersteuereingängen vorhanden [am letzten IC]?" Was? Ich habe zwar zwei ICs zusammen, aber ich kümmer mich jetzt eigentlich nur um den ersten. Hat das einen Einfluss? Was bringen diese Abschlusswiederstände? (die sollten verhindern, dass die Eingänge flattern, oder?) Muss ich die auf High oder auf Low ziehen und welche Größe? ------------ Sollte ich diese 3KOhm Pullups an den Eingängen wieder entfernen?
Die Programme sich zwar arg umständlich programmiert und formatiert (mit TABs ungleich 8 schafft man sich wenig Freunde). Aber die erste Version sollte 4 Bits mit Wert 1 auf QA-QD ausgeben. Nach 2 Durchläufen dann komplett auf 1. Warum beharrst Du auf der zweiten Version obwohl Du ja schon selbst erkannt hast, dass die Taktung in der Form falsch ist? Die Taktung von Version 1 zusammen mit den Daten von Version 2 ergeben da schon mehr Sinn. Was ist eigentlich mit dem Reset-Pin vom 595 (#10)? Was passiert wenn der Ausgabe-Teil ungefähr so aussieht? .equ sclk=0 .equ rclk=1 .equ sdat=3 ldi r20, 8 shift: cbi portd, sdat sbrc r18, 0 sbi portd, sdat lsr r18 sbi portd, sclk cbi portd, sclk dec r20 brne shift sbi portd, rclk cbi portd, rclk
Die Widerstände schaden nichts und nützen nichts. Abschlusswiderstände halte ich bei 14cm und deinem Timing selbst dann nicht für nötig wenn der µC mit 16MHz läuft.
->abgeblockte Versorgungsspannung [C's bei den IC])? Du meinst Kondensator, oder? Ich habe einen 20nF Keramikkondensator so zwischen die beiden Schieberegister gesetzt, dass beide so nah wie möglich dran sind. Das sind dann höchstens 3cm zu beiden ICs. Ich mach mal ein Foto: http://www.freak5mynew.no-ip.info/Muell/SchieberegisterschaltungGuN.jpg http://www.freak5mynew.no-ip.info/Muell/SchieberegisterschaltungMit.jpg http://www.freak5mynew.no-ip.info/Muell/SchieberegisterschaltungOue.jpg Naja aufgrund des Widerstandswaldes, welchen ich auf Anraten angelötet habe, kann man die Leitungen nicht mehr so schön sehen, aber ihr bekommt einen Überblick über die Kabellängen. Das baumelnde Ding ist übrigens ein Inverter und später sollte das eigentlich ein Display über wenige Leitungen steuern!
@A.K.: Naja die große Version ist meine erste und die zweite (die alles mit einem Wert vollschreibt) ist die Zweite, die ich zum Fehlersuchen erstellt habe. "Aber die erste Version sollte 4 Bits mit Wert 1 auf QA-QD ausgeben. Nach 2 Durchläufen dann komplett auf 1. " Das Verwirrt mich ja! Wenn ich das so auf den Chip draufhaue bekomme ich am Shiftregister alles als eins oder (wenn ich das Programm etwas ändere) alles auf 0. Obwohl nur die Hälfte geschrieben werden sollte. "Warum beharrst Du auf der zweiten Version obwohl Du ja schon selbst erkannt hast, dass die Taktung in der Form falsch ist? Die Taktung von Version 1 zusammen mit den Daten von Version 2 ergeben da schon mehr Sinn." Ich habe trotz Ferien einen haufen Stress mit meinem PC(400GB Datenverlust, Grafikkarte schrott usw.). Da dachte ich mir, dass das mit der Taktung ja nicht so Der Fehler ist. Andererseits ist der Fehler superleicht zu beheben und vereinfacht das Programm sogar. Ich habe mir gedacht, dass dann ja ein Muster wie 0101 an den Pins stehen müsste(wenn ich eigentlich 00110011 haben wollte). Du hast recht, dass ich das unbedingt ändern muss, aber das muss irgendwoanders dran liegen.. Ich schaue mir mal den Code an...
Den Resetpin habe ich beim ersten IC dauerhaft auf High gezogen.(direktverkabelt) Beim IC2 hängt der noch in der Luft, aber IC2 ist mir ohnehin egal, solange auf IC1 absolut nichts ausgegeben wird.
Bei der Verkabelung wäre je ein Elko (10µF oder so) auf beiden Platinen (AVR, 595) sinnvoll, der 22nF ist da so ganz allein etwas dünne (lass den drin, Elko zusätzlich). Und lass bei Test mal den Inverter dahinter weg. Mal ganz was anderes: Wie programmierst Du das Teil? Anno dunnemal wie bei EPROMs? Rausziehen, anderswo reinstecken, programmieren und dann retour? Ich vermisse nämlich die ISP Anschlüsse.
Super Idee, das mit dem Herunterzählen. In anderen Foren kamen mir bei dem code alle mit Optimierungen an und haben nicht einmal das so gemacht. Das mit dem Clear und Set direkt, hätte ich vielleicht auch später gemacht, aber ich dachte, da brauche ich noch ein paar NOP dazwischen. Mh außer, dass der Code schlüssig und optimiert ist ist das doch das gleiche, oder? (gut gelöst, das mit dem Löschen und dem Danach setzen des Bits. Ich habe das immer noch so geproggt, als wäre das IC nicht flankengesteuert )
Es ist ungefähr das, was rauskommt wenn Du die Taktung von V1 mit den seriellen Daten von V2 kombinierst.
Einen HC595 kriegst Du nicht so schnell überfahren. Bei 5V verdaut der typ.54MHz. Mit CBI/SBI hintereinander sind's auch bei 16MHz µC-Takt maximal 4MHz am SCLK (umso weniger bei 1MHz Standardfrequenz). Solange es sich also nicht um lange Übertragungsleitungen handelt, ist das Timing kein Thema.
Mein Multimeter sagt mir, dass alle Ausgänge des IC1 auf High stehen. @A.K.: Ich habe einen ISP mit Sockel. http://www.freak5mynew.no-ip.info/Muell/Platine-neu1.jpg Das Teil hat sogar sofort funktioniert, nachdem ich stundenlang den Fehler gefunden habe und irgendwan den AVR einfach heftiger in den Sockel gedrückt habe*g* http://www.freak5mynew.no-ip.info/Muell/Platine-fehl1.jpg http://www.freak5mynew.no-ip.info/Muell/Schaltplan1.png Dieses Forum hat mich bewart diese Platine zu benutzen, wo ich dummerweise den Schaltplan eines 20Pin alt AVRs benutzt habe, was ich gar nicht gemerkt habe peinlich. Wartemal.. Ich such mal das Layout von meinem Schiftregisterteil. Dann kannst du die Verkabelung auch sehen
@A.K.: Jou der Chip ist heftig schnell, wenn man bedenkt, dass man den einfach so bei Reichelt bekommt. Ich hätte etwas viel trägeres erwartet. "Und lass bei Test mal den Inverter dahinter weg." Hast recht. Der geht höchstens noch kaputt, wo er doch funktioniert. "Bei der Verkabelung wäre je ein Elko (10µF oder so) auf beiden Platinen (AVR, 595) sinnvoll, der 22nF ist da so ganz allein etwas dünne (lass den drin, Elko zusätzlich). " Mache ich mal morgen... Ich muss mir unbedingt durchlesen, wie man das berechnet. Für nen Atmel haben mir vorher immer alle 22nF emfohlen. Oder meinst du, dass ich auch gegen tiefe Störungen schirmen muss, anstatt nur gegen Hochfrequenz?
Als Standard-Abblockkondensator für jedes einzelne Logik-IC empfiehlt sich ein 100nF-Keramikkondensator, der möglichst nahe an den Versorgungsspannungsanschlüssen des ICs unterzubringen ist. Es gibt auch IC-Sockel, in die ein solcher Kondensator gleich eingebaut ist. Für die gesamte Platine (die ihre Versorgungsspannung ja über ein längeres Kabel bekommt) ist dann zusätzlich ein 10 µF-Alubecher ratsam.
Yep, an das Bild erinnere ich mich. Allerdings auch an den Tip mit dem Elko. Zu berechnen gibt's da übrigens nichts (für Normalbastler), das eher Erfahrung/Tradition/machtmanhaltso. Grund: Elkos taugen nicht für hohe Frequenzen, Kerkos nicht für tiefe. Soll heissen: pro IC einen 100nF Keramik-Kondensator (22nF geht auch)direkt zwischen die Augen. Und auf jede beteiligte Platine kommt je nach Grösse mindestens einer mit 10-47µF oder so, was halt grad da ist. Und der kommt ungefähr dort hin wo der Strom auf der Platine ankommt. Ich will nicht sagen, dass dies der Grund ist. Kann sein, kann nicht sein. Aber so gehört sich das einfach.
Mh ich dachte nur, dass ich von Niedrigen Störungen weitgehend verschont bin, da ich erstmal noch keine wirkliche Last habe und auch ein halbwegs ordentliches NT habe. Ich probiere es morgen früh aus. Jetzt muss ich erstmal schlafen. P.s.: @A.K. An welches Bild erinnerst du dich? Warst du der, der bemerkt hat, dass ich sogar das falsche Datenblatt gelesen habe?
Ich war der, der sich gefragt hat ob Du überhaupt eins gelesen hast.
Die AVR's geben kein TTL sondern ein "C-Mos-Signal" aus. Dadurch ist es egal ob Du HC- oder HCT-Typen verwendest. Die 3.3 K Widerstände sind also sinnlos, sind zudem als "Abschlusswiderstände" ungeeignet. Diese sollten irgendwo bei 100..600 Ohm liegen. Wenn die "Anbindung" an den AVR passt dann sind sie bei 15 cm nicht unbedingt notwendig. Dadurch dass die Schieberegister so schnell sind (siehe weiter oben) sind sie auch für Leitungsreflektionen und Spannungseinbrüche sehr empfindlich. Manchmal hilft es auch wenn man den Takt-Eingang und /oder Dateneingang mit einem Kondensator zusätzlich belastet (einige pF). Das gibt eine zeitliche Verschiebung und entkoppelt dadurch bei zeitkritischen Vorgängen in den IC_s. Wenn der Bezugspunkt (Masse) nicht OK ist dann gibt es auch keine anständige und zuverlässige "Schiebung". Wenn die 5V "einbrechen" können, dann ist das ebenfalls ein Problem. Setz mal das SR-register massemässig direkt an den Bezugspunkt des AVR's (nicht an die Zuleitungsmasse), entkopple die Versorgungsspannung durch eine Drossel (R-geht auch), lege die 5V dann durch einen "dicken" Elko (10..100uF) an die Leine und baue in deine SW eine starke Verzögerung ein damit Du die Abläufe direkt in "auseinandergezogener" Zeit beobachten kannst (LED's an die Steuerleitungen). Dadurch ist es möglich die einzelnen Abläufe zu beobachten und es werden die "Fehler" (SW oder HW) schnell erkennbar. Dann erkennt man auch wenn die SW das vorher eingeschobene Byte ev. gleich wieder überschreibt (LED's an den Ausgängen des SR sind auch sehr hilfreich). Viel Erfolg Kurt
"Manchmal hilft es auch wenn man den Takt-Eingang und /oder Dateneingang mit einem Kondensator zusätzlich belastet (einige pF)." Mh du meinst, so kann man HF auf der Leitung vorbeugen...? "Setz mal das SR-register massemässig direkt an den Bezugspunkt des AVR's (nicht an die Zuleitungsmasse), entkopple die Versorgungsspannung durch eine Drossel (R-geht auch), lege die 5V dann durch einen "dicken" Elko (10..100uF)" Eine Drossel habe ich leider nicht... Ich bastel mir dann erstmal einige DebugLEDs und die Elkos. Ich kann mir aber nicht erklären, dass immer alle Daten im SR gleich sind. Kann das durch HF am Takteingang kommen?? Sollte ich nicht irgendwie für eine Einschaltverzögerung des AVRs sorgen? Im Moment arbeitet der nämlich direkt los, was zu Problemen führen kann.(denke ich mal)
Wie groß sollen die Kondensatoren an den Dateneingängen denn genau sein?
"Wie groß sollen die Kondensatoren an den Dateneingängen denn genau sein?" es hilft nut probieren (10...200pF) Wenn die Platine Massemässig gut ist dann sind keine solchen "Hauruckmassnahmen notwendig) "Eine Drossel habe ich leider nicht..." ein R von 22..100 Ohm tuts auch und wirkt manchmal Wunder. "Mh du meinst, so kann man HF auf der Leitung vorbeugen...?" 53 Mhz sind eine Menge Zeug. "Sollte ich nicht irgendwie für eine Einschaltverzögerung des AVRs sorgen? Im Moment arbeitet der nämlich direkt los, was zu Problemen führen kann.(denke ich mal)" Das SR ist wesentlich schneller bereit als jeder üC (wenn die Stromversorgung passt). Das ist nur die garantierte Geschwindigkeit. Es kann durchaus sein dass eine Leitung an so einem Pin als Antenne wirkt (Lamda/4 von 100 Mhz sind 75 cm) die dann am ihrem Fusspunkt eine 50 Ohm Steuerlast vorfindet und richtig strahlt! Es geht hier aber weniger um die verhinderung von HF sondern um Zeitverzögerung. "Ich kann mir aber nicht erklären, dass immer alle Daten im SR gleich sind. Kann das durch HF am Takteingang kommen??" Das deutet eher auf "falsche" bedienung des SR. Es kann sich um falsche Signale (vom AVR) , Mehrfachtaktung durch Reflektionen auf der Zuleitung, Signalverkoppelung auf der SR-Platine (Masseschleifen) usw handeln. Grober Ablauf: Die Steuersignale werden vom AVR-Ausgang erzeugt, laufen dann über die 13cm zum SR und über die Masseleitung wieder zurück. Der Bezugspunkt am AVR ist der GND-Pin, über dies "Masseleitung" zum SR laufen aber auch noch die Ströme für die IC-S des SR, die Ströme der Ausgänge des SR's usw. Da das kein statischer sondern ein hochdynamischer Vorgang ist (siehe die Mhz-en) kommt es zu schnellen Strom-Änderungen, welche sich dann als HF bemerkbar machen und Spannungseinbrüche bzw. Spannungsspitzen verursachen und die [gewollte] Funktion überlagern. Eine Lamda/4 Antenne ist an der "heissen Spitze" nahezu unendlich Hochohmig, es fliesst also kein Strom (sie ist praktisch für bestimmte Frequenzen als Leiter unsichtbar). Sind wirklich alle Steuereingänge des SR "geklemmt" (/SCLR, /OE )? Ist sichergestellt dass sich die Steuersignale vom AVR nicht überlappen usw. ? Kurt
Hast Du eigentlich mal ein Oszilloskop angeschlossen und Dir die verschiedenen Signale angesehen? Ist bei solchen Problemen seeeeehr ratsam.
1. Ich habe kein Oszilloskop. @Kurt: Was meinst du damit: "Sind wirklich alle Steuereingänge des SR "geklemmt" (/SCLR, /OE )? " Meinst du, dass der Sockel vielleicht nicht sitzt? P.S.: Mein Netzteil hat übrigens einen Abflug gemacht. Ich muss jetzt warten, bis ich ein neues kriege. Das ist wirklich hinüber. Wenigstens geht das Licht aus, wenn man es einsteckt!
@Kurt: So wie du das mit dem Signalrücklauf beschreibst habe ich die Masseleitung vielleicht etwas ungünstig verlegt. Ich bin beim Verlegen davon ausgegangen, dass die Frequenz niedrig genug ist. Aber wie du auf dem Layout sehen kannst, kreist die masse ganz schön durch die Gegend....
Apropos Abflug: Das ist nicht zufällig ein zweckentfremdetes PC-Netzteil? Der Stecker schaut ja danach aus. Falls doch: die brauchen eine ziemlich deutliche Minimal-Last, ohne die wird's kritisch, und so ein bischen AVR langt dafür nicht annähernd.
ja ja das mit den Masseleitungen ist aufgefallen, darum diese "Eindringlichkeit" " @Kurt: Was meinst du damit: "Sind wirklich alle Steuereingänge des SR "geklemmt" (/SCLR, /OE )?" Meine damit ob sie auf Masse oder + gelegt sind das mit dem "/" bedeutet dass sie auf Masse müssen um Aktiv zu sein (/OE = Output Eneable) /SCLR heisst Schieberegister löschen) also /OE auf Masse und /SRCR auf + Kurt
Ach, meinst du mit OE dieses G? Das müsste mit Bit2 steuerbar sein! Das habe ich auf Masse. Ich habe vorher schon gemerkt, dass es auf 5V nicht funzt. SCLR habe ich per Leitung auf 5V. @AK: Also ich ziehe schon einige A mit den Deltas. Vielleicht 2 oder so. Als ich noch ein paar Deltas dazugehängt habe und eine Pumpe, dann ist das Ding abgeraucht. Sogar welche von Enermax haben mir gesagt, dass so ein paar lüfter reichen müssten. Ein Lüfter Zieht normalerweise 0.9A auf 12V. Ich habe dem NT 4Lüfter auf 24V gegeben und dann ist es irgendwie abgeraucht. Schätzungsweise habe ich dabei so um die 6A verbraucht, da die -12V zur +12V in Wirklichkeit eher 21V bieten. Mh ich dachte eigentlich immer, dass Netzteile sich von alleine ausschalten, wenn sie warm werden....
Die -12V ist nur minimal belastbar, da ist nur ein Negativ-Längsregler drin. ...
Ich habe zwar jetzt keine Möglichkeit etwas zu testen, da mit eine Stromversorgung fehlt und ich meine PC-Hardware nicht gefährden möchte, aber mir ist aufgefallen, dass das Shiftregister alle Ausgänge auf den letzten Wert setzt, den ich eingeschoben habe. Das finde ich irgendwie eigenartig. Ich könnte mir das nur dadurch erklären, dass die Taktleitung flattert und deshlb den Letzten Wert durch das ganze Register Schiebt. Einen Grund hätte das Ding vielleicht, da mein PC offen steht und sogar Radios in benachbarten Räumen komplätt stört.
Kann sich jemand vorstellen, wodurch dieser Effekt auftreten kann? Durch einen falschen Code kann man ja eigentlich ausschließen. Eine falsche Ansteuerung sollte auch nicht solch einen Fehler verursachen, da so das Schreiben gar nicht möglich wäre. Also muss irgendwie der Takt hardwaremäßig so flattern, dass die Bits alle auf dem letzten Wert durchgeschoben werden. Könnte das zum Beispiel durch normalen stark erhöhten Elektrosmog entstehen? Hängt das mit einem falschen Layout zusammen?
Hi ich hab die Dinger vor Monaten auchmal probiert und habs nie hinbekommen. Wollte ein LCD damit ansteuern, und hatte das gleiche Problem. In Foren hab ich keine Hilfe gefunden. In einem englischen Forum war ein Typ der genau das gleiche Problem hatte - wieder keine Lösung. Ich bin nicht draus schlau geworden, woran's liegt; an Störeinstreuungen lags bei mir aber definitiv nicht. Ich würds mal mit nem kleinen Keramik-Kondensator zwischen Taktleitung und Masse probieren. Sag bescheid wenns klappt, interessiert mich auch!
Das mit dem Keramik versuche ich sofort. Im Moment spielt der Chip nämlich TOT! Ich habe ihn vorhin ganz normal in Betrieb genommen, aber er hat gar nicht die normalen Fehler, wass mich beunruhigt. Hoffentlich ist keine Lötstelle an der platine kaputt bibber Ich frage am wochenende mal ein paar Leute an der Uni. Vielleicht wissen die was.
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.