www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik F2812 ADC...


Autor: Phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe schon nach dem Thema mittels der Suchfunktion gesucht, aber 
habe leider noch keine Lösung gefunden.

Ich möchte die internen 12-bit A/D Wandler (0..3V) des F2812 in Betrieb 
nehmen.

Ich habe dazu die nichtbenutzen Eingänge mit GND verbunden
ADCINB1 mit GND verbunden
ADCINB2-mit GND verbunden
ADCINB3-mit GND verbunden
ADCINB4-mit GND verbunden
ADCINB5-mit GND verbunden
ADCINB6-mit GND verbunden
ADCINB7-mit GND verbunden

desweiteren
VREFLO-mit GND verbunden

An ADCINB0 möchte ich nun ein Signal 0..3V legen. Bei Anschluss eines 
Netzteiles an ADCINB0 gegen GND fließt sofort ein hoher Strom 
(Strombegrenzung). Desweiteren habe ich probiert die Spannung (5V) des 
Boards mit einem Spannungsteiler herunter zu teilen und dann auf den 
ADC-Eingang zu legen-auch hier fällt die eingestellte Spannung deutlich 
ab.

Anschließend habe ich noch versucht nach der Schaltung im Anhang, den in 
den ADC hineinfließenden Strom zu begrenzen. Die angelegte Spannung 
blieb stabil. Jedoch war bei einer eingestellten Maximalspannung von 3V 
der Wert über 4095..
Wer kann mir helfen?

