mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 3-Wire SPI Anschluss am AVR


Autor: keine_idee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag zusammen,


ich plane ein Projekt, bei dem zwei 6-Digit LED Controller 
(STLED316S)von einem ATMEGA88 gesteuert werden. Dieser LED Controller 
besitzt folgende drei Pins zur Kommunikation: CLK,STB und DIN/DOUT.

Meine Frage lautet nun, wie muss ich die beiden LED Controller an meinen 
ATMEGA anschließen?

Autor: Marc V. (Firma: Vescomp) (logarithmus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
keine_idee schrieb:
> Meine Frage lautet nun, wie muss ich die beiden LED Controller an meinen
> ATMEGA anschließen?

 Auf jeden Fall nicht als SPI.
 Ich würde bitbanging vorschlagen.

Autor: Stefan K. (stefan64)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ATMEGA                                        STLED316S

                 2k2
MOSI ----------[====]-------*----------------- DIN/DOUT
                            |
                            |
MISO ------------------------


SCLK ----------------------------------------- CLK


PIN1 ----------------------------------------- STB STLED316S (1)


PIN2 ----------------------------------------- STB STLED316S (2)


PIN1 und PIN2 können beliebige Pins des Atmega sein.


Gruß, Stefan

Autor: Stefan K. (stefan64)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CPHA = 1
CPOL = 1
//SS muss als Output geschaltet sein (dieser Pin kann als einer der STB 
Treiber benutzt werden).


Gruß, Stefan

Autor: keine_idee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stefan,

vielen Dank für die schnelle Antwort!

Ich habe da noch eine kleine Verständnisfrage: Wozu dient der 2k2 
Widerstand?

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

interessantes IC. Prinzipiell sollte SPI gehen, wen man nichts vom Chip 
lesen will. MOSI an Din/Dout, SCK an CLK und /CS an STB.
/CS aktiv, 8 Bit rausschieben, /CS sofort wieder inaktiv.
Der Ausgang scheint OpenDrain zu sein, ein 1k Längswiderstand in der 
Din/Dou-Leitung zur Sicherheit.

Die Umschaltung auf Ausgang erfolgt 100ns nach dem 8. Takt, wenn da SRB 
wieder auf H ist, bleibt er inaktiv.

Gruß aus Berlin
Michael

Autor: Stefan K. (stefan64)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
keine_idee schrieb:
> Ich habe da noch eine kleine Verständnisfrage: Wozu dient der 2k2
> Widerstand?

MOSI ist immer ein Ausgang.
DIN/DOUT des STLED316S ist bidirectional.
Mit dem R treibt der MOSI-Pin den DIN/DOUT, solange dieser ein Eingang 
ist, und verursacht keinen Kurzschluss, wenn DIN/DOUT auf Ausgang 
schaltet.

2k2 ist unkritisch, Werte zwischen 1k und 22k sollten möglich sein.

Viele Grüße, Stefan

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
keine_idee schrieb:
> Ich habe da noch eine kleine Verständnisfrage: Wozu dient der 2k2
> Widerstand?

Wenn der Pin DIN/DOUT von STLED316S als OUT fungiert und MOSI per 
Definition ebenfalls ein Ausgang ist, dann treiben zwei Ausgänge 
gegeneinander. Um das zu entkoppeln verwendet man den Widerstand.

Autor: Stefan K. (stefan64)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael U. schrieb:
> Der Ausgang scheint OpenDrain zu sein

Wegen diesem Satz hier?

Manual S. 27:
"Because the DIN/DOUT pin in a bi-directional pin, it is recommended to 
connect an external pull-up resistor to this pin (1 KΩ to 10 KΩ)."

Kann sein. Ein Pullup, wie von ST vorgeschlagen, funktioniert am Atmega 
aber eher nicht. In diesem Fall ist es sinnvoll, zu Bitzeiten, in denen 
der STLED316S sendet, das SPI-Data Register mit Einsen zu beschreiben. 
Dann ist der MOSI-Pin high und dient zusasmmen mit dem Serien-Widerstand 
als Pullup.

Viele Grüße, Stefan

Autor: Noname (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sollte ich nun besser den Pullup am DIN/DOUT weglassen?

Autor: Stefan K. (stefan64)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noname schrieb:
> Sollte ich nun besser den Pullup am DIN/DOUT weglassen?

Ja.
Wenn Du vorsichtig bist, dann siehst Du für die beiden STB Pins externe 
Pullups vor, damit diese während des Reset einen definierten Pegel 
haben. Für alle Pins, bei denen es egal ist, welchen Reset-Pegel sie 
haben, halte ich externe Pullups für unnötig, dafür hat der Atmega ja 
schaltbare Pullups an jedem Pin.

Gruß, Stefan

Autor: Stefan K. (stefan64)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noname schrieb:
> Sollte ich nun besser den Pullup am DIN/DOUT weglassen?

Also mit Pullup ist NICHT der oben eingezeichnete 2k2 gemeint, sondern 
ein zusätzlicher R nach VCC!

Autor: keine_idee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar vielen Dank!

Autor: keine_idee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

eine Frage bleibt bei mir offen. Ich bin momentan den Schaltplan am 
erstellen und  ich wollte nun die Anschlüsse für den ISP anschließen. 
Muss ich diesen für den Mosi vor den 2k2 anschließen oder spielt das 
keine Rolle?

Desweitern sind meine Mosi und Miso Anschlüsse jetzt nicht bei meinem 
Programmer kurzgeschlossen?

Vielen Dank!

Autor: Peter D. (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DOUT wird erst aktiv nach einem Lesekommando.
Solange man keine Tasten anschließt, braucht man das aber nicht.
Man kann also einfach DIN/DOUT direkt mit MOSI verbinden.

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.