www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI für Einsteiger


Autor: Brillitsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich möchte einen AD-Wandler(24bit-LTC2410) über die SPI-Schnittstelle
vom mega128 auslesen.
Programmieren möchte ich mit Codevision.

Kann mir einer bitte grob erklären, wie der Startvorgang in C aussieht,
um den ADC zum Senden zu bewegen?

Vielen Dank

Brillitsch

Autor: Neutron (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
s. Datenblatt.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
siehe wiki gcc tutorial

Autor: ¹²³ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
void SPI_MasterInit(void)
{
/* Set MOSI and SCK output, all others input */
DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK);
/* Enable SPI, Master, set clock rate fck/16 */
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
}
void SPI_MasterTransmit(char cData)
{
/* Start transmission */
SPDR = cData;
/* Wait for transmission complete */
while(!(SPSR & (1<<SPIF)))
;
}

Autor: Brillitsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnellen Antworten.

Das Datenblatt und div. App.Note hab' ich ja gelesen, aber ich hab'
da wohl eine Blockade.

Konkret: Der mega128 liefert den Clock, steuert SS\(ist CE\ beim ADC)
und soll 24bit vom ADC empfangen.

Versteh ich das Codebeispiel vom Datenblatt richtig, das ich laut
Befehl: SPDR = cData; dem ADC erst ein Byte senden muss, um von ihm ein
Byte zuerhalten?

Wenn ja, ich möchte aber 24bit erhalten, muss ich dann 3x8 Einzelbit
senden?

Brillitsch

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, da liegst du richtig.
Der Datenaustausch passiert gleichzeitig.

Autor: Brillitsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah so, was macht den der ADC mit den drei Byts die ich ihm gesendet
habe? Könne meine gesendeten Bytes beliebige Werte haben?

Brillitsch

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz einfach: gar nichts, weil er sie nie erhält.
Der LTC2410 hat nur ein 3-Wire-Interface: /CE,SCK und SDO. Es fehlt ein
SDI (serial data in)
Somit wird MOSI nicht an den ADC angeschlossen.
Man muß nur 3 Byte senden, weil sonst die SPI-Schnittstelle keinen Takt
liefert. Der ADC ist sendebereit, sobald /CE auf low gezogen wurde.

Autor: Brillitsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rahul,

erst steh ich aufm Schlauch, und dann übersehe das korrekte
SPI-Interface aufm LTC.

Danke das Du mich drauf hingewiesen hast.


So, Feierabend is. Schönen Jahreswechsel.

Brillitsch

Autor: ¹²³ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Schönen Jahreswechsel.

Wie?

Autor: Brillitsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Schönen Jahreswechsel

Ist meine persöhnliche Ausdrucksweise für: Bin Urlaubsreif

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schönes Restleben...

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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.