ADC Suche um Sensor auszuwerten.

Hi,
ich versuche im Moment einen ADC (MCP3901) zum laufen zu bekommen, die Konfiguration ist aber nicht die leichteste.
Aus diesem Grund wollte ich euch um Hilfe bittet. Vielleicht kennt einer einen passenden ADC der leichter zu konfigurieren ist.

Daten die relevant sind:
Analoger Kanal: +5V bis -5V
Digitale Spannung: 3,3V

Der Takteingang sollte mit ein Rechtecksignal auskommen.

Ausgabe der Daten wenn möglich Seriell als Stream
Auflösung 16 oder 24 Bit.

Kennt jemand so einen Chip (DIP oder SMD) ?

Fangen wir mal am Anfang an: Welchen Sensor hast Du?
Grüße Uwe

Das Thema kann geschlossen werden. Der MCP3901 ist vermutlich defekt. (Spannungen passen, SPI Konfiguration kommt an (überprüft mit einem LogicAnalyser), kein Ausgangssignal auf irgendeinem Ausgang)

Dann meld Dich wieder, wenn Du einen anderen MCP3901 besorgt hast. Wir sind neugierig.
Grüße Uwe

Hi,

ich habe den ADC nun am laufen. Da ich keine genaueren Angaben zum Projekt machen will stell ich hier nur den ADC (MCP3901) kurz vor.

Kenndaten vom MCP3901:

  • 2 Kanal, 16 - 24bit Auflösung, einstellbar
  • Auflösungsbereich: -1V - +1V (wird zerstört wenn -6V oder +6V am Eingang überschritten werden)
  • kann die Phasenverschiebung zwischen Kanal 1 und Kanal 2 messen
  • Betriebsspannung digital: 2,7V - 5V (läuft auch mit 3,3V Technik)
  • Betriebsspannung analog: 5V
  • Datenausgabe sowie Konfiguration laufen über eine SPI Schnittstelle (SPI Takt bei digi 5V => 16Mhz, SPI Takt bei digi 3,3V => 10MHz)
  • Die Daten könne von jedem Kanal als Stream ausgegeben werden, wobei hier die Auswertung schwer ist, da kein Trennzeichen existiert.

Mehr Details gibt es im Datenblatt.

Die Lib existiert im Moment nur für die 32bit Kontroller von Atmel. Ich könnte sie bei bedarf auf den Arduino portieren.

Hier nochmal die Lib für den 32 Bit Kontroller.
Umschreiben und anpassen ist ausdrücklich erlaubt.

mcp3901.rar (5.76 KB)

Hallo,

Mein Deutsch ist nicht so gut, also ich muss ins Englisch shreiben.

I have been looking for an Arduino library to use with MCP3901 and I only found this forum.

I don't know how to port the library for a 32bit MCU for Arduino. Please, could anyone help me with this?

Fielen dank

Bitte bitte für den Arduino umschreiben.

Und wenn es geht für den MCP3903. Sollte ja sehr ähnlich sein.
Ich hab bereits versucht den Beispielcode von dem Microchip-Eval-Board zu portieren. Scheitere aber meiner Ansicht nach beim Initialisieren des Chips.
Die Verdrahtung paßt, da ein MCP3304 noch am Bus hängt und sinvolle Daten zurücksendet.

Ein Beispiel für das Abtasten in je 16- / 24-Bit und ein automatisches Abrufen sämtlicher 7 Kanäle mit den Config-Bits wäre absolute spitze.
Allgemein fand ich die Beschreibung des Konfigurierens des ADCs über die Config-Bits im Datenblatt sehr unverständlich.
Deswegen ware ich sehr sehr dankbar über einen funktionierenden Beispielcode.

Als bitte bitte bitte...

WriteView:
Bitte bitte für den Arduino umschreiben.

Und wenn es geht für den MCP3903. Sollte ja sehr ähnlich sein.
Ich hab bereits versucht den Beispielcode von dem Microchip-Eval-Board zu portieren. Scheitere aber meiner Ansicht nach beim Initialisieren des Chips.
Die Verdrahtung paßt, da ein MCP3304 noch am Bus hängt und sinvolle Daten zurücksendet.

Ein Beispiel für das Abtasten in je 16- / 24-Bit und ein automatisches Abrufen sämtlicher 7 Kanäle mit den Config-Bits wäre absolute spitze.
Allgemein fand ich die Beschreibung des Konfigurierens des ADCs über die Config-Bits im Datenblatt sehr unverständlich.
Deswegen ware ich sehr sehr dankbar über einen funktionierenden Beispielcode.

Als bitte bitte bitte...

Und a goldene Uhr und a Steig Epfl an nou? (Und willst Du auch noch einen goldene Uhr und eine Kiste Äpfel haben?)

Ich finde Deine Forderung schamlos. Wir helfen Dir wenn Du Probleme hast aber wir machen Dir nicht die Arbeit.

Grüße Uwe

Und a goldene Uhr und a Steig Epfl an nou? (Und willst Du auch noch einen goldene Uhr und eine Kiste Äpfel haben?)

Sollte nicht so rüberkommen. Und die Kiste Äpfel will ich nicht sondern spendier ich gerne...

Ich kann ja gerne den Code den ich erarbeitet habe posten. Aber das Ding hat mich ohne Ende nerven gekostet. Am Ende hat der Chip bei jedem Neustart (Frisch Spannung drauf) komplett andere Sachen gemacht.

Ich könnte es auch anders formulieren: Wäre schön, wenn mir jemand erklärt, wie man die Init-Routine für den Chip schreibt um zwischen den 16- /24Bit-Modus zu wechseln und die Automatikroutine um alle 7 Kanäle hinterneinander abzurufen.

Sorry wenn es "schamlos" rüberkam.

Ok angnommen. Auf dieser Basis kann man arbeiten.

Was hast Du bisher für einen Sketch verwendet; wie hast Du den MCP3903 am Arduino angeschlossen?

Grüße Uwe