Wollte wie in dem Beispiel ganz unten im PDF : http://www.mikrocontroller.net/attachment/1483/SPI_74HC595.pdf 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.
SPI-Master zu Fuss ist nicht wirklich kompliziert. Das USI kann man dazu zwar auch verdonnern, aber es lohnt kaum.
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.
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.
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.
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.
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-Tutorial:_Schieberegister > 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.
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.