PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADC Chip Sample Geschwindigkeit bestimmen



sirgrej
29.04.2014, 18:35
Da das Mikrocontroller.net forum nicht mehr so aktiv ist wie ich in Erinnerung habe und meine Frage dort nicht beantwortet wurde, stelle ich sie hier.

also ich habe den MCP3008 ADC Wandler von microchip in betrieb und soweit funktioniert es auch, jedoch habe ich noch einige Fragen bei denen ich hoffe, dass sie hier beantwortet werden können.

Der MCP3008 ist an einen Atmega8 angeschlossen der mit einem 1Mhz betrieben wird. ausgelesen wir der ADc über die SPi Schnittstelle die mit einem Takt von 1Mhz/16=62,5kHz arbeitet.

Im Datenblatt des MCP3008 steht dass ich bei VRef=2,7V max 75ksps und bei 5V 200ksps
habe aber woher weiss ich die sample Frequenz bei meinem Aufbau?

unter "Electrical Specification" steht fCLK=18*fSAMPLE aber kann ich
diese formel benutzen um meine Sample Frequenz zubestimmen?

Das würde in meinem Fall nämlich dann fSAMPLE=fCLK/(18*16)= 3420Hz
ergeben, ist das richtig?

dann hab ich noch eine Frage zu einem der digramme in dem Datenblatt

zum Beispiel bei figure 2-28 wird ENOB in Abhängigkeit der input
frequency dargestellt. Ist mit der Input Frequency die Frequenz des zu
messenden signals gemeint?


hoffe meine Fragen sind verstänlich und können hier geklärt werden

Searcher
29.04.2014, 21:31
Hallo,
ich kenne den ADC nicht, versuche aber auch mal das Datenblatt zu verstehen:


Der MCP3008 ist an einen Atmega8 angeschlossen der mit einem 1Mhz betrieben wird. ausgelesen wir der ADc über die SPi Schnittstelle die mit einem Takt von 1Mhz/16=62,5kHz arbeitet.

Im Datenblatt des MCP3008 steht dass ich bei VRef=2,7V max 75ksps und bei 5V 200ksps
habe aber woher weiss ich die sample Frequenz bei meinem Aufbau?

In der "Description" werden die 200ksps(/75ksps) als conversion rate oder in den "Electrical Specifications" als Throughput Rate bezeichnet. Das sind die maximal erreichbaren Raten und werden bestimmt durch den SPI Takt. Um 200ksps zu erreichen, müßte SPI mit 3,6 MHz Takt laufen (200kHz*18 ) um die 200000 Samples/s im µC erhalten zu können.
Das entnehme ich aus "FIGURE 5-1: Communication with the MCP3004 or MCP3008". Da kann man sehen, daß es 18 SPI-Takte braucht um Startbit, Adresse und Ergebnis zu übertragen. Innerhalb der 18 Takte sind auch 1,5 Takte sample time enthalten. Die 200ksps scheint mir doch ein sehr SEHR theoretischer Wert zu sein.


unter "Electrical Specification" steht fCLK=18*fSAMPLE aber kann ich
diese formel benutzen um meine Sample Frequenz zubestimmen?

Das würde in meinem Fall nämlich dann fSAMPLE=fCLK/(18*16)= 3420Hz
ergeben, ist das richtig?
Ja, aber wo kommen die 16 her? Bei Deinem SPI Takt von 62500Hz geteilt durch 18 komme ich etwa auf 3472Hz. Das ist dann die maximale Anzahl der Messungen pro Sekunde, die Du am µC erhalten kannst wenn wirklich jeder einzelne SPI-Takt zur reinen Nutzdatenübertragung genutzt wird und der Datenstrom auch ununterbrochen läuft, also keine SPI-Pause zwischen den Samples gemacht wird.


dann hab ich noch eine Frage zu einem der digramme in dem Datenblatt
zum Beispiel bei figure 2-28 wird ENOB in Abhängigkeit der input
frequency dargestellt. Ist mit der Input Frequency die Frequenz des zu
messenden signals gemeint?

Ja, würd ich auch so sehen.
http://de.wikipedia.org/wiki/Effektive_Anzahl_von_Bits

Gruß
Searcher

Klebwax
30.04.2014, 08:00
In der "Description" werden die 200ksps(/75ksps) als conversion rate oder in den "Electrical Specifications" als Throughput Rate bezeichnet. Das sind die maximal erreichbaren Raten und werden bestimmt durch den SPI Takt. Um 200ksps zu erreichen, müßte SPI mit 3,6 MHz Takt laufen (200kHz*18 ) um die 200000 Samples/s im µC erhalten zu können.
Das entnehme ich aus "FIGURE 5-1: Communication with the MCP3004 or MCP3008". Da kann man sehen, daß es 18 SPI-Takte braucht um Startbit, Adresse und Ergebnis zu übertragen. Innerhalb der 18 Takte sind auch 1,5 Takte sample time enthalten. Die 200ksps scheint mir doch ein sehr SEHR theoretischer Wert zu sein.

Die Samplerate wird durch die SPI-Clock bestimmt. Wobei die bei einem Prozessor, der mit 1MHz betrieben wird, eigentlich egal ist. Der kann die 200ksps sowieso nicht verarbeiten. Wie man mit den 18Bit und Hardware-SPI klarkommt, zeigt Bild 6-1 im Datenblatt.

Die 200ksps sind schon real, ich trommle gerade auf einer SPI Schnittstelle mit 10MHz, 16MHz könnte der µC (in HW). Data-Flash können bix zu 80MHz, das schaffen aber nur wenige µC.

MfG Klebwax

sirgrej
30.04.2014, 09:37
Hallo,

Ja, aber wo kommen die 16 her? Bei Deinem SPI Takt von 62500Hz geteilt durch 18 komme ich etwa auf 3472Hz.
Gruß
Searcher

die 16 ist mein preload des µcontrollers^^


fCLK ist in meinem fall der Atmega Takt von 1Mhz. ander ausgedrückt fSPI=fCLK/16
Im Datenblatt ist fCLK der SPI Takt, das war wohl nicht ganz klug von mir fCLK für den Atmega Takt zu verwenden.


Ich Danke euch beiden für diese ausführliche Antwort, sowas bin ich aus dem µcontroller forum gar nicht gewohnt xD

Ich glaube ich werde hier ein wenig aktiver ;-)


vielen Dank