Forum: Mikrocontroller und Digitale Elektronik AD-Wandler-Problem beim ATTiny26


von Robert Budde (Gast)


Lesenswert?

Hallo!
Habe ein doofes Problem mit meinen 3 ATTiny26. Seit einem Tag versuche 
ich nun eine AD-Wandlung hinzubekommen, aber irgendwie schaffe ich es 
nicht. Ich habe schon verschiedene Tinys, versch. Takte (intern und 
extern) und Prescaler und AD-Eingänge versucht. Benutze das STK500. Bin 
nun ziemlich ratlos und habe Angst das es an etwas ganz trivialen 
liegt...

Hier mein Quelltext:

.include "tn26def.inc"

.def  temp = r16

.org 0x000
rjmp  RESET
.org 0x001
reti
.org 0x002
reti
.org 0x003
reti
.org 0x004
reti
.org 0x005
reti
.org 0x006
reti
.org 0x007
reti
.org 0x008
reti
.org 0x009
reti
.org 0x00A
reti
.org 0x00B
reti
.org 0x00C

RESET:
  ldi  temp,RAMEND
     out  SP,temp

  ldi  temp,0b11111111
  out  DDRA,temp
  ldi  temp,0b00000000
  out  DDRB,temp

  ldi   temp, ((1<<ADEN)|(1<<ADSC)|(1<<ADFR)) + 0b00000101
  out  ADCSR, temp
  ldi  temp, ((1<<ADLAR))+6
  out  ADMUX, temp
MainLoop:
  in    temp,ADCH
  out    PortA,temp
  clr    temp
Loop:
  rcall  Wait_0625ms
  dec  temp
  brne  Loop
  rjmp  MainLoop

Wait_0625ms:
  push  r16
  ldi    r16,61
Wait_0625ms_Loop:
  nop
  nop
  nop
  nop
  nop
  nop
  nop
  dec    r16
  brne  Wait_0625ms_Loop
  nop
  nop
  nop
  nop
  pop    r16
  ret


Vielen Dank!
Robert Budde

von Robert Budde (Gast)


Lesenswert?

Hab noch vergessen: Die AD-Wandlung funktioniert überhaupt nicht. D.h. 
die Wandlung ist nicht ungenau oder so, sondern ich kriege beim Lesen 
des ADH (brauche nur 8 bit) entweder 0 oder zufällige Werte zurück, die 
sich aber nicht ändern. D.h. bei einem Eingang krieg ich immer 0, beim 
nächsten 62 usw.

Danke!
Robert

von Robert Budde (Gast)


Lesenswert?

Bitte entschuldigt das ich hier so nen Monolog schreibe, aber ich 
versuche alle Details zusammenzutragen damit mir hoffentlich jemand 
helfen kann: Habe alle drei Tinys noch mal durchprobiert: Wenn ich den 
oben geposteten Quellcode nutze bekomme ich bei jedem Baustein 
identische (falsche, nicht veränderliche) Werte zurück: 00010100. Habe 
die Negierung des STKs schon beachtet. Also können ja eigentlich nicht 
alle Wandler defekt sein!? Ich wäre demjenigen der mir nen Quelltext für 
nen ATTiny26 mit funktionierendem ADC hinwirft sehr dankbar!

Gruß
Robert

von thkaiser (Gast)


Lesenswert?

Mit dem tiny26 hab ich noch nichts gemacht - sieht aber interessant aus.
Hast Du den Pin "AVCC" angeschlossen?

von Robert Budde (Gast)


Lesenswert?

Hi!

Jo, AVCC hab ich angeschlossen (bzw. das STK 500, hab nachgemessen). Hab 
den Fehler allerdings heute morgen durch komplettes Neuverkabeln und 
-überlegen gefunden: Hab irgendwie PortA mit PortB bzgl. der 
Nummerierung der ADCs vertauscht und dadurch immer den falschen Port 
gemessen. :-/
An sich finde ich den Tiny 26 auf extrem gut, hat die Power von nem 
alten 2313 zusammen mit bis zu 11 ADC. Gerade die Differentielle Messung 
find ich goil.

Gruß
Robert

von remo (Gast)


Lesenswert?

@Robert: Kannst du mir bitte mitteilen, in welchen Sockel der Tiny26 auf 
dem STK500 gehört? Das steht in meiner Doku nicht drin. Hab auch schon 
unter diesem Thread die gleiche Frage gepostet:
http://www.mikrocontroller.net/forum/read-1-26735.html

Danke und ciao
Remo

von Robert Budde (Gast)


Lesenswert?

Hallo Remo!
In der Suche "ATTiny26" eingegeben liefert dieses 
http://www.mikrocontroller.net/forum/read-1-26015.html#26018 Ergebnis.

Gruß
Robert

von Andreas W. (Gast)


Lesenswert?

Ich weiß nicht wirklich wie es beim ATTtiny ist aber ließ mal im 
Datenblatt nach, normaler weise bekommst ein Interrupt wenn wandler 
ergebniss da ist.

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Hi Robert,

ich habe den TINY26 ausprobiert und es läuft.

Anbei meine Wandlerroutine. a0, a1 sind als Register definiert.


Peter

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.