ADC über SPI auslesen

OP #4657289
Lesenswert?
• ▲
▼
Hallo Leute,
ich habe vor kurzem angefangen, Mikrocontroller zu programmieren und 
benötige eure Hilfe. Mit Hilfe von AtmelStudio möchte ich eine Code 
schreiben, womit ich Werten aus dem ADC (ADS1118) mit Hilfe der SPI 
auslesen kann. Als Mikrocontroller habe ich ein ATMega168A. Ich würde 
mich richtig freuen, wenn sie mir paar Typen geben können und bedanke 
mich im Voraus.

LG
Grosso
#4657468
Lesenswert?
• ▲
▼
@  Innis Betnga (elgrosso)

>mich richtig freuen, wenn sie mir paar Typen geben können und bedanke
>mich im Voraus.

Typen? Du meints Tips, Hinweise?

SPI ist relativ einfach zu nutzen, man braucht eine grundlegende 
Funktion, nennen wir sie spi_io(). Mit dieser wird gleichzeitig gesendet 
und auch empfangen. Der Rest ist nur minimale Logik. Im Allgemeinen geht 
ein SPI-Zugriff so.

Chip Select des ICs aktivieren (meistens auf 0 setzen)
Eine bestimmte Anzahl Bytes senden bzw. empfangen
Chip Select des ICs deaktivieren (meistens auf 1 setzen)

1
uint8_t spi_io(uint8_t write_data) {
2
  SPDR = write_data;            // Daten senden
3
  while(!(SPSR & (1<<SPIF)));   // auf das Ende der Übertragung warten
4
  return SPDR;                  // empfangene Daten zurück geben
5
}

Wichtig ist, daß das Pin SS an deinem AVR als Ausgang konfiguriert wird, 
bevor dein SPI initialisiert wird. Siehe Datenblatt im Abschnitt "SS pin 
functionality"
#4657481
Lesenswert?
• ▲
▼
Es gibt eine gewisse Wahrscheinlichkeit, dass keine der vom SPI Port zur 
Verfuegung gestellten Funktionalitaeten die Funktion erfuellen kann. In 
diesem Fall muss man die funktionalitaet und das Timing per Bitbefehle 
nachbilden. Auch in diesem Falle ist das benoetigte Timing im Datenblatt 
des ADC nachzulesen.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.