Atmega8 und 74HC595

Tipfix

Neues Mitglied
08. Sep. 2008
54
0
0
Sprachen
:adore: Hallo Ihr:adore:

Ich mal wieder. Habe über E-Bay einen Sack voll 74HC595 Schieberegister bekommen. Diese möchte ich gern am Atmega8 nutzen. So jetzt kommts, ich habe schon überall gesucht aber kein Beispiel für die Ansteuerung in Bascom gefunden. Wenn dann C oder ASM:eek: . Und da ich in dem Forum schon so viel Hilfe bekommen habe, wende ich mich mal wieder an Euch. Mir wäre ein kleiner Einstieg für ein Register hilfreich. Denn Rest bekomm ich hoffentlich selber raus.

Es grüßt der Tipfix

PS: Schönes WE an alle
 
Hallo Tipfix,

nicht für alle Probleme gibt es bereits "vorgekaute" Lösungen in BASCOM aber das ist auch kein Problem denn ich glaube - bin mir ziemlich sicher - dass Du das auch allene hinbekommst. ;)

Neee, keine Angst, mit alleine meine ich nicht, dass ich Dich im Stich lasse sondern ich meine damit ...

... Vor den Erfolg haben die Götter den Schweiß gesetzt :p

Uns außerdem, wenn es dann funktioniert und man es selbst hinbekommen hat, dann freut "mann" sich doppelt. Aus diesem Grund werde ich Dir diesmal keine Lösung vorzaubern sondern wir zaubern gemeinsam. OK? Ich liefere Dir die Zaubersprüche und die Werkzeuge und den Zauber ausführen darfst Du selbst. Einverstanden?

Also, zunächst habe ich folgendes dazu zu sagen:

Du solltest Dir eingehend das Datenblatt verinnerlichen. Falls Du kein vernünftiges Datenblatt hast so schaue doch mal unter www.datasheetcatalog.com
Die haben so ziemlich alles als downloadbares PDF. Von besonderm Interesse dürfte dabei das Logik-Diagramm und die Zustandtabelle der Pin's inkl. Pegel an. Über die Zustandstabelle bekommst Du sehr schnell auch die Funktionsweise raus. Schaus Dir genau an und wenn Du nochmal Fragen hast dann melde Dich wieder.

Weiter!

Über Timings usw. machen wir uns erst mal überhaupt keine Gedanken. Soweit sind wir nämlich noch nicht. Als erstes solltest Du Dir die benötigten freien PIN's Deines Megas raus suchen und festlegen. Ich behaupte jetzt einfach mal - ohne Deinen genauen UseCase zu kennen - dass Du 5 Pin's vo Mega spendieren musst um die voll Funktionalität des 74HC595 auszunutzen.

Vieleicht erzählts Du uns auch ein bissle darüber, was Du damit realisieren möchtest.

Unter Umständen lässt sich dann der eine oder andere PIN direkt via HW auf einen bestimmten Pegel fixieren.

Überlege Dir ob Du Eingänge und Ausgänge vom Mega benötigst oder wie der IC am besten angeschlossen wird. Kleiner Tipp :p Ich würde 5 Ausgänge verwenden. Überprüfen und bestätigen musst Du mir die Aussage!

So.....

