SPI von Arduino Nano für AD7176-2 schnell genug?

OP #3588099
Lesenswert?

Hallo,

ich möchte den AD-Umsetzer AD7176-2 von Analog Devices mit dem Arduino 
Nano mittels SPI auslesen. Bevor ich jetzt allerdings einen Fehler 
mache, wollte ich fragen ob das überhaupt möglich ist. Ich habe nicht 
wirklich Daten über die Geschwindigkeit des SPI des Arduino gefunden. 
Normalerweise sollte es gehen, oder?

AD7176-2: 
http://www.analog.com/en/analog-to-digital-converters/ad-converters/ad7176-2/products/product.html

Arduino Nano: http://arduino.cc/de/Main/ArduinoBoardNano#.UzAx5YXLJko

Gruß

Stefan
Moderator (Firma: Titel) Persönliche Seite #3588277
Lesenswert?

Stefan S. schrieb:
> Bzw wo kann ich herausfinden wie schnell das SPI des Arduino ist?
Du kannst mal im Datenblatt deines Controllers nachschauen. Und dann 
im Schaltplan deines Arduino, welche Pins da am SPI angeschlossen 
sind. So ein "Arduino" ist nämlich nur ein uC, der auf eine Platine 
gelötet wurde, und dazu passende Bibliotheken geliefert bekommt.

Die beiden kursiv geschriebenen Informationsträger brauchst du 
zwingend für eine halbwegs sinnvolle Programmierung. Und dann noch das 
Handbuch für die verwendeten Bibliotheken (in deinem Fall sind das die 
Arduino-Bibliotheken). Und dann findest du blitzschnell das hier:
http://arduino.cc/de/Reference/SPI#.UzBGnoVCJ8E
Und da steht dann evtl. sowas drin:
1
SPI.setClockDivider() allows you to change the clock speed to make 
2
your device working properly (default is 4MHz).

> Ich würde ihn schon gerne schnellstmöglich auslesen.
Warum? Ist das unbedingt nötig?
Auch wenn mein Auto locker 180 läuft, fahre ich trotzdem nur mit 80 ins 
Geschäft...
Gast #3588278
Lesenswert?

Die SPI-Hardware ist da nicht das Problem. Du hast aber nur 30 
Machinenbefehle um einen Messwert zu verarbeiten. ATmega328 in Assembler 
wahre da möglich. Mit der bequemen Arduino Library eher nicht.
Gast #3588329
Lesenswert?

@Kein Name:
Theoretisch sollte man auch mit Arduino die Library weglassen, im 
Assembler den SPI-Takt auf fosc/2 (also 8 MHz) bringen und mit 
Inline-Assembler die Daten verarbeiten können.
Da das wohl eher etwas mehr Programmierkentnisse braucht: Nimm nen 
dickeren uC - gibt doch sicher was von STM32/ARM :-)

Thomas
Persönliche Seite #3588959
Lesenswert?

Stefan S. schrieb:
> er ADC hat eine Output Rate von 5 SPS bis zu
> 250 kSPS. Ich würde ihn schon gerne schnellstmöglich auslesen. Was wäre
> denn die maximale Geschwindigkeit was der Arduino noch schaffen würde?

Mit

SPI.setClockDivider(SPI_CLOCK_DIV2);

läuft der SPI des Arduino mit 8 MHz clock rate.

Ich habe mir deinen ADC nicht angeschaut, aber wenn die Wortlänge zum 
Übertragen eines Samples nicht > 32 bit ist, sollte das mit den 250 kSPS 
funktionieren.

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