Forum: Mikrocontroller und Digitale Elektronik ATtiny1617 ADC0, ADC8 bekomme ich nicht zum laufen


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Sebastian H. (sebastian_h809)


Lesenswert?

Moin,


ich habe das Problem, dass ich den ADC0 und ADC8 nicht zum laufen 
bekomme. Ich würde mich sehr über eine Hilfestellung freuen und möchte 
mich im Voraus für eure Anteilnahme danken.

Bei dem ATtiny1617 stehen 12 ADCs zur Verfügun. Und diese benötige ich 
auch alle. Jetzt habe ich jeden einzelnen ADCs getestet. Dabei stellte 
sich für mich raus, dass die beiden genanten ADC keine Reaktion zeigen. 
Die restlichen 10 ADC funktionieren.

Kann mir da vielleicht jemand auf die Sprünge helfen?

Die ADCs habe ich wie üblichen per Arduino IDE in Betrieb genommen. 
Dafür habe ich die Funktion analogRead() benutzt.

Gruß

von uff basse (Gast)


Lesenswert?

Sebastian H. schrieb:
> Kann mir da vielleicht jemand auf die Sprünge helfen?

So wie du dein Problem darstellst sicherlich nicht.
Du müsstest schon zeigen was du wie gemacht hast.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Sebastian H. schrieb:
> dass die beiden genanten ADC keine Reaktion zeigen. Die restlichen 10
> ADC funktionieren.
Der µC hat laut Datenblatt "Two 10-bit 115 ksps Analog-to-Digital 
Converters (ADCs)" namens ADC0 und ADC1. Mehr gibt es nicht. Und vor 
diesen sitzt jeweils ein Multiplexer, der eine von 12 
Analogspannungsquellen/Pins auf den jeweiligen ADC schaltet. Diese Pins 
heißen dann AIN0..11.

> Dabei stellte sich für mich raus, dass die beiden genanten ADC keine
> Reaktion zeigen.
Bist du den Anweisungen im Datenblatt gefolgt, wo steht, wie die Pins 
konfiguriert werden müssen, dass sie als Analogeingang genutzt werden 
können?

Auf der Seite 12 steht z.B.
1. The PTC takes control over the ADC0 while the PTC is used

Im Kapitel 5. I/O Multiplexing and Considerations findet man unter 5.1 
Multiplexed Signals die Table 5-1. PORT Function Multiplexing, wo dann 
diese Mehrfachbelegungen aufgelistet sind.

: Bearbeitet durch Moderator
von uff basse (Gast)


Lesenswert?

Irgendwie ungünstig wenn man mit viel Kopfständen zwar
12 Kanäle A/D wandeln kann aber es einem dann an Pins
fehlt die Daten irgendwie nach aussen zu bringen.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

@ TO:
schau nach welche aktuelle Pinbelegung du hast und was demzufolge 
überhaupt frei ist. Dann schauste in Tabelle 5.1 und überlegst ob deine 
Wünsche so überhaupt erfüllbar sind. Bspw. ADC0-AIN0 wirst du sicherlich 
nicht nutzen können, weil man darüber programmiert und resetet. Dann ist 
die Frage hast du einen externen Quarz dran usw. Das musst du alles 
überlegen und auflisten. ADC1-x könnte klappen wenn du sonst nichts 
weiter benötigst.
Wenn das alles soweit passen sollte musste uns dein Programm zeigen.

: Bearbeitet durch User
von Georg M. (g_m)


Lesenswert?

1
 Pin 23    PA0   (ADC0 AIN0)   UPDI
2
 Pin 24    PA1    ADC0 AIN1
3
 Pin  1    PA2    ADC0 AIN2
4
 Pin  2    PA3    ADC0 AIN3
5
 Pin  5    PA4    ADC0 AIN4    ADC1 AIN0
6
 Pin  6    PA5    ADC0 AIN5    ADC1 AIN1
7
 Pin  7    PA6    ADC0 AIN6    ADC1 AIN2
8
 Pin  8    PA7    ADC0 AIN7    ADC1 AIN3
9
 Pin  9    PB7                 ADC1 AIN4
10
 Pin 10    PB6                 ADC1 AIN5
11
 Pin 11    PB5    ADC0 AIN8 
12
 Pin 12    PB4    ADC0 AIN9 
13
 Pin 15    PB1    ADC0 AIN10
14
 Pin 16    PB0    ADC0 AIN11
15
 Pin 17    PC0                 ADC1 AIN6
16
 Pin 18    PC1                 ADC1 AIN7
17
 Pin 19    PC2                 ADC1 AIN8
