74HC595 mit anderen am SPI

OP #1606833
Lesenswert?
• ▲
▼
Hallo,

ich möchte einen 74HC595 an den SPI Port meines ATMega8 hängen, da ich 
nichtmehr genug ausgangspins zur Verfügung habe. Soweit in Ordnung.

Allerdings habe ich am SPI Bus schon einen 10bit DAC. Von den 
Ausgabetimings her wären beide gleichzeitig dran kein problem, 
allerdings hab der 74HC595 ja keine ChipSelect Leitung. Ich könnte SRCLR 
dazu verwenden, nur würden dann die Registerinhalte gelöscht, was aber 
nicht sein darf. Die Stati sollten bis zum nächsten 'schieben' gehalten 
werden.

Spontan würde ich das mit einem Transistor lösen, der die beiden 
Taktleitungen als CS einfach abtrennt (SRCLK und RCLK wollte ich sowieso 
zusammennehmen an SCK).

Kriege ich das aber evtl. irgendwie ohne zusätzliche Hardware hin?
#1606847
Lesenswert?
• ▲
▼
@  Ephraim Hahn (ephi)

>allerdings hab der 74HC595 ja keine ChipSelect Leitung.

Indirekt doch. Die RCLK LEitung.

> Ich könnte SRCLR
>dazu verwenden,

nein.

>Taktleitungen als CS einfach abtrennt (SRCLK und RCLK wollte ich sowieso
>zusammennehmen an SCK).

Nicht serh sinnvoll. SRCLK wird normal mit SCK verbunden, RCLK ist dein 
CS.

>Kriege ich das aber evtl. irgendwie ohne zusätzliche Hardware hin?

Siehe oben und AVR-Tutorial: Schieberegister

MFG
Falk
OP #1609821
Lesenswert?
• ▲
▼
nungut, dann hab ich da wohl was falsch verstanden.

Ich mache es nun so:
1
void sw_output(uint8_t data)
2
{
3
  SW_PORT |= (1<<SW_CS);
4
  spi_send(data);
5
  SW_PORT &= ~(1<<SW_CS);
6
}

SW_CS ist die RCLK Leitung. spi_send sendet einfach ein byte mit 2Mhz 
SPI Clock raus. Irgendwie tut sich aber nix an den Ausgängen des '595. 
Ist das noch ein verständnisfehler, oder sonstwas?
So wie ich das datenblatt verstehe, übernimmt der die anliegenden Daten 
ja blos bei steigender RCLK flanke, also kann obiges ja nicht gehen, 
aber wie mach ich das dann?

OE hab ich auf GND und SRCLR auf Vcc gelegt. SER an MOSI und SRCLK an 
SCK. STromversorgung ist ebenfalls korrekt.
Gast #1609823
Lesenswert?
• ▲
▼
Ephraim Hahn schrieb:
> So wie ich das datenblatt verstehe, übernimmt der die anliegenden Daten
> ja blos bei steigender RCLK flanke, also kann obiges ja nicht gehen,
die frage ist, welches wohin du meinst. es gibt 2...
#1609827
Lesenswert?
• ▲
▼
@  Ephraim Hahn (ephi)

>SPI Clock raus. Irgendwie tut sich aber nix an den Ausgängen des '595.

Was logisch ist. CS muss am ANFANG LOW und nach der Übertragung HIGH 
sein.

>OE hab ich auf GND und SRCLR auf Vcc gelegt. SER an MOSI und SRCLK an
>SCK. STromversorgung ist ebenfalls korrekt.

Siehe auch

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister#Aufbau

MfG
Falk
Gast #1609831
Lesenswert?
• ▲
▼
mein beitrag oben gibt recht wenig sinn...
daher: die frage ist, wohin die daten übernommen werden. und dafür 
gibt es 2 möglichkeiten.
der von falk (erneut) verlinkte artikel beschreibt es echt gut.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.