ATtiny45 PWM mit Transistor funktioniert nicht

OP #4382386
Lesenswert?

Hallo zusammen,
ich habe ein ganz dringendes Problem. Nämlich will ich ein paar LEDs 
über einen BC547 per PWM eines ATtiny45 steuern (Basiswiderstand 1K). 
Jetzt habe ich das Problem, dass die LED nach am Transistor nur 
Flackert, am PWM-Pin direkt kommt mein gewünschtes Ergebnis an. Ich habe 
schon ein wenig gelesen, unteranderem auch, dass angeblich die 
"PWM-Frequenz" nicht passen kann.

PS. : Ich habe den ATtiny45-20PU mit dem Arduino Bootloader mit 8Mhz 
internem Quarz geflasht und dann mein Programm übertragen - Funktioniert 
ja auch so weit.

Danke schon mal im Voraus!
MFG
programmierer12
(Firma: matzetronics) #4382404
Lesenswert?

Lukas D. schrieb:
> Jetzt habe ich das Problem, dass die LED nach am Transistor nur
> Flackert, am PWM-Pin direkt kommt mein gewünschtes Ergebnis an. Ich habe
> schon ein wenig gelesen, unteranderem auch, dass angeblich die
> "PWM-Frequenz" nicht passen kann.

Da wäre ein Schaltplan doch mal richtig hilfreich. Die meisten hier sind 
auch mit dem Programm für den Tiny nicht überfordert, so das du das uns 
ruhig zeigen kannst.

> mit dem Arduino Bootloader mit 8Mhz
> internem Quarz geflasht

Da liegt ein Irrtum vor. Der interne Oszillator hat gar keinen Quarz, 
sondern ist ein RC Oszillator.
OP #4382427
Lesenswert?

Matthias S. schrieb:
> Da wäre ein Schaltplan doch mal richtig hilfreich. Die meisten hier sind
> auch mit dem Programm für den Tiny nicht überfordert, so das du das uns
> ruhig zeigen kannst.

Sorry da hab ich nicht dran gedacht. Im Anhang habe ich den Schaltplan 
nach dem ich das Ganze aufgebaut habe. Ich habe aber als Stromversorgung 
einen TS 2940 verwendet, welcher auch zwei Kondensatoren spendiert 
bekommen hat ;)

Matthias S. schrieb:
> Da liegt ein Irrtum vor. Der interne Oszillator hat gar keinen Quarz,
> sondern ist ein RC Oszillator.

Das kann schon sein, da kenn ich mich noch nicht so gut aus schäm :)
Angehängte Dateien:
#4382437
Lesenswert?

Und du bist sicher, dass dein Tiny auf 8Mhz läuft und deine Ardunio 
Entwicklungsumgebung auch davon weiss? Nein, es reicht nicht, die Zahl 
irgendwo einzutragen. Du musst den Tiny schon mittels Fusebits auf diese 
8Mhz internen Takt umstellen. Tust du das nicht, dann läuft er wie alle 
AVR ab Werk mit ca. 1Mhz.
OP #4382466
Lesenswert?

Karl H. schrieb:
> Und du bist sicher, dass dein Tiny auf 8Mhz läuft und deine
> Ardunio
> Entwicklungsumgebung auch davon weiss? Nein, es reicht nicht, die Zahl
> irgendwo einzutragen. Du musst den Tiny schon mittels Fusebits auf diese
> 8Mhz internen Takt umstellen. Tust du das nicht, dann läuft er wie alle
> AVR ab Werk mit ca. 1Mhz.

Ja da bin ich mir sicher! Und ja ich habe den Tiny mit 8 Mhz intern mit 
dem Bootloader geflasht wodurch die Fusebits gesetzt worden sind.
#4382469
Lesenswert?

Karl H. schrieb:
> Du musst den Tiny schon mittels Fusebits auf diese
> 8Mhz internen Takt umstellen. Tust du das nicht, dann läuft er wie alle
> AVR ab Werk mit ca. 1Mhz.

Für alle, die sich an die Fuses nicht rantrauen oder in Ermangelung 
passenden Werkzeugs nicht rankommen:

1
#include <avr/power.h>
2

3
int main(void)
4
{
5
  clock_prescale_set(clock_div_1);
6
.
7
.
8
.
9
}

mfg.
#4382476
Lesenswert?

> Ja da bin ich mir sicher! Und ja ich habe den Tiny mit 8 Mhz intern mit
> dem Bootloader geflasht wodurch die Fusebits gesetzt worden sind.

Wie, genau, hast du das gemacht. Es ist absolut nicht üblich, dass mit 
dem Flashen eines Programmcodes (hier der Bootloader) auch die Fusebits 
neu geschrieben werden, solange der Benutzer dies nicht explizit 
anordnet.

Gut. Ein Argument für dich ist wohl, dass der Bootloader funktioniert, 
was er ganz sicher nicht tun würde, wenn der Tiny nicht mit 8Mhz laufen 
würde.

Trotzdem würde ich das kontrollieren.

Wie hast du die PWM realisiert? Mittels 'analogWrite'?
(Firma: matzetronics) #4382477
Lesenswert?

Als erstes fehlt da aber der obligatorische Abblockkondensator zwischen 
Vcc und GND. 100nF-10µF sind prima, der muss direkt nahe am Tiny sein.
Sonst ist die Schaltung schon mal ok.

Nun ist das Programm interessant...

Lukas D. schrieb:
> Und ja ich habe den Tiny mit 8 Mhz intern mit
> dem Bootloader geflasht

Können Bootloader Fuses setzen? Da kann ich nichts zu sagen - ich setze 
die immer mit dem Programmer.
Auf Verdacht schreib mal deine Taktfrequenz auf 1 MHz um, das wäre der 
Auslieferzustand des Tiny und reicht für ein Teelicht sicher auch.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren