www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI und at91sam7x256


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: miko (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

Autor: miko (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
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?

Autor: miko (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
soll ich meine SPI Schnittstelle in Fixed-Mode oder Variable-Mode 
einstellen?

Autor: miko (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
????

Autor: Miko (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net