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
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?
soll ich meine SPI Schnittstelle in Fixed-Mode oder Variable-Mode einstellen?
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.