Wenn der 595 erstmal am Mega hängt und nicht gleich explodiert :cool: dann kannst Du Dir Gedanken über BASCOM machen. Hierfür ein paar Gedanken:
- Die Ansteuerung des 595 machen wir selbst zu Fuß, das ist kein Problem
- Fertige Lösungen sind langweilig :)
- also, Ports bzw Pins konfigurieren
- Beachte das alle Pins des Mega bei Reset "Tristate" = hochohmig werden und damit undefiniert Zustände annehmen können. Du solltest also ggf. (je nach Anwendung PullUp oder PullDown Widerstände vorsehen.
- Einige Funktionen des 595 wirst Du mir RESET bzw. SET Funktionen auf die von Dir definierte PINs umsetzen müssen.
- In welcher Reihenfolge die Pin's zu toggeln oder zu setzen/rückzusetzen sind häng davon ab, was Du machen möchtest. Hierbei hilft Dir das Timing Char aus dem Datenblatt.

Sooooo....

nun wirst Du mir sicherlich die wichtigste Frage stellen, nämlich, wie bekomme ich die Daten in den Chip. Richtig?
- Schau Dir bitte hierzu mal den Befehlt SHIFTOUT von BASCOM an. Dieser kleine unscheinbare Befehl dürfte nämlich schon die meisten Hausaufgaben erledigen. Er müsste alles können was Du brauchst. Probiers aus!
- Das bissle Bitgezappel drum herum ist dann noch schnell erledigt!


Was hältst Du von diesem Ansatz? Am besten Du steckst das Ding an einem Steckbrett mal zusammen und hängst an jeden Ausgang des 595 eine LED und los kann die Spielerei gehen. Auf diesem Weg kannst Du Dir eine eigene kleine universelle Funktion oder Subroutine für BASCOM schreiben.

Ich hoffe ich konnte Dir erstmal weiterhelfen. Für weitere Fragen wenn Du hängen bleibst stehe ich gerne zu Verfügung. Ich bin gespannt auf Dene Lösung.

Viel Spass beim Entwickeln!

Und los......

Markus
 
Hallo Markus

:eek: Man das ist ja mal viel Text. Hat ich aber ganz schön zu tun.:eek:
So das Datenblatt hab ich schon mal. Bin auch schon am lesen. Allerdings ist mein Englisch nicht so überragend. Aber das passt schon.

Ich behaupte jetzt einfach mal - ohne Deinen genauen UseCase zu kennen - dass Du 5 Pin's vo Mega spendieren musst um die voll Funktionalität des 74HC595 auszunutzen.

Also was ich so an Beispielen gesehen habe reich Drei Anschlüße zu.

Vieleicht erzählts Du uns auch ein bissle darüber, was Du damit realisieren möchtest.

Ich habe hier noch drei Dot-Matrix Anzeigen gefunden. Und die will ich verbauen. Bild liegt bei.

Bin dabei das ganze auf einem Steckbrett auf zubauen. Erstmal ohne die Anzeigen. Erstmal rausbekommen wie ich Daten in die Register bekomme.

So das wars erstmal.
 

Anhänge

  • DSC00565.jpg
    DSC00565.jpg
    67,9 KB · Aufrufe: 133
Hallo zusammen,
Also was ich so an Beispielen gesehen habe reich Drei Anschlüße zu.

es reichen tatsächlich drei Pins des Mikrocontrollers aus. Man benötigt ...
  • Serial Data In
  • Serial Data Shift (steigende Flanke)
  • Load Latch (steigende Flanke)
hierbei muss man das Signal EN\ auf logisch low legen, ansonsten sind die Ausgänge hochohmig.

Bei sicherheitsrelevanten Schaltungen, auch gerade wenn man mehrere 595 aneinanderreiht, kann man EN\ und Serial Data Out ebenfalls am Mikrocontroller anschließen. Man taktet in diesem Fall alle Bits durch, lädt dann den Inhalt der Shift-Register in das Latch-Register und taktet danach alle Bits über Serial Data Out wieder in den Mikrocontroller und prüft die Gleichheit der gesendeten mit den empfangenen Bits. Wenn alles richtig ist, dann erst die Ausgänge der 595 über EN\ aktivieren (der Tristate-Zustand Z muss hierbei in der Schaltung einen neutralen Zustand erzeugen). Für die Anwendung mit der LED-Anzeige reichen aber drei Signale.

Grüße
Dirk
 
Guten Tag

@Dirk, bist wohl frühaufsteher:) .
Was ich noch so gelesen habe ist das es Sinnvoll ist den Hardware SPI-Bus zu nehmen. Wäre weniger Aufwand.

Der Tipfix
 
Hallo Dirk

... ich nicht, heute eher mal mein Kleiner

Kommt mir bekannt vor.

Gut Anschluß ist eher kein Problem. Die Ansteuerung schon eher. Markus hat zwar viele Tips gegeben aber wirklich weiter bin ich noch nicht. Wird mal wieder ein langer Programmierabend. Aber das wird schon. Hab bis jetzt eigentlich alles hin bekommen. Siehe mein GPS-Tracker, oder die DCF-Uhr. Wenn ich erstmal dahinter gekommen bin wie die Ansteuerung geht dann gehts schnell.

Gruß Andreas aka Tipfix
 
:) Guten Tag:)

Habe mich ein bischen mit der Ansteuerung beschäftigt. Raus gekommen ist bis jetzt das Prog im Anhang.
Dieses füllt mir jetzt das Register mit Werten bis 255.

Der Tipfix
 

Anhänge

  • 595.txt
    572 Bytes · Aufrufe: 264
Hallo Andreas,

is ja doll Mann :p ,
herzlichen Glückwunsch, bin stolz auf Dich! Ich glaub so schlecht war meine Erklärung dann nicht, oder?

Hatte mir auch mal die Lösung von Dirk mit der SPI angesehen. Geht auch, ist nur a bissle Trickreicher. Mit dem ShiftOut kannste Links- und Rechts-Schieben und man ist ein wenig flexibler.

Die SPI ist in meinen Augen die elegantere Lösung aber da muss man sich erst noch ein wenig durch mehr Theorie wühlen und vor allem mit dem Datenblatt zum MEGA und der Funktionsweise einer SPI vertraut machen. Und, man ist von den Ressourcen etwas eingeschränter, wenn man die HW-SPI nutzen möchte.

Übrigens hier noch ein Tipp wenn Du noch ein wenig spielen möchtest. Mit CONFIG SPI kannst Du unter Bascom die SPI konfigurieren. Wie es für BASCOM üblich ist (ist auch bei 1Wire oder TWI so) gibt es jedoch neben der HW-Unterstützung des HW-Interface des Kontrollers noch eine frei konfigurierbare SW-Lösung. Bei der SW-Lösung vekommst Du mit BASCOM eine komplette Interface Emulation und Due kannst die PIN's verwenden die Du möchtest. Aber, es geht auf Lasten der Rechenzeit weil BASCOM das ganze via SW in den Bibliotheken nachgebildet hat.

