mikrocontroller.net

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


Autor: Robert Budde (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Robert Budde (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Robert Budde (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: thkaiser (Gast)
Datum:

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

Autor: Robert Budde (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: remo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Robert Budde (Gast)
Datum:

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

Gruß
Robert

Autor: Andreas W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:
Angehängte Dateien:
  • Adc.inc (414 Bytes, 192 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
Hi Robert,

ich habe den TINY26 ausprobiert und es läuft.

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


Peter

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.