Datum:
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
Datum:
Das mit dem TxData ist schon mal Falsch. der Decoder ist ja für uns uninteresant hat jemand eine Idee, wie das ganze funktionieren soll?
Datum:
soll ich meine SPI Schnittstelle in Fixed-Mode oder Variable-Mode einstellen?
Datum:
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