www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI Konfiguration für CD4021 Kommunikation


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich möchte einen CD4021BCM ansteuern. Leider sind die gefunden 
Datenblätter mehr als dürftig. Kann mir jemand verraten, wie ich die SPI 
beim Controller konfigurieren muss (Polartität, welche Flanke stellt die 
Daten bereit und Speed)?

Danke, Alex

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

verstehe ich jetzt nicht: die Wahrheitstabelle im Datenblatt ist doch 
eindeutig, mit der steigenden Flanke wird übernommen.
Maximum Clock steht auch eindeutig drin; mindestens 2,5MHz, typisch 
3,5MHz bei 5V Vdd.

Wo liegt Dein Problem?

Gruß aus Berlin
Michael

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Das wollte ich auch gerade sagen. Allerdings würde mich interessieren, 
was du damit machen willst. Das Teil hat zwar 8 Paralleleingänge ,aber 
nur 3 Ausgänge.

MfG Spess

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Hab jetzt ein gescheites Datenblatt von Fairchild aufgetan, da stand's 
dann drin. Trotzdem lese ich nicht das aus, was am Paralleleingang 
anliegt.
Habe acht Statuseingänge und möchte die auf einen Ritt einlesen.

Quellcode sieht so aus:

PORTB |= (1<<OPT_CE);
wait_10us(1);
PORTB &= ~(1<<OPT_CE);
wait_10us(10);
SPDR = 0x00;
while(!(SPSR & (1<<SPIF)));
i = SPDR;
itoa(i, tmp_str, 10);
lcd_clr();
lcd_puts(tmp_str);

Aber für i beomme ich immer 255.
Bin echt am Grübeln.

Gruß, Alex

Autor: Joan P. (joan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#1.. da weiter oben jemand sagte, dass /SCK_minimal 2,5MHz ist.. läuft 
dein AVR mit 5MHz..7MHz und ist die SPI auf F_sck = F_osc/2 eingestellt?

#2.. Alle Leitungen richtig geschaltet? /MISO (Eingang, PullUP an), 
/MOSI (Ausgang), /SEL (Ausgang), /SCK (Ausgang)

#3.. wie lautet der Auslese-Befehl von dem Chip? '0x00' wird's 100% 
nicht sein ;)

#4.. wozu dient das?
PORTB |= (1<<OPT_CE);
wait_10us(1);

#5.. ist das zweite 'wait 10µs' wegen dem Chip?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Joan

zu #1: fck = f_cpu/8 bei 14,7456 MHz

zu #2: ja alle Leitungen sicher richtig angeschlossen, weil das Gerät 
mit anderer Software lief, nun soll eine andere Anwendung implementiert 
werden (vorher Assembler, habe versucht, die asm - Routine in C 
umzuschreiben, Ergebnis s.o.)

zu #3: wenn ich das Datenblatt richtig verstanden habe, hat der Chip 
keinen seriellen Eingang, sondern nur Seriellen Datenausgang. Bei CS 0 
=> 1 werden die Paralleleingänge gelesen, bei CS = 0 und Clock am 
Clockeingang wird seriell rausgeschoben.

Bitte korrigiere mich, falls ich daneben liege.

zu #5: PORTB |= (1<<OPT_CE); setzt den CS Eingang auf high 
(Datenübernahme)
OPT_CE, weil am Paralleleingang Optokoppler angeschlossen sind. Stimmt, 
hätte ich erwähnen müssen.
10us nur zur Sicherheit, zwischen CS = 0 und dem ersten Clock des SPI


Gruß, Alex

Autor: Joan P. (joan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm..

Wahrscheinlich erzähl ich jetzt Mist, aber ich interpretier die Tabelle 
auf Seite 1 
(http://pdf1.alldatasheet.com/datasheet-pdf/view/17...)
so:

Parallel/Serial Control HIGH (Zeile 1 bis 4).. alles beweglich, die 
Zustände im Inneren des Chips (Qn) entsprechen den Eingängen.. was 
Serial Input oder CLK erzählt interessiert keinen.

Wenn man nun Parallel/Serial Control auf LOW legt und nen CLK dazugibt 
(unterste Zeile), kommt am Q8 Ausgang bei jeder fallenden Flanke eins 
von den im inneren gespeicherten Zuständen Qn (8 Bits) rausgepurzelt.. 
an Q7 oder Q6 halt nur 7 oder 6 'Bits'.

Desweiteren sieht es für mich so aus, als ob das Teil bei steigender 
Flanke von CLK in dem 'Parallel/Serial Control auf LOW'-Modus zusätzlich 
noch die Bits reinnimmt, die auf Serial-Input liegen..

Dh. P/SC auf LOW und dann mit SPI-Mode 3 und LSB first einlesen, oder?

Grüsse
Joan

Autor: Alexander H. (ill_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Morgen,

ich hab mir das Datenblatt von Fairchild besorgt. Die Tabelle hab ich 
nur kurz überflogen (Asche auf mein Haupt), aber auf Seite 1 steht das 
von mir oben zitierte. Gruß, Alex

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.