Servus, ich möchte an einem SPI unter anderem 74HC165er betreiben. Um erstens den Pinverbrauch am ATmega zu senken würde ich gerne das parallele Laden mit dem ChipSelect verbinden und zweitens den Ausgang TriState schalten wenn CS inaktiv ist. Die im Anhang abgebildete Schaltung ist mir dazu eingefallen. Folgende Fragen habe ich nun: Laut Datenblatt ist der PL nicht flankengesteruert, das EAGLE Symbol aber schon, was ist nun Richtig. Und ist die schaltung so funktionsfähig? Habe mit dem 165er leider noch nicht so viel erfahrung und wäre dankbar wenn die alten Hasen da mal n blick drauf werfen könnten. --Daniel PS: ich würde als versorgung gerne 3,3V nehmen, machen die MOSFETs das mit?
@ Daniel Steffen (derdaniel) >Laut Datenblatt ist der PL nicht flankengesteruert, Das ist auch real so. >das EAGLE Symbol >aber schon, Fehler. >Und ist die schaltung so funktionsfähig? Jain. Lass aber den Murks mit dem selbstgestricken Tristate. Nimm einen 74HC125. Den kannst du auch als Inverter für CS/PL nutzen. >PS: ich würde als versorgung gerne 3,3V nehmen, machen die MOSFETs das >mit? Wenn man die richtigen nutzt. Es muss ein Logic Level Mosfet, sein, der im Datenblatt explizit für 3,3V Steuerspannung (oder weniger) spezifisiert ist, Siehe MOSFET-Übersicht MfG Falk
Ups, da bin ich wohl verrutscht mit dem PL und der Flankensteuerung. Aber wie baue ich aus einem 125er einen invertierer?
@ Daniel Steffen (derdaniel)
>Aber wie baue ich aus einem 125er einen invertierer?
Das ist eine kleine Knobelaufgabe für den Schööööler.
Kleiner Tip. Tristate-Ausgang nutzen.
MFG
Falk
Also ich komme auf keine andere möglichkeit als wieder n PULL Widerstand zu nehmen: |\ +3V3 --| >O--|--PL |/ | O - | | | 100k | | | CS - | GND Aber das ist wieder keine saubere Lösung. Oder gibts einen 74HC Inverter mit TriState ausgängen? (übersicht rauskram) Mit dem könnte man eine Sehr schäne Lösung basteln und gleich zwei 165er SPI kompatibel machen.
@ Daniel Steffen (derdaniel) >Also ich komme auf keine andere möglichkeit als wieder n PULL Widerstand >zu nehmen: Das ist die Lösung. >Aber das ist wieder keine saubere Lösung. Aber sicher! MfG Falk
Befriedigt mich irgendwie nur so weit das ich auch n eigenbau TriState machen könnte. Um die Idee mit dem invertierenden Treiber nochmal aufzugreifen: Damit wäre an /QH und CE1 ein Direktes treiben des SPI und /PL möglich (ohne sonstige beschaltung) nur bräuchte man dafür n 74HC125 mit invertierenden Treibern. Gibts das? Bis jetzt habe ich nur welche gefunden bei denen Output Enable zentral geschaltet wird (74HC240), was bisal blöd is.
Eventuell hilft Dir der hier weiter: 74LVC1G99 Im Datenblatt wird auch gezeigt, wie man den unter anderem zum invertierenden Treiber mit 3-State Output umfunktionieren kann. http://www.nxp.com/documents/data_sheet/74LVC1G99.pdf
>würde ich gerne das parallele Laden mit dem ChipSelect verbinden
geht norm. nicht, weil ChipSelect während ganzer Protokollzeit aktiv
ist.
evtl mit ner Impuls-schaltung, oder \LD ein-aus über Takte gesteuert...
Ich hatte gerade das gleiche Problem und fand hier keine Lösung. Im Artikel Porterweiterung mit SPI ist "/SS" (Chip-Select) direkt mit "/PL" (= PIN1 = /LD) verbunden. Das geht aber nicht, wie MCUA schrieb: > geht norm. nicht, weil ChipSelect während ganzer Protokollzeit aktiv > ist. > evtl mit ner Impuls-schaltung, oder \LD ein-aus über Takte gesteuert... Das ist irreführend; soll ich das im Wiki mal korrigieren? In der Anlage ist der Ausschnitt, aus dem Artikel Beitrag "Re: USB Koppelfeld für Festplatten" …, dort ist zu sehen, wie ich das Problem gelöst habe. Hope that helps ...
Hi >Das ist irreführend; soll ich das im Wiki mal korrigieren? Warum? Bei AVRs ist, im SPI-Master-Betrieb, das SS-Pin frei programmierbar. D.h. da wird nichts 'automatisch' L oder H. MfG Spess
Der HC165 braucht kein Chip-Select, nur ein Parallel-Load, was vor dem Schieben kurz low gepulst wird. Will man noch andere SPI-ICs mit dem HC165 zusammen auf MISO schalten, legt man einfach einen 4,7k in Reihe. Ist kein anderer SPI-Slave selektiert, dann wird der HC165 eingelesen. Ansonsten überstimmt der selektierte Slave den HC165. Peter
Peter Dannegger schrieb: > Der HC165 braucht kein Chip-Select, nur ein Parallel-Load, was vor dem > Schieben kurz low gepulst wird. Genau darum geht es (ganz unten im Bild) ^^. Danke. > Will man noch andere SPI-ICs mit dem HC165 zusammen auf MISO schalten, > legt man einfach einen 4,7k in Reihe. Du redest wieder über den seriellen Ausgang! Und wenn man einen '1G125 über hat, kann man auch den nehmen. Das steht schon zig mal im Forum. Will man noch andere SPI-ICs in eine Gänseblümchenkette bauen, brauchen die anderen Slaves in der Regel ein "echtes SS". Daher nur der Hinweis, wie man "Parallel-Load" aus diesem dann eh vorhandenen Signal ableiten könnte. spess53 schrieb: > Warum? … D.h. da wird nichts 'automatisch' L oder H. Es ist ja auch nicht falsch. Irreführend ist es, weil das Signal als "SS" bezeichnet wird, und nicht z.B. als "PL" wir hier: http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister#Schaltung Bei Verwendung der Bezeichnungen "SPI" und "SS" könnte man annehmen, das Protokoll so funktioniert so wie hier beschrieben: http://de.wikipedia.org/wiki/Serial_Peripheral_Interface#Protokollablauf_und_Einstellm.C3.B6glichkeiten Ich wollte nur helfen, damit der TO eine Lösung in seinem Thread hat und damit andere nicht in die Irre geleitet werden, aber das kann auch gern ein anderer machen.
MCUA schrieb: >>würde ich gerne das parallele Laden mit dem ChipSelect verbinden > geht norm. nicht, weil ChipSelect während ganzer Protokollzeit aktiv > ist. > evtl mit ner Impuls-schaltung, oder \LD ein-aus über Takte gesteuert... Wieso Impuls-schaltung oder über Takte steuern? Kann man nicht einfach ein invertiertes SlaveSelect (ChipSelect ^^) mit PIN 1 (\PL == /LD) verbinden? Ich denke, das ist die einfachste Antwort auf die Frage des TO. Einzelne Inverter gib's in der 1G...-Serie.
Wem die Lösung mit Widerstand nicht gefällt, es gibt doch auch high active Tristate-Gatter, z.B. MC74VHC1GT126DF1G. Und schon kann man /PL und CS zusammen auf einen IO-Pin legen. Peter
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.