Forum: Mikrocontroller und Digitale Elektronik [AVR] Fan Tacho wird nicht erkannt (ATMega8, ATTiny2313)


von Daniel H. (dhundt) Benutzerseite


Lesenswert?

Hallo Forum,

Ich versuche mit einem AVR-Controller ein normales (?) 12V PC Lüfter 
Tacho Signal auszuwerten.
Bisher hatte ich nur bei 1 von 4 Lüftern sowohl mit dem ATMega8 als auch 
ATTiny2313 Erfolg. Jedoch können auch die restliche 3  via PC 
(Mainboard/BIOS) ausgelesen werden. Irgendwas muss ich also falsch 
machen.

Der Aufbau ist dabei denkbar einfach:
FAN_GND => GND
FAN_12V => 12V
TACHO => µC-Pin
PWM => nicht verbunden

µC_GND => GND
µC_VCC => 5V
(µC-Grundschaltung mit 10k-Ohm Reset gegen VCC etc.)

Der µC-Pin wird via internem Pull-Up auf 5V gezogen (PORTxy auf 0, 
extern hab ich auch versucht) und sollte ja durch den Lüfter periodisch 
nach GND gezogen werden.

Weder per Pin-Change-Interrupt noch per Dauer-Polling bekomme ich diesen 
Zustand abgefragen. Immer liegt HIGH an.

Warum funktioniert das bei dem einen, bei den anderen allerdings nicht?
Wird da noch eine Zusatzschaltung benötigt?

Ich bedanke mich schonmal für eure hilfreichen Beiträge.

von Max D. (max_d)


Lesenswert?

Daniel H. schrieb:
> Der µC-Pin wird via internem Pull-Up auf 5V gezogen (PORTxy auf 0

Dazu macht man den zugehörigen Port auf 1 und nicht 0.

Andere Ideen (weil ja der angebliche externe Pu auch nicht tut):
- Widerstand zu groß (son Lüfter is flott) ?
- Mit dem Multimeter nachmessen ob der offene Port 1 wird
- LED anschließen (zwischen Vcc und Tachosignal, mit Vorwiderstand) die 
müsste dann flackern.

von Daniel H. (dhundt) Benutzerseite


Lesenswert?

Max D. schrieb:
> Port auf 1 und nicht 0
PORTxy war für internen Pull-Up natürlich auf 1 gesetzt, sorry ;-)


Max D. schrieb:
> der angebliche externe Pu auch nicht tut
> Widerstand zu groß
Interessantes Phänomen ohne internen Pull-Up:
µC-PIN > VCC (gibt HIGH, sonst LOW)
µC-PIN > Widerstand > VCC (gibt LOW bei 10k oder 330ohm?!?)
Das scheint mir das Problem zu sein. Aber wie kommt es dazu?


Max D. schrieb:
> LED anschließen

(losgelöst)
Tacho -> LED -> 330ohm -> VCC
Bei schnellen Umdrehungen ist das Flackern nicht wahrzunehmen. Drossle 
ich den Lüfter (via Finger), flackert die LED.
(Tacho scheint also nach GND bzw. <VCC zu ziehen)


Max D. schrieb:
> Mit dem Multimeter nachmessen ob der offene Port 1 wird
Mit externem wie internem Pull-Up liegt VCC an. Wobei der Controller wie 
oben beschrieben bei externem Widerstand nicht 1 liefert.

von Max D. (max_d)


Lesenswert?

€dit2: liest du wirklich PINxy ein? Und nicht zufällig PORTxy? Is mir 
auch schon passiert.

von Daniel H. (dhundt) Benutzerseite


Lesenswert?

Jap, lese PINx ein.
Er zeigt ja auch 1 an, wenn ich ihn direkt mit Vcc verbinde. Via 
externem Pull-up Widerstand allerdings nicht o.O

von Daniel H. (dhundt) Benutzerseite


Lesenswert?

Man sollte DDRx richtig setzen -.-'
Jetzt klappt alles.

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.