www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC18F: ADC=> AD2, AD3 als Referenzquelle


Autor: full well (realjey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebes Forum!

Ich möchte meinen PIC18F4520 dazu bringen bei der ADC-Wandlung AD2(RA2) 
und AD3(RA3) als Referenzquelle zu benutzen, leider funzt es nicht.

Ich habe über eine Referenzdiode und einen Spannungsteiler an 
AN3(RA3)=3.2V und an AN2(RA2)=Masse=0V angeschlossen.

Den PIC selbst betreibe ich mit VDD=3.3V. Aus dem Datenblatt geht 
hervor, das delta_Vref min. 3V sein müssen wenn ich den PIC mit VDD>=3V 
betreibe, was ich ja tue. Sollte also erstmal alles in Ordung sein, 
denke ich.

Mein C-Code:
unsigned int tmp_value1, tmp_h, tmp_l=0;

void Ini_ADC(void)  //Initialisierung des 10bit-ADC (siehe DB)
{
  //Alles Inputs!
  trisa.0=1;
  trisa.1=1;
  trisa.2=1;
  trisa.3=1;
  
  adcon2  =0x8C;  //2TAD, rechtsbündig
  adcon1  =0x3b;  //Vref-=RA2; Vref+=RA3
  adcon0  =0x01;   //use AN0, ADC=on    
}

void start_ADC()
{     
  adcon0  |= 0x2; //start conversion
  while((adcon0 & 0x02)>=1);  
  //Samples einlesen und in tmp_value1 speichern
  tmp_h=adresh;
  tmp_l=adresl;
  tmp_value1=(tmp_h << 0x08) | tmp_l;
}


Leider liest der PiC für adresh immer "02" (oder "03") und für 
adressl immer "40" aus, egal welche Spannung an ADC1 anliegt. Habe ich 
bei der Initialisierung etwas falsch gemacht, worauf muss ich achten 
wenn ich als Vref nicht VDD benutzen möchte?

Btw: Wenn ich adcon1=0x0b setze, also VDD als Vref benutze, funktioniert 
das ganze einwandfrei!

Vielen Dank für eure (hoffentlich schnelle) Hilfe :)

Autor: full well (realjey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich bin mal so fresch und pushe...

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jey Soon schrieb:
> Btw: Wenn ich adcon1=0x0b setze, also VDD als Vref benutze, funktioniert
> das ganze einwandfrei!

Dann liegt es an der Hardware.
wie hochohmig ist der Spannungsteiler?
Hast du den Strom für VREF (ca 150uA) berücksichtigt?

Gruß Anja

Autor: full well (realjey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Anja, nicht wirklich. Mein Spannungsteiler hängt an 4.1V, die 
Impedanz des Teilers liegt bei insg. 49k, was einen Strom von ca. 80uA 
ergibt. Das ist dann wohl zu wenig?!

Könntest du mir verraten, wo im Datenblatt die Angabe mit dem Strom 
steht, finde das iwie nicht...

Autor: full well (realjey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe die Angabe gefunden (A/D CONVERTER CHARACTERISTICS), allerdings 
steht hier, max=150uA (During A/D conversion cycle) , dann müsste ich 
doch mit meinen 80uA ganz gut liegen oder?

Allerdings steht hier weiterhin:
Recommended Impedance of Analog Voltage Source 2.5 kΩ, damit wäre ich 
dann wieder weit darüber hinnaus, oder deute ich die Angabe falsch?

Weiterhin steht dort:
5μA During VAIN acquisition.

Was ist damit gemeint?

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jey Soon schrieb:
> steht hier, max=150uA (During A/D conversion cycle) , dann müsste ich
> doch mit meinen 80uA ganz gut liegen oder?

Der A/D-Wandler braucht an VREF 150uA, Du lieferst 80uA max -> totaler 
Kurzschluß?
Wenn Du wenige Wandlungen pro Sekunde mit großem zeitlichen Abstand 
machst kannst Du einen Kondensator an VREF hängen. (ich empfehle 100nF 
Keramik + 10uF Tantal parallel). Ansonsten mußt Du halt ausrechnen ob 
deine Quellimpedanz ausreicht um den Kondensator zwischenzeitlich wieder 
aufzuladen. (normalerweise hat man bei hoher Wandelrate dann wenige 10 
Ohm)

Jey Soon schrieb:
> Recommended Impedance of Analog Voltage Source 2.5 kΩ,
Das bezieht sich auf den Analog-Eingang oder?
Wenn ja: das ist die maximale Quellimpedanz die der Analog-Eingang bei 
maximaler Umgebungstemperatur haben sollte damit die Leckströme am 
Analogeingang nicht zur Meßwertverfälschung führen.
Bei Raumtemperatur kannst Du das etwas entspannter sehen.

Gruß Anja

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.