Forum: Mikrocontroller und Digitale Elektronik tiny26 adc nur 6 bit?


von Christoph S. (155christo)


Angehängte Dateien:

Lesenswert?

Guten Tag

Der adc bei meinem tiny26 spinnt. Lade ich das beiliegende Programm und 
verändere über ein 10K Poti (Enden an Vcc und GND ; Mitte am µC) an 
adc(1) langsam die Spannung gibt der µC per SoftUART nur jeden 16ten 
Wert aus. (Statt 10bit Auflösung also nur 6bit.)

Ein Ausschnitt am Terminal sieht z.B. so aus:

ADC :     94    1    350
ADC :     94    1    350
ADC :     110    1    366
ADC :     110    1    366
ADC :     110    1    366
ADC :     126    1    382
ADC :     126    1    382
ADC :     126    1    382
ADC :     142    1    398
ADC :     142    1    398
ADC :     158    1    414
ADC :     158    1    414
ADC :     158    1    414
ADC :     174    1    430
ADC :     174    1    430
ADC :     190    1    446
ADC :     190    1    446

Ich habe also 16 Digit Sprünge. (Ich lese aus Neugierde ADCL und ADCH 
getrennt aus und zusätzlich per = Getadc(1) das Gesamtresultat, siehe 
Software.)

Am µC habe ich Vcc und Avcc auf +5V, beide GND auf Masse, am Aref 100nF 
nach GND und an Pb6 über 470R und GND eine Verbindung zum PC)

Woran liegt es? Mache ich da was falsch oder ist der µC kaputt?

Danke fürs Lesen. Wer kann helfen?

Christoph

von Johannes M. (johnny-m)


Lesenswert?

Christoph Stein wrote:
> (Ich lese aus Neugierde ADCL und ADCH
> getrennt aus und zusätzlich per = Getadc(1) das Gesamtresultat, siehe
> Software.)
Liest Du ADCL und ADCH auch in der richtigen Reihenfolge aus (erst 
Low-Byte, dann High-Byte)? Wenn nicht, dann kommt auf jeden Fall Murks 
raus!

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ja tut er, soweit ich Basic verstehe...

von Christoph S. (155christo)


Lesenswert?

Johannes M. wrote:

> Liest Du ADCL und ADCH auch in der richtigen Reihenfolge aus (erst
> Low-Byte, dann High-Byte)? Wenn nicht, dann kommt auf jeden Fall Murks
> raus!

In dieser Reihenfolge:

  C = Getadc(1)

  A = Adcl
  B = Adch

(Siehe tiny26_adc_01.bas)

Christoph

von Johannes M. (johnny-m)


Lesenswert?

Sorry, aber ne Datei eines Formats, das ich nicht direkt öffnen kann, 
ignoriere ich aus Prinzip!

von Magnus Müller (Gast)


Lesenswert?

Johannes M. wrote:
> Sorry, aber ne Datei eines Formats, das ich nicht direkt öffnen kann,
> ignoriere ich aus Prinzip!

Du kannst die Datei direkt öffnen. Sie wird als Text angezeigt. Aber 
wenn du sooooo misstrauisch bist....
1
$regfile = "attiny26.dat"
2
$crystal = 1000000
3
4
Config Adc = Single , Prescaler = Auto ,
5
6
Dim A As Byte
7
Dim B As Byte
8
Dim C As Word
9
10
Open "COMB.6:9600,8,N,1,Inverted" For Output As #1
11
12
Waitms 500
13
14
Print #1 , "HALLO"
15
16
17
Do
18
19
  Start Adc
20
21
  Waitms 100
22
23
  C = Getadc(1)
24
25
  A = Adcl
26
  B = Adch
27
28
  Stop Adc
29
30
  Waitms 100
31
32
  Print #1 , "ADC : " ; "    " ; A ; "    " ; B ; "    " ; C
33
34
  Waitms 500
35
36
Loop
37
38
End

Gruß,
Magnetus

von Johannes M. (johnny-m)


Lesenswert?

Magnus Müller wrote:
> Johannes M. wrote:
>> Sorry, aber ne Datei eines Formats, das ich nicht direkt öffnen kann,
>> ignoriere ich aus Prinzip!
>
> Du kannst die Datei direkt öffnen. Sie wird als Text angezeigt. Aber
> wenn du sooooo misstrauisch bist....
Nein, ich kann sie nicht direkt öffnen. Wenn das ginge, dann hätte ich 
es auch getan! Ich kann sie nur auf meiner Festplatte speichern und 
dann öffnen, was ich aber nicht mache...

von Peter D. (peda)


Lesenswert?

Der ATTiny26 kann definitiv 10 Bit wandeln:

Beitrag "ADC mit Multiplexanzeige"


Ob nun die speziellen Funktionen und Parameter des Bascom richtig 
verwendet werden und den richtigen Code erzeugen, kann ich nicht 
erkennen (hab kein Bascom).


