SPI und at91sam7x256

Gast #2648868
Lesenswert?

Hallo zusammen,


Im Rahmen eines Projekts habe ich den AT91SAM7X256 bereits mit zwei ADCs
verbunden. Die SPI_Schnittstelle macht mir richtig sorgen, die macht 
nämlich
nicht was ich will!

Die Initiallisierung habe ich teilweise hingekriegt!!

ich habe zwei SCs deklariert: PA21 und PA25

beim senden wird aber immer nur PA21 Aktiv und bei PA25 ist nichts zu 
sehen.

das ist meine Initialisierung:

s_pPioA->PIO_PDR = BIT21 | BIT24 | BIT23 | BIT22 | BIT25 ;
  s_pPioA->PIO_BSR = BIT21 | BIT24 | BIT23 | BIT22 | BIT25;
  s_pPioA->PIO_ASR = 0;
  s_pPioA->PIO_OER = BIT21 | BIT23 | BIT22 | BIT25 ;
  s_pPioA->PIO_ODR  = BIT24;

        s_pPMC->PMC_PCER = 1 << AT91C_ID_SPI1;

        s_pSpi->SPI_CR      = 0x81;       //SPI Enable, Software reset
  s_pSpi->SPI_CR      = 0x01;

    //Master mode, volatile select, disable decoder, FDIV=1, PCS=1101

        s_pSpi->SPI_MR      = 0x0013;


       s_pSpi->SPI_CSR[0]  = 0x00001F02;

       s_pPDC->PDC_PTCR = AT91C_PDC_TXTEN | AT91C_PDC_RXTEN;
       s_pSpi->SPI_PTCR = AT91C_PDC_TXTEN | AT91C_PDC_RXTEN;


und beim Senden setze ich TxData |= 0x0F; einmal und TxData |= 0x1000F; 
beim nächten Mal.

denke ich überhaupt Richtig????

Danke im Voeraus.

Miko
Gast #2651301
Lesenswert?

ich habe mich entschieden momentan nur mit einem ADC zu komunizieren.
Ich kann etwas mit dem Ozi. messen. Wenn ich aber versuche zu debbugen. 
Habe ich zwei Probleme:
1. ich bekomme die falschen Werte

Init.:
unsigned char RxData = 0;

Lesen:
RxData = ((s_pSpi -> SPI_RDR) & 0x00000FFF);

ich bekomme immer nur RxData=F

2. Wenn ich beim Debbugen RxData durch 2 teile stürzt das Programm.

ich hoffe das jemand einbißchen Zeit für mich hat????

Danke

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