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.
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.
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.
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.
@ 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.
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.
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.
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.
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.
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.
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?
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.
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.