Ich lese immer das Datenblatt und steuere dann die Peripherie direkt an 
ohne irgendwelche Blackboxes und Wizards.


Peter

von Johannes M. (johnny-m)


Lesenswert?

Du weißt aber, dass die erste Wandlung nach dem Einschalten des ADC 
i.d.R. Müll liefert? Wenn Du jedes Mal den ADC komplett neu startest 
(und ich vermute mal, dass "Start Adc" genau das macht, nämlich das 
ADEN-Bit setzt; ansonsten macht ja auch "Stop Adc" wenig Sinn), dann 
kannst Du die erste Wandlung getrost wegschmeißen. Ich kenn mich mit 
Bascom nicht sonderlich aus, aber ich vermute, dass die Funktion Getadc 
bereits die Wandlung startet. Den ADC jedes mal danach komplett 
auszuschalten und dann vor der Wandlung wieder einzuschalten, ist aus 
o.g. Gründen völliger Unsinn.

von Oops (Gast)


Lesenswert?

@ Johannes M.

>> Du kannst die Datei direkt öffnen. Sie wird als Text angezeigt. Aber
>> wenn du sooooo misstrauisch bist....
>Nein, ich kann sie nicht direkt öffnen. Wenn das ginge, dann hätte ich
>es auch getan! Ich kann sie nur auf meiner Festplatte speichern und
>dann öffnen, was ich aber nicht mache...

Dann solltest Du die Datei garnicht anklicken. Was meinst Du denn was 
passiert, wenn Du Sie anklickst. Sie wird auch auf der Festplatte 
gespeichert.

Gruss
Oops

von Johannes M. (johnny-m)


Lesenswert?

Oops wrote:
> Dann solltest Du die Datei garnicht anklicken. Was meinst Du denn was
> passiert, wenn Du Sie anklickst. Sie wird auch auf der Festplatte
> gespeichert.
Und wieder einer, der nicht kapiert, worum es geht! Es geht mir nicht 
darum, irgendwas zu speichern oder nicht, sondern darum, dass es 
Dateiformate gibt, die ohne großartiges Rumfuddeln durch einfaches 
Anklicken im Browserfenster geöffnet werden können.

Das geht mit .txt-, .asm- und .c-Dateien reibungslos (wobei letztere 
mittlerweile auch direkt als formatierter Code verfügbar sind). 
.bas-Dateien gehören anscheinend nicht (oder nicht in allen Browsern) 
zum erlauchten Kreis...

von Magnus Müller (Gast)


Lesenswert?

[off topic]
Mich persönlich nervt es am meisten, wenn Schaltpläne und Layouts als 
.sch und .brd geposted werden.
[/off topic]

von Joerg W. (joergwolfram)


Lesenswert?

@ magnetus

mich stört das eigentlich nicht, bei Fragen etc. kommt das eh nur 
äußerst selten vor. Und bei Projekten kann jeder machen, was er für 
richtig hält. Wobei ich dort ein zusätzliches PNG für sinnvoll halte.

Gruß Jörg

von Oops (Gast)


Lesenswert?

>> Dann solltest Du die Datei garnicht anklicken. Was meinst Du denn was
>> passiert, wenn Du Sie anklickst. Sie wird auch auf der Festplatte
>> gespeichert.
>Und wieder einer, der nicht kapiert, worum es geht! Es geht mir nicht
>darum, irgendwas zu speichern oder nicht, sondern darum, dass es
>Dateiformate gibt, die ohne großartiges Rumfuddeln durch einfaches
>Anklicken im Browserfenster geöffnet werden können.

Und wieder einer der nicht schreibt was er meint.

Gruss
Oops

von Thomas (kosmos)


Lesenswert?

ich würde mal ADIF auswerten statt 100mSek zu warten. Könnte es sein das 
du mittels Kondensator das Analoge Signal zu stark dämpfst und es 
deshalb in Verbindung mit der 100mSek Pause zu diesem Anstieg oder 
Abfall von 16 kommt?

Probier mal folgendes
1. Ein 1k Poti statt des 10k Potis nehmen oder den Kondensator gegen ein 
kleineres Model austauschen z.B. Kerko 100nF
2. Das ADIF auswerten so erreichst du höhere Sempleraten als 10 Hz und 
hattest dadurch auch die Chance irgendetwas zw. den 16 Werten zu messen. 
Zusammen mit den weiteren 500mSek kommst du ja nicht mal auf 0,5 
Wandlungen pro Sekunde, deshalb denke ich auch das du da nen riesen Elko 
zum dämpfen drinhast der fehl am Platz ist

von Christoph S. (155christo)


Lesenswert?

Das Problem hat sich erledigt.

Ich habe den tiny26 gegen einen mega8 getauscht, den ich noch in der 
Kiste zu liegen hatte, sonst aber nichts geändert und es funktioniert 
reibungslos. Offenbar hat der tiny26 tatsächlich einen Schuß.

Danke fürs Lesen

Grüsse

Christoph

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.