18
 Pin 20    PC3                 ADC1 AIN9
19
 Pin 21    PC4                 ADC1 AIN10
20
 Pin 22    PC5                 ADC1 AIN11

: Bearbeitet durch Moderator
von cartman (Gast)


Lesenswert?

> Irgendwie ungünstig wenn man mit viel Kopfständen zwar
> 12 Kanäle A/D wandeln kann aber es einem dann an Pins
> fehlt die Daten irgendwie nach aussen zu bringen.

Wenn dem Hersteller daran liegt, die ADs auch praktisch einfach
benutzbar zu machen, spendiert er ihnen dedizierte Eingangspins.
Um das Glueck vollstaendig zu machen, werden die dann auch
noch von Analog Grounds flankiert.
Das braucht natuerlich "etwas" groessere Packages, als diese
Zwergerl haben.

Aber wer Zwergerl kauft, bekommt auch nur Zwerge.

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

Veit D. schrieb:
> (...)ADC0-AIN0 wirst du sicherlich
> nicht nutzen können, weil man darüber programmiert und resetet.

Woher glaubst Du zu wissen, dass der TO keinen Programmer mit 
"high-voltage UPDI enable sequence initiation" besitzt?

Grüßle,
Volker

von Sebastian H. (sebastian_h809)


Lesenswert?

Moin allerseits!

Vielen Dank für eure Anteilnahme mich bei meinem Vorhaben zu 
unterstützen.

Mir ist im Datenblatt auch aufgefallen, das z.B. der ADC0 auf dem 
UPDi-Pin liegt und daher auch nicht ohne weiteres zu nutzen ist für 
mich. Aber warum der ADC8 der sich den selben Pin wie der digitale Pin 
D6 nicht funktioniert ist mir ein Rätzel. Wenn ich den digital nutzen 
will dann funktioniert dieser wie gewünscht.

Auch ist mir aufgefallen (wie ihr erwähnt habt), dass man ein ADC0 und 
ein ADC1 nutzen kann. Da gibt es eine andere Pinbelegung der ADC0-11. 
Aber ich hab kein Plan, wie ich das machen kann.

Ich werd einfach mal ekn paar Befehle ausprobieren. Das geht ja 
bekanntlich über studieren. ;)

Das ganze werd ich zusätzlich versuchen mit googeln versuchen zu lösen.

Gruß

von Sebastian H. (sebastian_h809)


Lesenswert?

Meine zweite Überlegung ist es mir den ATtiny3217 zu zulegen. Aber 
ehrlich gesagt hab ich keine Lust den wieder auf das Adapterboard löten 
zu müssen. Aber das wäre dann doch das kleinere Übel. Hauptsache ich 
bwkomme den hin, sodass ich 12 ADC-Pin zur Verfügung hab.

Gruß

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sebastian H. schrieb:
> Ich werd einfach mal ekn paar Befehle ausprobieren.
> Das geht ja bekanntlich über studieren. ;)
So sagt der Volksmund. Ich würde allerdings das Datenblattstudium dem 
Herumprobieren mit zusammenkopiertem Code vorziehen. Letztendlich kommst 
du sowieso nicht drumrum, dich um die Interna deines selbst gewählten µC 
zu kümmern. Nur Anfänger meinen anfangs, es ginge ohne solches Wissen.

Sebastian H. schrieb:
> Hauptsache ich bwkomme den hin, sodass ich 12 ADC-Pin zur Verfügung hab.
Wie üblich: sieh das Portmapping im Datenblatt an.

: Bearbeitet durch Moderator
von jo mei (Gast)


Lesenswert?

Sebastian H. schrieb:
> Meine zweite Überlegung ist es mir den ATtiny3217 zu zulegen.

Sorry, aber wenn ich 12 Kanäle ADC haben will dann nehme ich
mir ein, zwei oder drei externe ADCs und verbinde die über SPI
oder I2C mit einem für mich optimalen Controller meiner
Wahl. Das ist weitaus sicherer und unkomplizierter als sich
mit den ADC-Pinbelegungen eines solchen Winzlings herum-
zuschlagen.

Externe ADCs gibt es für die Arduino-Welt genug und Code
dafür auch. Das ist günstig und nachbausicher, die ADCs sind
auf den Boards bereits vorbereitet verschaltet und es braucht
nicht viel Zusatzarbeit um zu einem guten Ergebnis zu kommen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

jo mei schrieb:
> Sorry, aber wenn ich 12 Kanäle ADC haben will dann nehme ich
> mir ein, zwei oder drei externe ADCs
Erscheint sinnvoll:
https://www.mouser.de/c/semiconductors/data-converter-ics/analog-to-digital-converters-adc/?number%20of%20channels=12%20Channel&resolution=12%20bit

