Forum: Mikrocontroller und Digitale Elektronik Tiny45 - Problem mit ADC


von Alex G. (alexgrah)


Lesenswert?

Hallo Forianer,

folgendes Problem: Mit einem Tiny 45 lese ich einen Analogwert 
(0...1,1V) an ADC2 (PortB.4) ein (die analogen Schaltungsteile laufen 
exakt). Mit folgender Initialisierung starte ich den ADC einmal zu 
Programmstart:

Adcsrb = &B00000000
Admux = &B10000010
Adcsra = &B11100110
Didr0.4 = 1

Dann lese ich im Polling einfach die Register des ADC aus:

Sendedaten(5) = Adcl                     'Low(sollwert)
Sendedaten(4) = Adch                     'High(sollwert)

(Der Rest der Software ist übrigens in BASCOM)

und übermittle die Daten seriell an ein Display. Das funktioniert genau 
bis 0,55V (h0200)- danach stimmen die ausgelesenen Werte nicht mehr, bei 
1,1V Eingangsspannung kommt nur noch h02FE (=766).

Ich kann mir das überhaupt nicht erklären, wir haben gemeinsam auch 
schon mehrere Baugruppen getestet.

Für Hilfe wäre ich wirklich SEHR dankbar ;o)

(Folgeproblem zu Beitrag "Tiny45 ADC mit falscher Referenz")

von Philipp B. (philipp_burch)


Lesenswert?

Hm, war da nicht was, dass man bei Word-Registern jeweils das obere Byte 
zuerst lesen/schreiben muss?

EDIT: Achne, hab' mich geirrt. Ist schon richtig.

von Alex G. (alexgrah)


Lesenswert?

Gerade nochmal nachgeschaut: Wenn man beide Register auslesen will, muss 
zwingend adcl zuerst gelesen werden (p128 im Datenblatt, Mitte) - das 
passt also. Im übrigen klappt es ja irrwitzigerweise mit kleineren 
Spannungswerten. Ich probiere gleich nach dem Frühstück mal eine 
Single-Conversion...

von Alex G. (alexgrah)


Lesenswert?

Einzelaufrauf macht das gleiche Ergebnis :(

von Alex G. (alexgrah)


Lesenswert?

Je nachdem, ob das Ergebnis left oder right adjusted ist, bekomme ich 
entweder hFEC0 oder h02FE geliefert. Auffällig ist, das das Bit adch.0 
IMMER 0 ist - offenbar baut der Controller hier einfach Mist ? Egal bei 
welcher Eingangsspannung ist die Zahl in adch immer eine gerade Zahl ! 
Hilfe ?!

von Alex G. (alexgrah)


Lesenswert?

Hat sich gerade erledigt: Die serielle Übertragung löscht das Bit 0 ! Es 
ist doch zum Mäusemelken.... :o)

Hat sich also erledigt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.