PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 74HC595 Clock und noch so einiges?



Zachso
23.06.2007, 15:10
Hallo!

ich würde gerne eine Porterweiterung betreiben, habe aber folgendes Problem: mein PIC läuft intern mit 48MHz (also 12 MIPS) und nun stellt sich natürlich die frage welchen Takt in an den Baustein anlegen soll, gleich eine Leitung vom quarz rüber ziehn? oder wie wird das gemacht? und brauche ich irgendwelche Peripherie um den 74HC595 anzusteuern oder reicht es einfach die Leitungen zu ziehen? Also die Frage ist ob ich noch Widerstände brauche, einen kleinen Kondensator zur spannungsstabilisierung sollte wohl noch ran aber das wäre eigentlich alles was mir bekannt ist.
Vielen Dank schonmal für eure Hilfe! MfG, zachso

BASTIUniversal
23.06.2007, 15:49
Hi!
Wenn du den 595 mit SPI ansteuern willst, musst du die Shift Clock an SCK und den Input A an MOSI hängen. Wenn du deine 8 Bit in den Baustein geschoben hast, musst du noch den Latch Clock von Low nach High ändern. Dann müssten deine 8 Bit am Ausgang erscheinen.
Den Reset Pin kannst du ggf. fest auf High und den Output Enable Pin fest auf Gnd legen.
Ich habe die Daten jetzt alle nur aus dem Datenblatt...gearbeitet hab ich mit dem Baustein bis jetzt noch nie :-)

Eine ausführliche Beschreibung gibt's dann noch hier: Link (http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister)

MfG
Basti

Zachso
25.06.2007, 20:10
Hm, also wenn ich das recht verstanden habe dann ist es tatsächlich egal an welche Pins ich das ding hänge? und externe Beschaltung braucht es auch nicht? dann frage ich mich nur noch wie lange die Ports brauchen um gelesen zu werden? also wie lange muss der entsprechenden Pegel anliegen? und ich habe das Problem dass bei meinem PIC18F2550 MSSP dabei ist, ich aber schon einen SRF02 über I2C verwalten möchte, was mache ich nun mit der Porterweiterung? wenn ich das recht sehe habe ich keinen MOSI-Pin, oder, was noch wahrscheinlicher ist, hat dieser einen anderen Namen.
das Problem mit dem I2C ist folgendes: er benutzt den gleichen SCL-Pin wie das SPI-Modul, soll heißen es gibt da dann wohl einen Konflikt, denn was mit dem I2C-Modul passiert ist ja egal aber wenn ich das dann ansteuern möchte verändere ich doch eventuell die Bits im 74HC595?

leider komme ich mit dem Beispielprogramm auf µC.net nicht wirklich klar so dass es mir nicht viel bringt, sonst würden sich sicherlich einige Lösungsansätze schon daraus ergeben.

mfg, Zachso

BASTIUniversal
25.06.2007, 22:30
Hi!
Im Prinzip kannst du jeden freien Pin/Port verwenden, mit der SPI Schnittstelle wäre es halt etwas einfacher (zumindest bei den AVRs).

Mit den Angaben im Datenblatt (und ohne zu Rechnen) lässt sich eine mindest Dauer, vom Eintakten der Daten bis zum erscheinen an den Ausgängen, von ca. 300ns ableiten. Du könntest (wenn dein PIC mitspielt) also mit bis zu 3 MHz Daten übertragen. Dazu brauchst du aber einen Takt von 30 MHz (was dein PIC definitiv nicht kann).
Du musst allerdings beachten, dass du die Daten nur schreiben kannst...aus dem 595er kannst du nicht lesen (also den Zustand der Pins abfragen)!

MfG
Basti

Zachso
26.06.2007, 16:29
oh, nicht lesen, stimmt da hatte ich mich auch schon gewundert und wollte es gleich als nächstes fragen, schade :( gut dann ist die Porterweiterung auch nichts für mich, leider, da muss ich wohl den PCF 8574P nehmen, dort kann man das ja wenn ich recht informiert bin.
und es ist doch auch richtig dass ich mehrere I2C Geräte an einem I2C Bus betreiben kann so dass ich also zum Beispiel 2 porterweiterungen und einen SRF02 betreiben könnte? wäre sehr cool wenn mal jemand ja oder nein schreiben könnt, nur damit ich bescheid weiß.

thx, mfg, Zachso

Babbage
26.06.2007, 16:58
Wie ich die Sache sehe willst Du also mehrere Eingänge mit wenigen Prozessorleitungen auslesen?
Wenn das so ist könntest Du beispielsweise den 74 166 nehmen.

Das ist ein Schieberegister welches auf ein Signal hin alle 8 Eingänge speichert. Diese kannst du dann seriell mit dem Microcontroller auslesen.
Dazu benötigst Du 3 Leitungen.
Du kannst auch mehrere hintereinander kaskadieren und hast prinzipiell beliebig viele Eingänge mit 3 Steuerleitungen. Allerdings dauert das serielle auslesen dann dementsprechend länger.

Babbage

BASTIUniversal
26.06.2007, 16:58
Hi!
Ja, der PCF8574 ist "Quasi"-Bidirektional (steht im Datenblatt...was es genau bedeutet musst du nachlesen), funktioniert also als Ein- und Ausgang.
Die Adresse des PCF kannst du selbst festlegen (zumindest die letzten 3 Bit), und damit 8 PCF's an einen I²C-Bus hängen. Dein SRF02 kannst du (soweit sich die Adressen nicht in die Quere kommen) auch noch dran hängen.
Die Port-Erweiterung ist halt relativ langsam, sie ist für LED's, Taster und andere Sachen gedacht (also alles bis max. ein paar kHz).

MfG

Zachso
26.06.2007, 17:10
gutgut, mehr brauche ich ja auch nicht, möchte damit weder ein pwm steuern noch eine rs232 oder sonst etwas in die Richtung dranbaun. vielen dank erstmal jedenfalls, hast mir sehr geholfen, thx!

mfg, Zachso