-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Poti als Spannungsteiler => ADC zieht "viel" St

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    10.11.2006
    Beiträge
    78

    Poti als Spannungsteiler => ADC zieht "viel" St

    Anzeige

    Hallo Atmeler/Innen,

    ADC-Schaltung: 5k Poti als Spannungsteiler an ADC0. 5k damit lt. Datenblatt die Conversation-Zeit gering bleibt.

    Strom dürfte nach R=U/I etwa 1 mA sein. Bei einem der Poti-Anschläge steigt der Strom aber rapide an. Kann eigentlich nur durch den Controller fließen - aber warum? Im ADC-Modus nehmen die Eingänge doch nur Spannung "auf" ?!

    Schaltskizze anbei, falls da auch andere Anfänger drüber stolpern...

    Mal wieder: danke vorab !
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken adc0.gif  

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Klingt als hättest du ADC0 (beim mega16 PortA.0) als Ausgang konfiguriert.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    10.11.2006
    Beiträge
    78
    nein, leider nicht, sonst wäre der Fehler schnell behoben. Der PortA am Atmega 16 ist komplett als Eingang definiert.

    ABER: die Referenzspannung des ADC ist auf die internen 2,56V gesetzt. Wenn es das ist, d.h. dann Strom in den ADC fließt, dann müsste das doch eigentlich ab 50% Drehstellung passieren (Poti ist linear). Er steigt aber erst bei den letzten ca. 10% an, dafür dann aber extrem stark.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Funktioniert denn dein Programm, d.h. kannst du den ADC-Wert einlesen?

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.190
    Wenn der Port als Eingang definiert ist, dann gibt es meiner Ansicht nach nur zwei Möglichkeiten.
    Es ist der interne PullUp aktiviert, dann sollte der Strom steigen, wenn du Richtung GND drehst.
    Du hast eine höhere Spannung anliegen als VCC, dann sollte der Strom steigen wenn du Richtung +5V drehst.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  6. #6
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Kann es sein, das AVCC und AGND nicht angeschlossen sind ?
    Dann könnte bei den extremstellungen des Potis der Versorgungsstrom, der sonst über AGND/AVCC fließen soll über den Poti und die internen Schutzdioden fließen.

    Der intern Pullup sollte nur sehr wenig Strom (max. 0.1 mA) durchlassen.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    10.11.2006
    Beiträge
    78
    Hallo,
    danke für Eure Hilfe! Die Datenblätter von Atmel haben ja an sich Vorbildcharakter, aber manchmal ist einfach zu viel Neues auf einmal.

    Programm und Beschaltung hatte ich mal am ATmega8 zum Laufen gebracht, jetzt beim ATmega16 hakt's.

    - Pull-Ups: waren aktiviert, sind jetzt deaktiviert
    - AVCC: wie im Datenblatt beschaltet (S. 214)
    - AREF: AREF---Kondensator---GND
    - Referenzspannung: jetzt 5VDC, nicht mehr 2,54
    - Versorgung: 5VDC, eine andere Spannung kann über das Poti nicht anliegen

    Das ADC-Ergebnis soll direkt an PortB (8-LED's) ausgegeben werden. Aber, for_ro, Du hast recht, es tut sich gar nichts. Und zieht immer noch Strom.

    Das Programm:

    Code:
    ; ADMUX definieren
    	ldi Temp,0b01100000		; REFS1 REFS0 ADLAR	MUX4 MUX3 MUX2 MUX1 MUX0
    					        		;   0     1     1    0    0    0    0    0
    	out ADMUX,Temp			; REFS=01: Referenzspannung ist AVCC
    								; ADLAR=1: linksbündig (für 8-Bit Auflösung)
    								; MUX=0000: ADC0 anwählen
    
    
    ; ADSCSRA definieren			; ADEN	ADSC	ADATE	ADIF	ADIE	ADPS2	ADPS1	ADPS0
    	ldi Temp,0b11000000			;	1	 1		 0		 0		 0		 0		 0		 0
    	out ADCSRA,Temp				; ADEN=1: einschalten
    								; ADSC=1: Conversation starten
    								; ADIF=0: gibt an wenn Conversation fertig
    								; ADATE=0: auto trigger aus
    								; ADIE=0: interrupt ausgeschaltet
    								; ADPSx: prescaler definieren
    	
    ; Conversation abwarten
    	ADC0_warten:
    		sbis ADCSRA,ADIF		; wenn ADIF gesetzt => Conversion fertig
    		rjmp ADC0_warten	
    	
    	ADC0_einlesen:
    		in Poti, ADCH			; linksbündiges Ergebnis merken
    Ich hab jetzt keine Idee mehr, woran es noch liegen könnte.

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.190
    Du hast noch nicht geschrieben wann der ADC Strom zieht, wenn das Poti auf GND steht oder auf VCC.
    Was misst du auf dem Pin wenn nichts drauf ist. Auch mal Ohm messen gegen GND und VCC.
    Einen anderen ADC-eingang probieren, Vergleichsmessung machen.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  9. #9
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Welcher Strom wird eigentlich gemessen, und wie viel Strom fließt da ?

    Wie schon gesagt, mal einen anderen Pin nehmen (könnte ein HW Defekt sein).

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    10.11.2006
    Beiträge
    78
    Fehler gefunden. Trau's mich gar nicht zu sagen: das LC-Glied war verkehrt herum gepolt. Nach dem Motto "3 x abgeschnitten und immer noch zu kurz" hab ich das permanent übersehen. Sorry...

    Trotzdem haben mir Eure Anstöße viel geholfen, hab einiges nachgewälzt und verstehe besser. Danke dafür !!!

    Dolfo

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •