Hi
Ich bin immer noch bei meinen ersten Versuchen mit dem Attiny85.
Beim testen des ADC's ist mir aufgefallen das wenn ich den ADC Eingang
(PB3) an den 5V Ausgang des Attiny85-Boards lege ziemlich viel Strom
fließt.
Der tiny verbraucht alleine nur ~16mA, mit OLED nur 17mA, aber sobald
ich den ADC Pin an die 5V lege springt der Strom auf ~60mA.
Dann habe ich gelesen das wenn die Pins als Eingänge geschaltet sind
diese ~100MOhm Eingangswiderstand haben und wenn der ADC samplt
1-100kOhm.
Was übersehe ich das den hohen Strom erklären könnte?
Das ist der Code den ich im Moment verwende:
1
#include <SSD1306_minimal.h>
2
SSD1306_Mini oled;
3
4
char buff[4]; // char array 4 digits
5
const int ADCPIN = 3; //PB3
6
int ADC1_READ = 0;
7
8
void disp_val() {
9
oled.startScreen();
10
oled.clear(); // Clears the display
11
oled.cursorTo(0, 0);
12
13
ADC1_READ = analogRead(ADCPIN); // read ADC PB0 value
14
itoa(ADC1_READ,buff,10); // convert int to char array
15
oled.printString(buff);
16
}
17
18
void setup() {
19
pinMode(ADCPIN, INPUT);
20
21
oled.init(0x3C); // Initializes the display to the specified address
Paul G. schrieb:> Beim testen des ADC's ist mir aufgefallen das wenn ich den ADC Eingang> (PB3) an den 5V Ausgang des Attiny85-Boards lege ziemlich viel Strom> fließt.
In deine „Blackbox“ in der Zeichnung gehen einfach mal so 12 V rein.
Irgendwer da drin wird daraus wohl die Spannung für den Controller
regeln. Erzeugt derjenige vielleicht eine Versorgungsspannung von
weniger als 5 V (bspw. 3,3 V), und du versuchst dann, an die Eingänge
von außen 5 V zu legen? In dem Falle öffnen die Eingangsschutzdioden
und führen Strom in Richtung Controller ab.
Wenn das nicht so ist, dann müsstest du uns etwas mehr über den Inhalt
deiner Blackbox verraten.
Es handelt sich um ein "Development Board" aus China, steht zwar
Digispark drauf...
Die 12V gehen soweit ich das verstehe von VIN in den 78L05 und der macht
5 Volt draus. Die Teile sind mit einem Bootloader versehen (vermutlich
Micronucleus) und ich programmiere den einfach mit der Arduino IDE.
Sketch hochladen, tiny an USB hängen und dann läd er es hoch.
Ach ja und das OLED ist so ein Standart SSD1306 I2C.
Jörg W. schrieb:>Erzeugt derjenige vielleicht eine Versorgungsspannung von> weniger als 5 V (bspw. 3,3 V), und du versuchst dann, an die Eingänge> von außen 5 V zu legen?
Nein, wenn ich VCC direkt am Tiny messe (PIN8) liegen dort ~5,1V an (bei
12,4V an VIN), und das selbe am 5V out Pin...
Paul G. schrieb:> Nein, wenn ich VCC direkt am Tiny messe (PIN8) liegen dort ~5,1V an (bei> 12,4V an VIN), und das selbe am 5V out Pin.
Dann habe ich keine Idee mehr aus der Ferne.
ps: Direkte Messung der VCC an einem ADC-Pin funktioniert auf diese
Weise sowieso nicht. Du musst ja gegen eine Referenzzspannug messen,
die gleich oder höher als die Eingangsspannung ist. VCC kann man
zwar als Referenzspannung benutzen, aber damit kannst du logischerweise
dann nicht VCC messen, denn das Ergebnis wird immer der Max-Wert sein
(Mess- und Referenzspannung sind gleich).
Du musst also deine Messspannung entweder so weit herunter teilen, dass
du gegen die interne Bandgap-Referenz von 1,1 V messen kannst, oder aber
du drehst den Spieß um und misst die Bandgap selbst gegen Vcc als
Referenz.
pps: Was für einen Sinn soll es eigentlich haben, die Spannung hinter
dem 5-V-Regler zu messen? Solange von den 12 V am Eingang halbwegs noch
was übrig ist, misst du doch an dieser Stelle sowieso einen konstanten
Wert.
Axel L. schrieb:> PB3 geht als USB Eingang über eine 3,6V Zehnerdiode und einem 68 Ohm> Widerstand auf Masse.
Ich denke auch, dass das der eigentliche Knackpunkt ist.
Wenn du einen Pin für was auch immer benutzt, schau in den Schaltplan
des Moduls um zu sehen, was da sonst noch so dran hängt. (Gilt generell
für jedes Mikrocontroller-Modul).
Jörg W. schrieb:> pps: Was für einen Sinn soll es eigentlich haben, die Spannung hinter> dem 5-V-Regler zu messen? Solange von den 12 V am Eingang halbwegs noch> was übrig ist, misst du doch an dieser Stelle sowieso einen konstanten> Wert.
Ich wollte einfach nur mal den ADC bei ~1024 sehen und dabei ist mir
halt aufgefallen das ziemlich viel Strom fließt was ja eigentlich nicht
sein dürfte. Ich probiere mal eine andere Spannungsquelle.
Wie ist das dann aber wenn ich genau weiß wieviel VCC der Tiny bekommt,
dann kann ich doch VCC als Refernz nehmen und durch 1024 teilen und dann
auf eine externe Spannungsquelle mit gleicher Erde anwenden oder geht
das nicht?
Ich habe gerade mal aus Spaß den ADC "INPUT" Pin mit dem Voltmeter
gemessen und alles andere abgeklemmt und da kommen 3,15V raus! Wie kann
den das sein?
Dann habe ich einen anderen Baugleichen Tiny genommen und da kommt das
selbe raus. Könnte das evtl etwas mit dem Bootloader zu tun haben? Der
nutzt ja den ADC PIN PB3 auch für die USB Kommunikation... nur dachte
ich bisher das er das nur nach dem Einschalten macht und nach ein paar
Sekunden sich die PINS normal verwenden lassen sollen. Ich versuche mal
PB0 als ADC input, der müsste frei sein...
Arduino Fanboy D. schrieb:> Paul G. schrieb:>> PB5> Der braucht meist eine Fusesetzung, damit er als vollwertiger ADC taugt.
Danke, ich schau mal ob ich das hinbekomme.
Mir schwant langsam das die Wahl eines solchen Fertigboards evtl. nicht
der richtige Weg war. Evtl. kann man ja das ganze USB gedöhns ablöten
bzw. die richtigen Tracks durchkratzen und so PB3/PB4 frei bekommen,
dann noch den Bootloader löschen und das ganze per USBasp hochladen...
Der USB Bottloader ist doch gerade das Hauptmerkmal dieses Moduls. Wenn
du das entfernst, bleibt nur noch der nackte Chip übrig. Dann kannst du
den gleich einzeln kaufen.
Ich sage mal so:
Ein Mikrocontroller mit genau 3 freien Pins ist halt ein bisschen knapp
zum Experimentieren. Wie wäre es stattdessen mit einem Arduino Nano
(compatible) für 1,50€ ?
Stefanus F. schrieb:> Der USB Bottloader ist doch gerade das Hauptmerkmal dieses Moduls. Wenn> du das entfernst, bleibt nur noch der nackte Chip übrig. Dann kannst du> den gleich einzeln kaufen.
Und wenn ich Reset an PB5 deaktiviere um dort den ADC zu bekommen kann
ich sowieso nicht mehr mit dem USBasp flashen, sofern ich das richtig
verstehe...
> Ich sage mal so:>> Ein Mikrocontroller mit genau 3 freien Pins ist halt ein bisschen knapp> zum Experimentieren. Wie wäre es stattdessen mit einem Arduino Nano> (compatible) für 1,50€ ?
Hab noch zwei davon rummliegen ;). Wollte halt mal einen auf
"Minimalismus" machen. Ich wechsle zum Nano.
Paul G. schrieb:> Und wenn ich Reset an PB5 deaktiviere um dort den ADC zu bekommen kann> ich sowieso nicht mehr mit dem USBasp flashen, sofern ich das richtig> verstehe...
Ganz Recht
Paul G. schrieb:> Hab noch zwei davon rummliegen ;).
Benutz die doch für reale Projekte, die du zuvor auf deinem Nano so
einigermaßen getestet hast, dass die Portierung dann kaum noch Bugs
erwarten lässt.