LED-Streifen-PWM funktioniert mit Raspberry Pi, funktioniert nicht mit Attiny45

Ich versuche, einen analogen RGBW-LED-Streifen durch PWM-Modulation zu steuern.

Bei Verwendung eines Attiny45 blinkt der LED-Streifen nur mit einer niedrigen Frequenz (ca. 2-3 Hz). Die Verwendung eines Raspberry Pi 3 zur Steuerung von PWM funktioniert jedoch problemlos, und bei jeder PWM-Frequenz versuche ich es.

Irgendwelche Ideen, woran das liegen könnte?

Weitere Informationen

In meinem Testaufbau versorge ich den Attiny45 mit Strom, indem ich ihn an den 3,3-V-Pin des Pi anschließe (vorerst, wird sich später ändern).

Ich habe den Attiny45 über SPI auf dem Pi mit dem Avrdude-Linuxspi-Modul programmiert, indem ich dieser Anleitung folge.

Das Setup ist bei beiden getesteten Controllern gleich:

Der Steuerstift mit PWM-Ausgang treibt einen MOSFET (IRLZ34NPBF), der eine der Farbleitungen auf dem Streifen mit Masse verbindet (die mit der Pi-Masse verbunden ist).

Ein externes Netzteil, das für die Verwendung mit meinem LED-Streifen ausgelegt ist, versorgt den Streifen mit Strom, wobei die Masse mit der Masse des Pi verbunden ist.

Ich habe alle verschiedenen PWM-Frequenzen auf dem Attiny45 ausprobiert (standardmäßig mit 8 MHz getaktet, daher sollte ich nicht einmal ein Flackern auf der niedrigsten PWM-Frequenz sehen, die 8 MHz / (256 * 1024) = ~ 30,5 Hz beträgt (laut offizieller Datenblatt , Seite 74)) und die gleiche Frequenz am Pi, die ohne Flackern funktioniert.

Der Attiny45 kann eine einzelne LED mit demselben MOSFET-Setup ohne Flackern ansteuern.

Schema:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Ich habe versucht, einen kleinen Widerstand (R1, 620 Ohm) zwischen Gate und Source des MOSFET hinzuzufügen, um einem schwebenden Zustand entgegenzuwirken, wenn die PWM ausgeschaltet ist, aber es macht keinen Unterschied.

Ich freue mich auf Ihren Input!

Sind Sie sicher, dass die Taktraten gleich programmiert sind?
Gibt es einen Unterschied in Vgs? >=4 V wird gegenüber 3,3 V bevorzugt
"Ich habe alle verschiedenen PWM-Frequenzen auf dem Attiny45 ausprobiert" - wie genau haben Sie das gemacht?
@ SunnyskyguyEE75 Die Sicherungen des Attiny45 sind so eingestellt, dass sie den internen Oszillator bei 8 MHz verwenden, wobei ich die im Datenblatt angegebene Formel verwende, um die PWM-Frequenz zu berechnen. Auf dem Raspberry Pi kann die PWM-Frequenz mit der Setup-Funktion GPIO.PWM() eingestellt werden. Leider kann ich die tatsächliche Ausgabe nicht messen, da ich kein Oszilloskop besitze ...
Auch @ SunnyskyguyEE75, der Raspberry Pi verwendet 3,3 V an seinen GPIO-Pins, und da ich den Attiny45 vom 3,3-V-Pin des Pi ausschalte, verwendet er auch 3,3 V. Ich habe versucht, es vom 5-V-Pin des Pi auszuschalten, aber das macht keinen Unterschied.
@BruceAbbott mit einem einfachen Programm, das nur PWM auf dem Attiny45 aktiviert und den Attiny neu programmiert und testet, während er alle verschiedenen Uhreinstellungen durchläuft.
Sie können f mit einem CD4060 oder einem ähnlichen Ripple Counter messen, durch 1e12+ oder ungefähr 4 Millionen teilen und eine LED verwenden, um eine niedrige f-Rate um 1 Hz zu zählen

Antworten (1)

Nun, nach einigem Herumbasteln stellte ich fest, dass es ohne Probleme funktioniert, wenn ich den attiny45 an einer bestimmten Stelle auf meinem Steckbrett-Setup erde. Daher denke ich, dass die Probleme, die ich hatte, nichts mit dem Chip selbst zu tun hatten, sondern nur ein seltsames Problem mit meinem Steckbrett/Überbrückungskabel/etc.

Tut mir leid, dass ich das nicht früher versucht habe und danke euch allen für eure Hilfe!