AP7000 und SPI: CS-Probleme

Gast #884678
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:
1
//SPI-Register konfigurieren           
2
             AVR32_SPI0.cr=AVR32_SPI_CR_SWRST_MASK; //Reset
3
             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);
4
             AVR32_SPI0.mr&=~(AVR32_SPI_MR_PS_MASK|AVR32_SPI_MR_PCSDEC_MASK|AVR32_SPI_MR_DLYBCS_MASK);
5
             AVR32_SPI0.mr|=(0<<AVR32_SPI_MR_PS_OFFSET)|(0<<AVR32_SPI_MR_PCSDEC_OFFSET)|(0<<AVR32_SPI_MR_DLYBCS_OFFSET);
6
             AVR32_SPI0.mr|=AVR32_SPI_MR_PCS_MASK;
7
             AVR32_SPI0.mr&=~(1<<AVR32_SPI_MR_PCS_OFFSET);
8
             AVR32_SPI0.csr0=(0<<AVR32_SPI_CSR0_BITS_OFFSET)|
9
                      (250<<AVR32_SPI_CSR0_SCBR_OFFSET)|
10
                      (0<<AVR32_SPI_CSR0_DLYBS_OFFSET)|
11
                      (0<<AVR32_SPI_CSR0_DLYBCT_OFFSET)|
12
                      (0<<AVR32_SPI_CSR0_CSAAT_OFFSET)|
13
                      (1<<AVR32_SPI_CSR0_NCPHA_OFFSET);
14
             AVR32_SPI0.idr=0xffffffff;
15
             AVR32_SPI0.cr=AVR32_SPI_CR_SPIEN_MASK;
16
             //SPI-PIO disablen
17
             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  );
18
             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  );
19
             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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren