SPI Initialisierung

Gast #662763
Lesenswert?

Hey
hab mal ne Frage zur Initialisierung des SPI. Verwende einen LPC2148 und 
programmiere in C. Ich habe nun auf meinem Evaluationboard MCB2140 ein 
digitales Poti(AD8400) angebracht, welches über SPI mit dem Controller 
verbunden ist.Controller soll als Master Poti als Slave arbeiten.Kann 
ich nun, wenn ich an das Poti ein Messgerät anschließe Werte des 
Controllers über SPI auslesen?Hat jemand eine "Beispielinitialisierung 
des SPI" für einen ähnlichen Fall?oder zufällig den gleichen...;)
Es geht mir um das Prinzip der Initialisierung des SPI und wie ich über 
diesen Daten von einem Master zu einem Slave und anderum sende.Vielen 
Dank
Gast #662933
Lesenswert?

ja okey das ist klar, aber zu der Vorgehensweise mit dem Poti....versteh 
ich das richtig, dass ich am Poti den Messwert abgreifen kann den ich 
über SPI schicke?weil das poti als ausgabe dient?
Gast #663004
Lesenswert?

okey ich stell mal mein code hierrein...vll sieht ja jemand einen 
Fehler.



void SPI_Init(void)
{
  // Setup SPI Clock Counter Register
  //
  // one SPI clock will be 8 PCLK (where PCLK = CCLK)
  SPI0_PCCR = 8; // 128

  // Setup SPI Control Register
  //
  // BitEnable  = 0    => 8 Bits per transfer
  // CPHA      = 1
  // CPOL      = 1
  // MSTR      = 1    => select master mode
  // LSBF      = 0    => transfered MSB first
  // SPIE      = 0    => interrupt disable
  // BITS      = 1000  => 8 bits (but not used)
  SPI0_SPCR = 0x838;
  // after here: a write to SPI0_SPDR will start transfer
}

/****************************************************
**  Writes the specified byte on the SPI interface.
*******************************************************/

void SPI_Write(unsigned char my_value)
{
  // put given value into the output buffer register
  SPI0_SPDR = my_value;
  // wait for SPIF bit to be set to 1
  while (0 == (SPI0_SPSR & SPSR_SPIF))
  {}
  // causes the SPIF flag to get cleared again
  my_value = SPI0_SPDR;
}


egal was ich dem SPI_write für einen Wert gebe, ich bekomme immer 
Vollausschlag (3.3V ) am Mittelabgriff des Potis als Ausgabewert
kann jemand einen Fehler entdecken? wenn nicht auch gut möglich dass es 
sich um ein Hardwareproblem handelt.

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