mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 74xx165 und 74xx595 Zusammen? SPI Mode? Porterweiterung


Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wollte wie in dem Beispiel ganz unten im PDF :
http://www.mikrocontroller.net/attachment/1483/SPI...
74xx165 und 74xx595 zur Porterweiterung eines Attiny 2313 nutzen da ich 
64 Eingänge und 64 Ausgänge brauchte. Habe nun aber festgestellt das der 
2313 kein Richtiges SPI hat sondern nur USI. Ich habe auch nicht 
herrausgefunden wie ich damit den SPI-Mode zur Laufzeit umstellen kann.

Meine Frage nun hat jemand von euch so eine Art Porterweiterung für 
Eingänge UND Ausgänge schonmal realisiert? Wenn ja , stimmt es das ich 
die clock priorität beim benutzen von beiden Registern umstellen muss?

Wenn das so sein sollte würde ich mir einfach einen µC Kaufen der 
richtiges SPI hat. Und dann folgendes machen.

SPI  mit CPHA=0
Lesen vom 165
SPI mit CPHA=1
Schreiben an 595

Das sollte doch Problemlos an einen ATMega8 laufen oder? Weil da weiss 
ich wie ich zur Laufzeit einfach CPHA umstellen kann.

Wäre echt nett wenn jemand von Euch nen Tip für mich hat.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SPI-Master zu Fuss ist nicht wirklich kompliziert. Das USI kann man dazu 
zwar auch verdonnern, aber es lohnt kaum.

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal für deine Antwort. Ich muss dazu sagen das ich eigentlich 
totaler Anfänger bin und auch mit Bascom programmiere. Das mit dem SPI 
Master per Software habe ich auch schon gelesen , nur meinte man da das 
sie Geschwindigkeit mit Hard-SPI höher ist.
Und ich denke für 128 i/o über 16 Schieberegister muss das schon 
einigermaßen schnell ablaufen.

Mich würde wirklich interessieren ob das was mit der Clock Priorität im 
oben genannten PDF steht auch so richtig ist.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schnell Software-SPI beim Bascom ist weiss ich nicht, zumal das dort 
schon fertig in der Lib ist. Probier es aus und schau nach ob schnell 
genug, d.h. wieviel Bytes pro Sekunde du rauskriegst.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lutz schrieb:
> Das mit dem SPI
> Master per Software habe ich auch schon gelesen , nur meinte man da das
> sie Geschwindigkeit mit Hard-SPI höher ist.

Ja klar. Höher ist sie schon. Aber so dramatisch ist das auch wieder 
nicht.

> Und ich denke für 128 i/o über 16 Schieberegister muss das schon
> einigermaßen schnell ablaufen.

Das kommt drauf an, wieviele Updates du in der Sekunde brauchst.
Bei einem mit 8 Mhz getakteten Prozessor sollten so um die 50 Updates in 
der Sekunde (natürlich für alle 128 Ein/Ausgänge) noch problemlos 
machbar sein.

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
50 updates würden locker ausreichen , ich denke wenn ich 5 mal in der 
sekunde update wäre das auch ok.

Hast du vieleicht Literatur Tip zum Einlesen?

Macht es einen großen Unterschied ob ich in Bascom oder normal mit C 
programmiere? Hatte jetzt mit Bascom angefangen weil es für mich 
eigentlich gut verständlich war.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lutz schrieb:
> 50 updates würden locker ausreichen , ich denke wenn ich 5 mal in der
> sekunde update wäre das auch ok.

Vergiss aber nicht dem µC ein Fläschen Riechsalz daneben hinzustellen. 
Sonst schläft der in der Zwischenzeit vor Langeweile ein :-)

>
> Hast du vieleicht Literatur Tip zum Einlesen?

Was brauchst du da Literatur?
Aus einem Byte alle 8 Bits, eines nach dem anderen rausklamüsern, auf 
den Portpin legen, bei jedem Bit einemal mit dem Clockpin wackeln und 
fertig ist die Schose. Sind alle Bytes draussen, einmal mit dem 
Übernahmepin wackeln und alle 595 schalten ihre Zustaände nach aussen 
durch.

Für die 165 dann sinngemäss anders rum

http://www.mikrocontroller.net/articles/AVR-Tutori...

> Macht es einen großen Unterschied ob ich in Bascom oder normal mit C
> programmiere?

Das Prinzip ist in beiden Sprachen dasselbe. Wie gut dich BASCOM 
unterstützt, wenn es um das extrahieren von einzelnen Bits aus einem 
Byte geht weiß ich nicht. In C ist eine Routine, die ein Byte in 
beschriebener Manier auf 2 µC-Pins ausgibt ein 3 Zeiler.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.