Ich suche eine Einleitung wo die Funktion und das ansteuern erklärt ist. Habe eben mal versucht den 74HC573A mit nem Atmega 8 an zusteuern. Leider mit wenigem Erfolg. Ich kann zwar einmal nen Datensatz schicken also Eingänge auf High Low setzen Allerdings weis ich noch nicht genau wie das mit dem Latch geht. Was ich schicke muss damit er den nächsten Datensatz ausgibt etc. Das ganze wollte ich in Bascom schreiben. Das von Mikrocontroller-.net Tut zu Schieberegistern passt hier leider nicht, das dies nicht SPI kompatibel ist
Hallo, hmmm... Datenblatt des HC573, wie eigenlich immer. Da gibt es eine Tabelle, die angibt, was passiert. LE (Latch Enable) steuert dabei das Latch: LE auf H -> Eingangsdaten werden an den Ausgängen ausgegeben LE auf L -> an den Ausgängen bleiben die beim Umschalten an den Eingängen anliegenden Daten, egal, was jetzt an den Eingängen anliegt dazu noch /OE (Output Enable) steuert die Ausgänge selbst: /OE auf H -> Ausgänge sind TriState, also komplett abgechaltet /OE auf L -> Ausgänge sind aktiv, also eingeschaltet Und nun? Gruß aus Berlin Michael
8-Bit an die Eingänge des Latches legen. Übernommen werden die Informationen an den Ausgängen, wenn LE High geschaltet wird. Wenn LE High bleibt, werden die Informationen der Eingänge sofort an die Ausgänge weitergereicht. Wenn LE wieder auf Low geht, können sich die Eingangssignale ändern, ohne daß sich die Ausgangssignale ändern. Wenn OE high ist, sind alle Ausgänge hochohmig, wenn OE low ist, sind die Ausgänge entsprechend der gespeicherten Signale durchgesteuert.
Da der Atmega nur max 6 Pins hat an einem Port, hab ich jetzt noch einen 2ten Port mit dazu genommen. PD7 = OE PD6 = LE PB 0 - 1 = D0 D1 PC0 - 5 = D2 - D7 Schreib ich jetzt: $regfile = "m8def.dat" $crystal = 4000000 Config Portb = Output Config Portd = Output Config Portc = Output Do Portd.7 = 0 Portd.6 = 1 Portb.0 = 1 Portb.1 = 1 Portc.0 = 1 Portc.1 = 1 Portc.2 = 1 Portc.3 = 0 Portc.4 = 1 Portc.5 = 0 Portd.6 = 0 Loop zeigt er mir nüscht an. Also hab an dem Register nen Trasistor IC dran der mir die paar mA verstärkt und dann an die LEDs abgibt. sind 7 LEDs. Q7 des Register ist nicht beschaltet
Hallo, naja, der HC573 kann heute übliche LEDs mit 1k Vorwiderstand problemlos alleine treiben. Das war bei mir bisher immer hell genug, um zu sehen, ob es leuchtet. Die Schleife um den Kram ändert ja ohnhin nichts, setzt ja immer dasselbe. Warum also zum Testen nicht so? Portd.7 = 0 Portd.6 = 1 Portb.0 = 1 Portb.1 = 1 Portc.0 = 1 Portc.1 = 1 Portc.2 = 1 Portc.3 = 0 Portc.4 = 1 Portc.5 = 0 Portd.6 = 0 Do Loop Dann mit einer "Prüfled" mit Vorwiderstand oder Multimeter an den Eingängen und Ausgängen schauen, was für Pegel anliegen und mit den Erwartungen vergleichen? Solange dürfte Ändern und neu flaschen auch unter BasCom nicht dauern und bis man den AVR zerflasht hat, dauert noch viiiel länger. ;-) Gruß aus Berlin Michael
Der Atmega hat schon zich flashvorgänge hinter sich. Multimeter liegt in der Garage in 15 km entfernung. Zylinderkopf gewechselt da Zahnriemenriss. Warum das ganze net in die Do Loop Schleife packen?
Michael kannst mir auch gleich noch erklären wie das "Ding" arbeitet? Oder arbeitet das genauso wie http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister ? Und warum schaltet man 3 hintereinander? Do Portd.7 = 1 'Output Enable Portd.6 = 1 'LATCH Enable Portb.0 = 0 Portb.1 = 1 Portc.0 = 0 Portc.1 = 1 Portc.2 = 0 Portc.3 = 1 Portc.4 = 0 Portc.5 = 1 Loop so worked es
Ich glaub´ Du bringst hier was durcheinander oder drückst Dich etwas konfus aus. Ein Schieberegister speichert Signale seriell mittels eines Taktes, schiebt sie weiter und gibt sie auf Wunsch parallel aus oder umgekehrt. Ein Latch speichert Signale parallel und gibt sie auf ein Schaltsignal hin aus oder ist völlig transparent, als wäre es nicht da. Latches verwendet man zum Beispiel bei SRAMs, wenn nicht genügend Adresspins am Controller verfügbar sind. Hier werden die niederwertigen Adressen im Latch gespeichert und die höherwertigen direkt auf das SRAM geschaltet (im Zeitmultiplexbetrieb). Varianten mit mehreren Latches sind beispielsweise beim neuen XMEGA EBI zu finden. Latches sind strenggenommen eine Handvoll D-FlipFlops in einem Gehäuse.
genau ich brauch 56 Pins an nem Atmega 8 Dazu verteilt einmal ein HC573 das Latch und einmal wird ein HC573 mit dem ablaufgespeißt und je nachdem welcher HC573 gerade vom HC573 das LATCH erteilt bekommt das ablauf programm. Allerdings wird das Latch von einem HC573 und das Ablaufprogramm von 3 HC573 verteilt und da wollte ich mir jetzt mal das Adressieren anlernen. Auch wenn es so wie oben A4 Blätter füllt macht das nichts. Es muss nur zuverlässig laufen
Hallo, macht wohl nur Sinn, wenn es schnell sein muß, sonst wäre es wohl einfacher 7 Schieberegister hintereinander zu hängen. Verdrahtungsaufwand ist merklich geringer. Ich habe auch nicht verstanden, was das mit dem Ablauf bedeuten soll. Gruß aus Berlin Michael
Lauflicht ;) Und da sind die Steuermodule durchgebrutzelt von daher muss da was neues her war BJ 2000
Ja nur die LED Module mit 2 x HC573 sind schon geätzt und bestückt sowie in Literweise Acrylharzgetränkt Deswegen ist neu ätzen nicht wirtschaftlich Sind 30 cm mal 8 cm ca und das bekommt ich nicht geätzt ;) Und ätzen lassen ist nicht wirtschaftlich bzw nicht bezahlbar Und ih hab die nicht erstellt ich wurde nur gerufen
Hi
>naja, das machen aber 7x 74HC595 aber wesentlich einfacher...
Wenn man einen komplette Port für die 74xx573 und noch 3 Leitungen für
einen 74xx138 übrig, dann geht es damit wesentlich schneller und
unkomplizierter.
MfG Spess
B2T wo kann man sich denn jetzt wissen darüber aneignen?
Hallo, spess53 schrieb: > Hi > >>naja, das machen aber 7x 74HC595 aber wesentlich einfacher... > > Wenn man einen komplette Port für die 74xx573 und noch 3 Leitungen für > einen 74xx138 übrig, dann geht es damit wesentlich schneller und > unkomplizierter. Da war ich mit den Gedanken auch, aber der '138 hat L-aktive Ausgänge, er braucht aber H-aktive um LE richtigrum zu steuern. Wären also noch 1 1/3 HC04 fällig... Gruß aus Berlin Michael
GUt das ich momentan kaum was schnalle
>Da war ich mit den Gedanken auch, aber der '138 hat L-aktive Ausgänge, >er braucht aber H-aktive um LE richtigrum zu steuern. Wären also noch 1 >1/3 HC04 fällig... Dann nimm einen 74xx238. Der hat positive Logik. Gruss Helmi
dürfte ich mir erstmal die Grundaufbauweise anlernen? und wenn ja WO?
Hallo, schau Dir Geschichte mit den Schieberegistern aus dem Tutorial mal in Ruhe an. Der Aufwand für ein Lauflicht ist damit wesentlicg geringer. Speziell der Verdrahtungsaufwand ist wesentlich geringer als bei den HC573. Gruß aus Berlin Michael
ich MUSS aber den 573 nehmen und das Schieberegister simpler sind kann ich mir vorstellen
Hi >Da war ich mit den Gedanken auch, aber der '138 hat L-aktive Ausgänge, >er braucht aber H-aktive um LE richtigrum zu steuern. Wären also noch 1 >1/3 HC04 fällig... Tschuldigung. Hatte mehr den 574 im Hinterkopf. Mit dem geht das so. Dann natürlich ein 238 oder 4028. MfG Spess
Hallo, also so zum Beispiel... Viel Spaß beim Strippen ziehen. :-) PS: benutze kein Bascom, also keine Software von mir dazu... Gruß aus Berlin Michael
den Aufbau wie es gestrippt wird weis ich. mir gehts darum zu verstehen wie die worken
Jetzt reicht es aber! Sorry, aber was ist da so schwer zu verstehen, eine Ausgabe zu machen und die LE-Leitung kurz high und wieder low werden zu lassen? Alle HC573 erden eingangsseitig parallel geschaltet und bekommen direkt vom Controller oder über einen Multiplexer ihre LE-Signale. Da gibt es nicht viel zum Lernen, mannomann.
daran LATCH High oder Low zu machen ist nichts schwer aber zu verstehen warum man drei!!! hinterander!!! schaltet zu verstehen ist momentan schwer!
Man schaltet sie nicht hintereinander sondern mit den Eingängen parallel , alle Latches sind gleichberechtigt. Dasjenige, welches mit LE high/low ausgewählt wird, übernimmt die Information der Eingänge, alle anderen verhalten sich passiv, also machen nichts. Theoretisch kannst Du 30 oder mehr Latches eingangsseitig parallel schalten, um auf 240 Ausgänge zu kommen.
beim mir isses so geätzt latches un so ausgelassen Links war ein Analog Devices 8051 und rechts ist der Verstärker IC und die LEDs ich mal mal den kompolettem schaltpl
Nee, das ist falsch. So kann ja das folgende Latch immer nur die Informationen des vorangegangenen übernehmen. Außerdem wird die komplette Information durchgereicht, wähend die Ausgänge aktiv sind, also alle LEDs würden während des Datenupdates flackern.
Und je nach dem Welches Modul dranhängt, ändert sich NUR der PIN 10 (PIN 8 10 12 14 16 18 20 22) an der Buchse. Insgesamt sind es 8 Module Auf der Hauptplatine sind genau die ICs verbaut. Habe extra nochmals die Namen umgeändert da die richtigen ICs nur vom Aufbau in der EAGLE LIB sind. An den Eingängen des 71AVR... hang der 8051 Ameisenschaltung hab ich weg gelassen Aber wenn das mit einem HC573 genauso gut geht, löt ich jeweils einen 573 von den Modulen runter und dann ist es gut. Muss dann nur noch Multiplexen mit BASCOm lernen
Im Anhang mal eine Aufnahme wie es in Real mal lief ist schon etwas älter deswegen die schöne Qualität
Ja, wie auch immer, Latches hintereinanderzuschalten ist sinnfrei. Da kannste dann eins rauslöten und brücken.
Also das eine raushauen überbrücken und dann multiplexen? bzw 2 573 nehmen das eine verteilt LATCH das andere wird bei erteiltem LATCH mit Daten "gefüttert"
Hallo, naja, es könnte schon einen Sinn in dieser Anwendung ergeben: wenn man will, daß alle Ausgänge sybcron schalten, dann speichert man erst alle neuen Ausgangsdaten nacheinander im ersten Latch und übernimmt dann parallel alle Daten ins 2. Latch. Verhindert dann Flackereffekte oder Interferenzen, weil man ja nicht alle Latch gleichzeitig von einem µC-Port bedienen kann. Hättest Du aber auch gelich mit rausrücken können... Gruß aus Berlin Michael
Das ist son Knightrider Lauflicht mal gewesen. Also von unten nach oben und dann von oben nach unten und wieder von vorn. Ich wurde aus den ganzen Latches nur nicht schlau Michael soll ich die nummer sicher variante nehmen und nichts auslöten oder was mach ich jetzt am besten?
Hallo, alle ersten Latches hängen dann wohl an einem Port des µC. Alle LE der ersten Latches sind einzeln gesteuert, alle LE der zweiten Latches sind parallel an einem Pin des µC Jetzt die Daten nacheinander anlegen und jeweils H-Impuls an den passenden LE, wo die Daten hinsollen. Wenn alle zwischengespeichert sind, einmal H-Impuls an alle LE der zweiten Latch. Dann leuchten alle gleichzeitig mit den gewünschten Bitmustern auf. Gruß aus Berlin Michael
Das kann ja graue Haare machen Na mal schaun ob ich das hinbekomme. kopf kratz
Achso was ich hinzufügen wollte. Wenn ich z.B. alle 7 leuchten lasse dann Latch auf blocken lege 100 ms warte Latch auf schréiben legen und dann das Knightrider licht laufen lasse, bleiben manchmal ein Befehl ungeachtet d.h. x X X X O X X X X 0 X X X X X X X X X 0 Ist hoffentlich verständlich. Woran kann sowas liegen?
Wenn Du dle Latches so wie in meinem Vorschlag schaltest und direkt nacheinander ausgibst, hast Du eine Desynchronität von etwa 1µs, das sieht kein Mensch! Dafür hast Du einen geringeren Verkabelungsaufwand und kannst Steckkontakte mit viel weniger Pins nehmen.
Wie gesagt die "Lichtleisten" mit den LEDs den 2 573 und dem Verstärker IC sind schon fix und fertig geätzt von daher werde ich ohl erst das vordere 573 LAtch beschreiben und danach das hintere beschreibfähig machen Wieso die Das Auto komplett neu bauen wenn die Karosserie schon vorhanden ist?
Hallo, @Travel Rec. (travelrec): wenn der Kram so schon auf Leiterplatten vorhanden ist, würde ich es einfach passend ansteuern und wäre viel zu faul, es umzulöten. :-) Nette Mann (nette-mann): Du bist vermutlich zu schnell wenn das Ganze räumlich etwas größer sein sollte, wirst Du zwischen Anlegen der Daten und dem Latchimpuls schon etwas warten müssen, bis die Daten stabil am Latch anliegen. Warten ist hier irgendwo im µs-Bereich. Da ich keine Ahnung habe, was BasCom für einen Code produziert, ist es Kaffeesatzraten. Wenn er aber z.B. das setzen der Portdaten und den Wechsel der LE Leitung auf out PORT,DATEN sbi PORT,LE cli PORT,LE zusammenoptimiert, wird es dem Kram zu schnell sein. Gruß aus Berlin Michael
>Wieso die Das Auto komplett neu bauen wenn die Karosserie schon >vorhanden ist? Wenn man immer so vorgehen wuerde, wuerden die Autos heute noch mit einer Kurbel gestartet.
Also ich habs jetzt erstmal geschafft mit 2 573 eine Led im abstand von 2 sec blinbke zu lassen. Nun werde ich mal das lauflicht anfangen erstmal VIELEN DANK AN ALLE! Ihr wart ne riesen Hilfe! Ich kann sie nun auch alle Ansteuern. Also es wird nehme jetzt ein 2tes Modul dazu und arbeite mich fort @Helmut Kurbel gehört zum Motor und die Kurbel wurde durch einen Anlasser ersetzt;)
Hallo, Helmut Lenzen schrieb: >>Wieso die Das Auto komplett neu bauen wenn die Karosserie schon >>vorhanden ist? > > Wenn man immer so vorgehen wuerde, wuerden die Autos heute noch mit > einer Kurbel gestartet. Naja, würde etliche Anrufe wegen Starthile einsparen... ;-)) Ich recycle auch gern Vorhandenes oder zweckentfremde es. Die Entscheidung, ob ich von außen anpassen oder sozusgen neu baue, höngt bei mir immer vom Einzelfall ab. Ich habe da nie vor, ein serienreifes Produkt zu schaffen, sondern nur, ein spielendes Einzelexemplar. Und da fällt auch bei mir oft die Entscheidung genauso, wie bei Nette Mann in diesem Einzelfall. Ich habe damit kein Problem, es führen ja viele Wege nach Rom. ;-) Gruß aus Berlin Michael
Habe es nun so das einmal von oben nach unter durch läuft bei 14 LEDs. Nur das sind ja jetzt schon knapp 2 A4 Seiten Code nur mit Portd.6 = 1 Portd.7 = 0 Portb.0 = 1 Portb.1 = 1 Portc.0 = 1 Portc.1 = 1 Portc.2 = 1 Portc.3 = 1 Portc.4 = 0 Portc.5 = 1 Kann man so nen Block nicht in ne Variable packen?
>Kann man so nen Block nicht in ne Variable packen?
Das Zauberwort heist Unterprogramme , Subroutinen u.s.w.
Pack das ganze mal in ein Unterprogramm dem uebergibts du nur deinen
Bytewert. Das verteilt diesen Wert dann an die einzelnen Portbits und
gibt dann den Strobe fuer das Latch aus.
Also immer nur einen Block schreiben diesen Block durch Routinen den einzelnen Latches zu teilen und sich nen Ei freuen? Dann werd ih mein BASOM Wissen mal vertiefen das mit dem Byte (8 bit's) dachte ih mir schon. Nur das ist ja Port übergreifend
Hallo, mit BasCom habe ich nichts am Hut, aber das wird ja wohl auch logische Verknüpfungen und Portausgaben kennen und nicht nur Bit-Zuweisungen... Arrays, Tabellen und Sunroutinen sollte es in BasCom ja auch geben... Die Ausgabe ist ja immer identisch: 8Bit Muster zerlegen in 2 Bit für PortB und 6 Bit für PortD Daten von PortB einlesen, die beiden genutzen Bits auf 0, die neuen mit oder dazu und raus. Das gleiche für Port D. Hauptschleife liest die Daten aus einer Tabelle und schickt sie der Reihe nach raus. Das einzige, was man tippen muß, ist die Tabelle mit den Bitmustern und der Abfolge. Die wiederholt sich aber ja vermutlich nach relativ wenigen Datensätzen für ein Muster. PS: Helmut Lenzen (helmi1) Du bist zu schnell... ;-))) Gruß aus Berlin Michael
>Michael U. (amiga)
Vielleicht koennen wir Nette Mann ja noch zu 'C' ueberreden. Ueberigens
habe ich mit BASCOM auch nichts am Hut.
Wenn ich jetzt z.B. Led Alias Portb.0 , Portb.1 , Portc.0 , Portc.1 , Portc.2 , Portc.3 , Portc.4 definiere, wie kann ich dann zum Beispiel sagen das LED = &1111111 ist? Also einen Wert zu fügen? Überreden gerne wenn es so einfach wie VB 2008 ist gerne ;) Nur dann ist das die 5te Fremdsprache ;)Dann brauch ich nur eine GUTE Einleitung in C und bestimmt AVR GCC Wäre nett wenn noch jemand was dazu schreibt oder was aus Berlin kommt ich bin erstmal essen und danach eventuell an meiner Riemenscheibe die Steuerzeiten einstellen vom Mondeo bis später und nochmals vielen Dank!
Hallo, hier wird es langsam entschieden zu warm... http://roehre.homeip.net/ wenn der AVR-Webserver artig ist. ;) Zu Sprachen mal meine (etwas provokatorische) Meinung: welche Sprache man benutzt, ist fast egal, man muß (etwas) programmieren können. Damit meine ich ein Problem in seine Teile zerlegen, Teillosungen erstellen und testen, eben den Algorithmus und den Programmablauf zusammenbasteln können. Ob auf Papier oder im Kopf muß jeder selber wissen. ;) Man muß wissen, daß es Schleifen gibt, wozu man sie benutzt und merken, wo man sie braucht. Bedingungen, Unterprogramme, Funktionen gibt es in jeder Sprache, weil es ohne nicht geht. Datentypen muß es geben, die haben Wertebereiche. Nachzuschauen, wie die Syntax ist, ob es in Basic eben IF bla = blub THEN mache was ELSE mach was anderes END IF ------------------------ heißt oder in ASM eben cp bla,blub brne nicht_gleich mach was rjmp fertig nicht_gleich: mach was anderes fertig: ------------------------ oder in C eben if (bla == blub { mach was } else { mach was anderes } ----------------------- macht kaum einen Unterschied, man muß nur wissen, daß man an der Stelle einen Vergleich durchführen will. ;-))) Duck und wech..... Gruß aus Berlin Michael
Dann werd ich mal Tüfteln Danke erstma
PS: für deinen Webserver brauch man Zugangsdaten ;)
Hallo, Nette Mann schrieb: > Nu ist fertig kühl und funzt fein. :-) >PS: für deinen Webserver brauch man Zugangsdaten ;) stimmt, vergessen... Benutzer: test Passwort: test Gruß aus Berlin Michael
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.