: Bearbeitet durch Moderator
von Georg M. (g_m)


Lesenswert?


von Sebastian H. (sebastian_h809)


Lesenswert?

Moin noch mal.

Gerne wollte ich euch nocv mal um eure Hilfestellung bitten.

Wenn ich mir einer das Datenblätter zur Hilfe nehme, dann kann ich da 
keine Info dazu finden welcher der Pins digitale Pins sind.

Im Datenblatt ist genau definiert, welcher der Pins ADC, SPI, UART, I2C 
sind.

Warum ist das so?
Ich habe die Pins einzeln nachgemessen, um das heraus zu finden. 
Einfacher wäre es doch, wenn das im Datenblatt stehen würde. Oder mache 
ich da was falsch?

Gruß

von Wilhelm M. (wimalopaan)


Lesenswert?

Kapitel 5 (Seite 18)

von Sebastian H. (sebastian_h809)


Lesenswert?

Moin,

danke für den Hinweis.

Ich glaube wir reden aneinander vorbei.

Wenn ich in das Datenblatt des ATtiny1617 (Seite 18, 5.1 Multiplexed 
Signals) dann sehe ich die Tabelle. Da kann ich die Pinbezeichnungen Pxn 
entnehmen. Mir ist klar, dass ich mit der AVR-C Programmierung den Pin 
als digitalen Pin nutzen kann.

Für mich wäre es aber verständlicher, wenn die digitalrn Pins wie die 
analogen Pins datgestellt werden würden. Z.B D1, D2, D3 ect.

Ich hab mir natürlich die Arbeit gemacht und alle Pins durch getestet 
und die entsprechen in meinen Unterlagen beschriftet.

ATtiny1617 Digitale Pins:
PA4 = D0
PA5 = D1
PA6 = D2
PA7 = D3
PB7 = D4
PB6 = D5
PB5 = D6
PB4 = D7
PB3 = D8
PB2 = D9
PB1 = D10
PB0 = D11
PC0 = D12
PC1 = D13
PC2 = D14
PC3 = D15
PC4 = D16
PC5 = D17
PA1 = D18

Ich hoffe, ich habe da kein Zahlendreher ect.

Gruß

von Wilhelm M. (wimalopaan)


Lesenswert?

Sebastian H. schrieb:
> Moin,
>
> danke für den Hinweis.
>
> Ich glaube wir reden aneinander vorbei.
>
> Wenn ich in das Datenblatt des ATtiny1617 (Seite 18, 5.1 Multiplexed
> Signals) dann sehe ich die Tabelle. Da kann ich die Pinbezeichnungen Pxn
> entnehmen. Mir ist klar, dass ich mit der AVR-C Programmierung den Pin
> als digitalen Pin nutzen kann.
>
> Für mich wäre es aber verständlicher, wenn die digitalrn Pins wie die
> analogen Pins datgestellt werden würden. Z.B D1, D2, D3 ect.

Was aber keinen Sinn macht, weil Du bei dem uC eine portweise 
Gruppierung hast. Daher ist die Benennung des DB die sinnvollere.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

ich weiß beim besten Willen nicht wie und wobei ich helfen soll bzw. 
kann. Ich dachte es werden analoge Eingänge benötigt?

: Bearbeitet durch User
von DerEinzigeBernd (Gast)


Lesenswert?

Sebastian H. schrieb:
> Für mich wäre es aber verständlicher, wenn die digitalrn Pins wie die
> analogen Pins datgestellt werden würden. Z.B D1, D2, D3 ect.

Du willst die Arduino-Welt nicht verlassen, da wird so etwas gemacht.

von c-hater (Gast)


Lesenswert?

Sebastian H. schrieb:

> Für mich wäre es aber verständlicher, wenn die digitalrn Pins wie die
> analogen Pins datgestellt werden würden. Z.B D1, D2, D3 ect.

Arduino-Schaden. Das ist nicht so schlimm wie Drogenabhängigkeit. Man 
kann sich recht leicht davon befreien...

von Wilhelm M. (wimalopaan)


Lesenswert?

c-hater schrieb:
> Sebastian H. schrieb:
>
>> Für mich wäre es aber verständlicher, wenn die digitalrn Pins wie die
>> analogen Pins datgestellt werden würden. Z.B D1, D2, D3 ect.
>
> Arduino-Schaden. Das ist nicht so schlimm wie Drogenabhängigkeit. Man
> kann sich recht leicht davon befreien...

Wusste gar nicht, dass Arduino legalisiert wurde ;-)

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.