www.mikrocontroller.net

Forum: Compiler & IDEs AP7000 und SPI: CS-Probleme


Autor: André Schimschar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!
Ich habe ein kleines Problem. Und zwar habe ich an mein NGW100 ein 
CC2420EM drangebastelt und möchte es nun über SPI konfigurieren. Hier 
meine SPI-Initialisierung:
//SPI-Register konfigurieren           
             AVR32_SPI0.cr=AVR32_SPI_CR_SWRST_MASK; //Reset
             AVR32_SPI0.mr=AVR32_SPI_MR_MSTR_MASK|AVR32_SPI_MR_PCS_MASK|(0<<AVR32_SPI_MR_FDIV_OFFSET)|(0<<AVR32_SPI_MR_MODFDIS_OFFSET);
             AVR32_SPI0.mr&=~(AVR32_SPI_MR_PS_MASK|AVR32_SPI_MR_PCSDEC_MASK|AVR32_SPI_MR_DLYBCS_MASK);
             AVR32_SPI0.mr|=(0<<AVR32_SPI_MR_PS_OFFSET)|(0<<AVR32_SPI_MR_PCSDEC_OFFSET)|(0<<AVR32_SPI_MR_DLYBCS_OFFSET);
             AVR32_SPI0.mr|=AVR32_SPI_MR_PCS_MASK;
             AVR32_SPI0.mr&=~(1<<AVR32_SPI_MR_PCS_OFFSET);
             AVR32_SPI0.csr0=(0<<AVR32_SPI_CSR0_BITS_OFFSET)|
                      (250<<AVR32_SPI_CSR0_SCBR_OFFSET)|
                      (0<<AVR32_SPI_CSR0_DLYBS_OFFSET)|
                      (0<<AVR32_SPI_CSR0_DLYBCT_OFFSET)|
                      (0<<AVR32_SPI_CSR0_CSAAT_OFFSET)|
                      (1<<AVR32_SPI_CSR0_NCPHA_OFFSET);
             AVR32_SPI0.idr=0xffffffff;
             AVR32_SPI0.cr=AVR32_SPI_CR_SPIEN_MASK;
             //SPI-PIO disablen
             AVR32_PIOA.pdr |= ( 1<<AVR32_PIO_PDR_P0_OFFSET  )|( 1<<AVR32_PIO_PDR_P1_OFFSET  )|( 1<<AVR32_PIO_PDR_P2_OFFSET  )|( 1<<AVR32_PIO_PDR_P3_OFFSET  );
             AVR32_PIOA.pudr|= ( 1<<AVR32_PIO_PUDR_P0_OFFSET  )|( 1<<AVR32_PIO_PUDR_P1_OFFSET  )|( 1<<AVR32_PIO_PUDR_P2_OFFSET  )|( 1<<AVR32_PIO_PUDR_P3_OFFSET  );
             AVR32_PIOA.asr |= ( 1<<AVR32_PIO_ASR_P0_OFFSET  )|( 1<<AVR32_PIO_ASR_P1_OFFSET  )|( 1<<AVR32_PIO_ASR_P2_OFFSET  )|( 1<<AVR32_PIO_ASR_P3_OFFSET  );
Der SPI-Bus haut soweit auch hin. Strobebefehle und das Auslesen des 
Statusbytes funktionieren. Das Problem ist jetzt nur das der CS für die 
8Bit  auf Low ist und dann automatisch wieder auf high geht. Wenn ich 
jetzt aber Register Beschreiben und Lesen möchte, funktioniert das 
nicht, weil das CS-Signal für 1 Adressbyte und 2 Datenbyte auf Low sein 
muss.Ohne, dass zwischendurch das CS-Signal wieder auf High geht. Was 
muss ich tun?
Danke im voraus...
André

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.