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ß
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.
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
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.
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
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
> 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.
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
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ß
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ß
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
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.
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
Sebastian H. schrieb: > Aber ich hab kein Plan, wie ich das machen kann. Getting Started with Analog-to-Digital Converter (ADC) https://ww1.microchip.com/downloads/aemDocuments/documents/MCU08/ApplicationNotes/ApplicationNotes/TB3209-Getting-Started-with-ADC-DS90003209.pdf
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ß
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ß
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.
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
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.
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.