Ich habe hier Arduino-Nanos und Pro Minis aus China (verschiedene Verkäufer), bestückt mit einem AT328 im 32-Pin TQFP. Beim Nano ist der AREF-Pin auf die Stiftleiste geführt, beim Pro Mini nicht. Bei allen Versionen ist ein C nach Masse dran. Aber: Ich kann am Pin (20) keine Spannung messen. Ich habe gerade wieder einen Aufbau gemacht, wo ich die interne Bandgap nutze, funktioniert. Laut Datenblatt ist die Spannung am Pin permanent vorhanden, was ist da los bzw. übersehe ich? Ich habe noch zwei China-Unos, ebenfalls mit TQFP bestückt, da sind die 5 bzw. ca. 1,1 Volt an AREF zu messen, wie ich es erwarte.
Manfred schrieb: > Aber: Ich kann am Pin (20) keine Spannung messen. Ich habe gerade wieder > einen Aufbau gemacht, wo ich die interne Bandgap nutze, funktioniert. > Laut Datenblatt ist die Spannung am Pin permanent vorhanden, was ist da > los bzw. übersehe ich? Einfach mal mit dem Multimeter zwischen Nano-Pin und Atmega-Pin messen ob da wirklich Durchgang ist. Vielleicht ists eine schlechte (bzw. nicht vorhandene) Lötverbindung. Am ARef-Pin hat man, wie du schon festgestellt hast, immer die aktuell eingestellte Referenzspannung. Deshalb soll man ja ARef nicht mit Vcc verbinden (kann zum Kurzschluss führen und den Atmega beschädigen).
.. oder der C ist kein Kondensator oder hat Schluß, oder .... Mal am Pin den Leiterzug trennen und messen.
Manfred schrieb: > Aber: Ich kann am Pin (20) keine Spannung messen. Ich habe gerade wieder > einen Aufbau gemacht, wo ich die interne Bandgap nutze, funktioniert. > Laut Datenblatt ist die Spannung am Pin permanent vorhanden, was ist da > los bzw. übersehe ich? Arduino Sketch? Dann nicht nur die Referenz einstellen, sondern auch mindestens ein mal analogRead() durchführen. Danach bleibt Aref erhalten. Ein Miniprogramm um die Referenz messen zu können sieht also so aus:
1 | void setup() |
2 | {
|
3 | analogReference(INTERNAL); |
4 | analogRead(A0); |
5 | }
|
6 | |
7 | void loop() |
8 | {
|
9 | }
|
M. K. schrieb: > Manfred schrieb: >> Aber: Ich kann am Pin (20) keine Spannung messen. ... > Einfach mal mit dem Multimeter zwischen Nano-Pin und Atmega-Pin messen > ob da wirklich Durchgang ist. Vielleicht ists eine schlechte (bzw. nicht > vorhandene) Lötverbindung. Hälst Du eigentlich alle Leute hier für blöd? Pin 20 ist direkt am TQFP, eine fehlende Verbindung würde ich schon selbst erkennen. Na gut, ich werde nicht jünger, 45 Jahre Elektronik lassen mich manche Dinge übersehen. ===== Arduino F. schrieb: > Arduino Sketch? > Dann nicht nur die Referenz einstellen, sondern auch mindestens ein mal > analogRead() durchführen. Danach bleibt Aref erhalten. Fanboy_ - _Danke ! Da meine Anwendung(en) unendlich langsam sind, nutze ich tatsächlich diese dusselige Arduino-IDE. Ich werfe gerade nochmal das Labornetzgerät an, habe gestern meinen Sketch umgeschrieben, um die Analogwerte zu kalibrieren - und gucke da, an Pin 20 sind die 1,09 Volt zu messen! Der Wert passt aufs Millivolt mit dem überein, was ich gestern zurückgerechnet hatte. Also ist die Erklärung, dass die Arduino-Umgebung den ADC erst einschaltet, wenn man ihn braucht? Jetzt muss ich leider gucken, ob das meinen Stromverbrauch erhöht, wenn ich den µC schlafen lege bzw. herausbekommen, wie ich den ADC ausmachen kann.
>Also ist die Erklärung, dass die Arduino-Umgebung den ADC erst >einschaltet, wenn man ihn braucht? Jetzt muss ich leider gucken, ob das >meinen Stromverbrauch erhöht, wenn ich den µC schlafen lege bzw. >herausbekommen, wie ich den ADC ausmachen kann. Der Start-Up Code ist genauso wichtig wie jede andere Funktion. Der sollte ja bekannt bzw. dokumentiert sein...
Manfred schrieb: > Hälst Du eigentlich alle Leute hier für blöd? Nein, nur die, die mir so blöd kommen wie du. Hälst du es so abwegig wenn jemand vom Arduino und Pin 20 redet, dass er dann vielleicht den Pin 20 der Arduinos meint? Ich hatte leider nicht ins Pinout des Nano geschaut, Pin 20 erschien mir richtig. Ein Blick hätte mir wohl verraten, dass am Arduino Nano der AREF an Pin 21 liegt und du wohl das TQFP-Gehäuse meinst. Manfred schrieb: > Also ist die Erklärung, dass die Arduino-Umgebung den ADC erst > einschaltet, wenn man ihn braucht? Jetzt muss ich leider gucken, ob das > meinen Stromverbrauch erhöht, wenn ich den µC schlafen lege bzw. > herausbekommen, wie ich den ADC ausmachen kann. Ja, ein laufender ADC kann sich auch im Sleepmode bemerkbar machen. Welchen Sleepmode willst du denn benutzen? Beim Mode IDLE und ADC kann der ADC immer noch mitlaufen und muss dann von Hand abgeschaltet werden.
:
Bearbeitet durch User
> Hälst Du eigentlich alle Leute hier für blöd? Das ist also dein Dank für gut gemeinte Hilfe? Schäm' Dich! Ich hätte Dir genau die selbe Antwort (von wegen Unterbrechung) gegeben! > nutze ich tatsächlich diese dusselige Arduino-IDE. Kopfschüttel... > Also ist die Erklärung, dass die Arduino-Umgebung den ADC erst > einschaltet, wenn man ihn braucht? Da siehst du, warum viele Entwickler das Arduino System nicht mögen. Es ist schlecht dokumentiert und lenkt von den Grundlagen ab. Hättest du den ADC selbst programmiert, dann wäre dieser Fehler gar nicht entstanden. > herausbekommen, wie ich den ADC ausmachen kann. Dafür gibt es ein Register, in dem man diverse Features deaktivieren kann. Ich glaube es heißt Power Control Register oder so ähnlich. Du wirst es sicher im Datenblatt finden. Der Blick ins Datenblatt lohnt sich, denn wenn du das verstanden hast, brauchst du die Verwirrung stiftenden Arduino Libraries nicht mehr.
M. K. schrieb: > Manfred schrieb: >> Jetzt muss ich leider gucken, ob das >> meinen Stromverbrauch erhöht, wenn ich den µC schlafen lege bzw. >> herausbekommen, wie ich den ADC ausmachen kann. > Ja, ein laufender ADC kann sich auch im Sleepmode bemerkbar machen. Das werde ich die Tage mal messen, heute habe ich mich mit der Hardware drumherum befasst und dicke Kabel gelötet. > Welchen Sleepmode willst du denn benutzen? Beim Mode IDLE und ADC kann > der ADC immer noch mitlaufen und muss dann von Hand abgeschaltet werden. Ich gehe auf den Timer und lasse ihn alle 8s aufwachen. Ich habe vorhin das Include kurz angeschaut, da gibt es ADC_OFF, so dass ich einfach testen kann. Das ganze Gebilde wird incl. Stromversorgung unter 10µA bleiben, mit Aufwachen und zyklisch Messen brauche ich übers Jahr unter 2% meiner Akkukapazität. Ich weiß, dass noch etwas weniger ginge - aber da passen mir Aufwand <-> Nutzen nicht mehr überein. Stefan U. schrieb: >> Hälst Du eigentlich alle Leute hier für blöd? > Das ist also dein Dank für gut gemeinte Hilfe? Schäm' Dich! > Ich hätte Dir genau die selbe Antwort (von wegen Unterbrechung) gegeben! Warum? Weil Arduino im Text steht, geht man davon aus, dass der Fragesteller eine Verbindung nicht kontrollieren kann? Aber gut, nach dem, was ich im Mikrocontroller.net so zu lesen bekomme, sollte ich das verstehen. Zum Glück war hier jemand, der es erklären konnte und ich das eindeutig nachvollziehen kann. >> nutze ich tatsächlich diese dusselige Arduino-IDE. > Kopfschüttel... Danke, Reaktion gemäß Erwartung. Ich habe vor vielen Jahren Anwendungen in Assembler geschrieben, die zum Teil auch zeitkritisch waren. Das, was ich bislang privat mache, hat genug Zeit, es in abstrahierter Form zu machen. Da komme ich mit der IDE zum Ziel und bin zufrieden. Meine Lötstation für Weller-RT war 2015 mein erstes A*-Projekt, da sitzt ein Nano auf Lochrasterkarte. Für das Display habe ich auf eine fertige Library zugegriffen, den Rest komplett selbst geschrieben. Die Tage stundenlang mit gelötet, funktioniert bestens. >> Also ist die Erklärung, dass die Arduino-Umgebung den ADC erst >> einschaltet, wenn man ihn braucht? > Da siehst du, warum viele Entwickler das Arduino System nicht mögen. Es > ist schlecht dokumentiert und lenkt von den Grundlagen ab. Hättest du > den ADC selbst programmiert, dann wäre dieser Fehler gar nicht > entstanden. Das ist zweifellos richtig, Dokumentation ist ein Fremdwort. Im Nachgang ist auch klar, warum das am Uno scheinbar funktionierte - da hatte ich nämlich den A/D an, bevor ich gemessen habe. >> herausbekommen, wie ich den ADC ausmachen kann. > Dafür gibt es ein Register, in dem man diverse Features deaktivieren > kann. Ich glaube es heißt Power Control Register oder so ähnlich. Du > wirst es sicher im Datenblatt finden. Ich habe es in der Lowpower.h gefunden. > Der Blick ins Datenblatt lohnt sich, denn wenn du das verstanden hast, > brauchst du die Verwirrung stiftenden Arduino Libraries nicht mehr. Mangels kritischer Anwendungen fehlt mir die Motivation. Was ich leider vergeblich suche, ist eine Arduino-Vorlage für Notepad++ oder SciTe, der Editor der IDE geht mal garnicht.
Manfred schrieb: > Was ich leider vergeblich suche, ist eine Arduino-Vorlage für Notepad++ > oder SciTe, der Editor der IDE geht mal garnicht. Nimm Visual Studio und Visual Micro da macht das Editieren mehr Spaß
:
Bearbeitet durch User
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.