Autor: Phil (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Anhang vergessen

Autor: Thomas S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Phil,

meinst du den ADCLO oder das Signal ADCREFM ?
die Referenz wird aus der Differenz von ADCREGP und ADCREFM gebildet, 
darf also NICHT auf GND liegen. Welches Board benutzt du dafür ?


Gruß Thomas

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,
ich arbeite mit Phil zusammen an dem Problem:

Phil meint mit VREFLO den ADCLO. Die ADCREFM und ADCREFP haben wir nicht 
weiter beschaltet. Ist das ein Problem?

Das Grundproblem ist, das bei Beschaltung der analogen Eingänge ein sehr 
großer Strom fließt. Die angelegte Spannung bricht z.B. von 2,5 V auf 
0,8 V ein.
Mit der Schaltung die Phil erwähnt hat, haben wir es geschafft den Strom 
zu minimieren. Die in den Registern (ADCINA0..7) abgelesenen Werte (für 
0,5; 1,0; 1,5; ...V) sind zwar linear aber nicht wirklich brauchbar, da 
es nur 3 mögliche Hex-Werte gibt.

Generell:
Es ist unklar, ob bereits ein Defekt am Board vorliegt. Aber: Legen wir 
die Board-eigene Masse oder die Boardspannung von 3 V auf den Eingang, 
können wir plausible Werte in den Registern ablesen (1365 hex / 4095 
hex).

Die Bezeichnung vom Board hab ich nicht zur Hand...... muss ich 
nachsehen.

Gruß,
Jens

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... hab es gefunden:
Das Board heißt eZdspF2812.

Informationen hierzu findet man unter:
http://www.spectrumdigital.com/product_info.php?&p...
http://c2000.spectrumdigital.com/ezf2812/

Gruß,
Jens

Autor: Bastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also im Datenblatt (zumindest vom 2808er) steht, ADCREFM und ADCREFP 
sollten mit einer Kapazität 2,2uF und low ESR gegen Masse beschaltet 
werden.

Ansonsten kann natürlich auch noch ein Fehler in der Initialisierung des 
ADCs sein. Das Ergbnis von 1365hex für die Board-eigene Masse erscheint 
mir auch nicht ganz korrekt (wenn ich den Wert richtig zugeordnet habe). 
Es hilft auch, wenn ihr einfach mal den Mittelabgriff eines Potis (am 
besten linear) an einen AD-Eingang legt, und die anderen beiden 
Anschlüsse logischer Weise an die Board-eigene Masse und 
Betriebsspannung.

Ich nutze das eZdspF2808 und dort klappt es ohne Probleme...

Gruß Bastian

Autor: Phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bastian,

danke für deine Antworten.
Die Idee mit dem Spannungsteiler hatten wir auch schon:
Potianschluss Links: AGND Testpunkt
Potianschluss Rechts: +5V (von JTAG-Schnittstellen-Pin).
Schleifer auf Messgerät. Dann Spannung (0..3V) einstellen. Dannach 
zusätzlich den Schleifer des Potis an ADCINB1. Dabei bricht die vorher 
eingestellte Spannung ein. Ist dieses normal?
Ist es bei deinem AD-Wandler so, dass bei 0V im entsprechenden 
Adc-Register 0000 steht und bei 3V 4095?
Hast du noch eine Idee/nähere Informationen zu "Fehler in der 
Initialisierung des ADC"?

Danke dir und Gruß

Phil

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... bei 0 V war der Wert bei uns bei 1240 hex - habe ich vorher falsch 
geschrieben.

... warum fließt ein so großer Strom in den ADC-Eingang ?

Gruß,
Jens

Autor: Bastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
also ich nutze folgende Initialisierung:

AdcRegs.ADCTRL3.all = 0x00E0;
AdcRegs.ADCTRL3.bit.SMODE_SEL = 1;
AdcRegs.ADCTRL1.bit.SEQ_CASC = 1;
AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 1;
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x00;

// Start der Wandlung...
AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1;

// SEQ1 für nächste Wandlung zurücksetzen...
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1;


Bricht die Spannung denn bei jedem analogen Eingang zusammen oder nur 
bei einem ganz bestimmten? Es klingt so, als wäre ein Kurzschluss 
zwischen dem Pin vom ADC und der Masse vorhanden. Habt ihr sonst noch 
irgendeine Beschaltung am Evaluationboard dran?

Zum Wertebereich: bei 0V sollte im Register auch eine 0 stehen und bei 
3V dann 4095.

Autor: Phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine sonstige Beschaltung haben wir nicht am Board angeschlossen. Nur 
die nicht benutzten Eingänge mit GND verbunden. Und VREFLO noch mit GND.
Wie wird denn die Initialisierung durchgeführt? Also wo werden die 
Befehle eingegen?
 Wir haben bis jetzt nur mit Simulink erstellt, kompiliert und dann in 
den DSP übertragen. Und mit dem CCStudio die ADC-Register abgefragt.

Danke und dir nen schönes Wochenende,

Gruß Phil

Autor: Phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie lässt sich feststellen,ob der ADC defekt ist?

Autor: Bastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am besten ihr ladet euch mal folgendes Paket runter:

http://focus.ti.com/docs/toolsw/folders/print/sprc191.html

Das sind Beispielprojekte für alle Peripherals im DSP (unter anderem 
auch für den ADC). Sind alle mit dem CodeComposer erstellt. Einfach ein 
Projekt öffnen, kompilieren und in den DSP hochladen. Das waren auch 
meine ersten Schritte mit dem DSP.

Wenn dann immer noch nichts geht, messt mal den Widerstand vom ADC-Pin 
zu Masse und Versorgungsspannung. Vielleicht ist ja ein Kurzschluss 
vorhanden.

Viel Glück weiterhin...

Autor: Phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal,

die Bespielprojekte sind leider nicht für den F2812 geeignet. Wir haben 
den ADC mal in einer Messreihe vermessen:
U       U          Register
unbelastet  belastet  hex
0,0      0,00  1240
0,2      0,20  2240
0,4      0,40  4240
0,6      0,60  5240
0,8      0,70  6240
1,0      0,73  67C0
1,2      0,74  6BC0
1,4      0,75  6DC0
1,6      0,75  6DC0
1,8      0,75  6DC0
2,0      0,75  6DC0
2,4      0,77  6DC0
2,8      0,77  6DC0
3,0      0,78  6E10

Im Bereich von 0..1V ergibt sich eine Linearität. Die Spannung würde 
mittels eines Potis (Basisspannung vom F2812) heruntergeteilt. Dabei 
wurde zunächst die Spannung eingestellt (U unbelastet) und dann auch den 
ADC-Eingang gelegt (U belastet).

Im Handbuch steht, dass der ADC im Bereich von 0..3V arbeitet. Dieses 
scheint nicht so zu sein (0..1V ?) Kann es sein, dass ab 1 V die 
Schutzbeschaltung (Diode) greift und daher ein hoher Strom fließt?

Worauf lassen die obigen Werte schließen? Ich sehe nur noch die 
Möglichkeit der ADC-Kallibrierung...

Gruß Phil

Autor: Bastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> die Bespielprojekte sind leider nicht für den F2812 geeignet.

Oh doch, ihr müßt nur in der F28xx_Device.h oder in der F28xx_Example.h 
den richtigen Typ wählen (Grundeinstellung ist 2808).


Seid ihr auch sicher, dass ihr die richtigen Register auslest? Auf 
jedenfall MUSS bei 0V eine 0 im Ergebnisregister stehen und bei 3V MUSS 
4095 drin stehen. Die Werte dazwischen sind erstmal egal. Aber es kann 
eigentlich nicht sein, wenn ihr die 3V an den Analog-Pin anlegt, dass 
dann nur 0,78V "ankommen". Habt ihr die Boardvariante mit Sockel? Wenn 
ja, dann nehmt mal den DSP runter und legt die boardeigenen 3V an den 
Pin. Bricht die Spannung dann immernoch zusammen, liegt irgendwo ein 
Kurzschluss (oder niederohmige Verbindung zu Masse) vor. Fordert einfach 
ein paar Samples des DSPs bei TI (dauert höchstends 1-2 Tage ;-) an und 
baut einen anderen DSP auf das Board. Vielleicht hat der DSP ja 
irgendwann mal was abbekommen.
Mehr fällt mir jetzt auch nicht mehr ein.

Grüße Bastian

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.