Aber das nur am Rande, eigentlich wollte ich Dir ja nur kurz gratulieren.

Grüße und schönen Abend,
Ma
 
Abend Markus

Danke für die Blumen. Ich ziehe die Softwarevariante vor. Das geht und reicht mir wahrscheinlich. Habe mittlerweile zwei Register dran und schiebe bis 65535 rein. Geht ganz hervoragend.:D Nächster Punkt auf der Liste, einfache Muster. Und dann meine Dot-Matrix Anzeigen.

Der Tipfix:)
 
Nochmal Ich:

Ich hab noch ein Bild von meinem Versuchsaufbau.
Na, wer weiß was das für ein Netzteil ist?:confused:

Der Tipfix
 

Anhänge

  • DSC00566.jpg
    DSC00566.jpg
    66 KB · Aufrufe: 112
Hmmmmm, meins?
Ich meine, 12V und 5V könnte ja sein, oder? Und Leistung hat es auch genug.
Ist nur ei Schuss in blaue, verrats mir!

Grüße,
ma
 
Hallo Markus

Das ist noch ein gutes vom Amiga1200. Einfach ein paar Buchsen dran und fertig ist das Bastelnetzteil.
 
OK, gewonnen, hatte nie einen. Hatte lange Zeit einen CPC6128 von Schneider (gute alte Z80-Maschine) und bin dann auf 80386 PC umgestiegen.

Grüße,
ma
 
Guten Abend

Ich habe jetzt mal meine Anzeigen mit angeschlossen. Ich habe das angehängte Prog in den Atmega geschoben. Allerdings macht es nicht das was ich erwarte sondern das hier auf dem VIDEO.
Eigentlich sollte es mir die Anzeigen von links nach rechts auffüllen.

Aufbau:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1
2
3
4
5
6
7

Also eigentlich sollte Spalte 1-15 aufgefüllt werden macht es aber nicht.

Ratlosigkeit macht sich breit.
 

Anhänge

  • Matrix.txt
    1,7 KB · Aufrufe: 69
Video geht nicht

Hallo,
Appel-Qucktime schießt mir jedesmal den Mediaplayer.
Gibt es ne Möglichkeit das Video-File als *.avi oder so zu speichern, das wäre toll.
Ich bin ja sooo neugierig.:pleasantry: :stupido3:

Gruß von Oskar01
 
Danke Video läuft jetzt

Hallo @Tipfix,

konnte mir gerade das Video anschauen.
Nun, die Segmente laufen ja wild durcheinander. OK.
Das kriegen wir schon hin. Besser gesagt, Markus, der Bascom-Experte muß
ran an die Front jetzt. Mein Latein ist da schon zu ende.

Danke für das Video-ummodeln nochmals,


Gruß von Oskar01
 
Hi Andreas,

ich schaue mir Dein Programm gerne an. So wie ich Dich verstanden habe konntest Du sauber 16-Bit-Werte in die Schieberegister laden und das hat auch funktioniert, oder?

Wie viele Schieberegister betreibst Du jetzt parallel? Damit ich eine fundierte Aussage machen kann was schief geht würde ich Dich bitten, mir kurz Deinen Schaltplan zu skizzieren. Damit fange ich immer erst gerne an. Ist Dein Progi auch noch bereits gesendete Original aus diesem Thread oder hast Du schon Ergänzungen am Programm durchgeführt. Ich hätte zur Hilfe nämlich auch noch gerne Dein aktuelles Prog.

Zunächste würde ich nämlich auch erst die Schaltung kontrollieren und schauen ob es passt und dann ob die SW zur Schaltung passt.

Wie gesagt, stell die aktuellen Infos ein und ich schau's mir an.

Grüße,
Markus
 
:) Hallo Markus:)

So wie ich Dich verstanden habe konntest Du sauber 16-Bit-Werte in die Schieberegister laden und das hat auch funktioniert, oder?

Richtig, wenn ich das schön testweise eins nach dem andere reinschiebe geht es. Also stimmt die Schaltung schon mal.

Wie viele Schieberegister betreibst Du jetzt parallel?

Für die Zeilen 1, und für die Spalten 2 parallel.

Dich bitten, mir kurz Deinen Schaltplan zu skizzieren.

Hab ich an gehängt.

Ist Dein Progi auch noch bereits gesendete Original aus diesem Thread

Nochmal angehängt.

Also, wie gesagt die Schaltung geht, ganz sicher.

Wenn der Schaltplan Fragen aufwirft immer her damit.:eek:

Grüße Andreas
 

Anhänge

  • matrix.JPG
    matrix.JPG
    94,7 KB · Aufrufe: 141
  • Matrix.txt
    1,6 KB · Aufrufe: 45

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)