Forum: Mikrocontroller und Digitale Elektronik ADC über SPI auslesen


von El G. (elgrosso)


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

von Oliver S. (oliverso)


Lesenswert?

Deine Typen stehen doch schon da:
ATMega168A
ADS1118

Oliver

von Friedhelm (Gast)


Lesenswert?

Oliver S. schrieb:
> Deine Typen stehen doch schon da:
> ATMega168A
> ADS1118
>
> Oliver

Ein bisschen mehr Respekt, Oliver. Du weißt ganz genau was die Lady zum 
Ausdruck bringen wollte.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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

 Es würde mich richtig freuen wenn ich dir meinen Nachbar geben könnte.

von Pandur S. (jetztnicht)


Lesenswert?

Wie man mit einem ATMega168A einen ADS1118 ausliest, resp mit ihn 
kommuniziert steht in den zugehoerigen Datenblaettern.

Die Datenblaetter bitte bei den Herstellern herunterladen, nicht bei 
Trittbrettfahrern.

von Falk B. (falk)


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"

von Pandur S. (jetztnicht)


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.

von El G. (elgrosso)


Lesenswert?

Danke für die Hinweise

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
Noch kein Account? Hier anmelden.