Hallo zusammen Ich beschäftige mich neben bei ein bisschen mit MC's Auf meiner Bastelliste steht nun eine Gruben Kopflampe. Diese enthält zwei LEDS(CREE Q5 @ 800mA) + (Cree® XLamp® MC-E4 4-fach Emitter @ Iges. = 700mA (2x2 in Serie)diese dann Parallel) Jeder der LED's hat einen LM3405 als Treiber. Gedacht war das ich die Treiber mit einem TINY 13 ( hat ja zwei PWM Ch. ) ansteuere. Heute habe ich einen Versuchsaufbau mit einem mega16 gemacht und dabei auf einen sehr komisches Problem gestoßen Zur Hardware. Der mega16 steckt im STK500. Von PortD 4. und 5. gehen die PWM Signal per "freiluftleitung" zu den LM3405. PWM frequenz hab ich auf ~280Hz (1MHz,8bit,Pre8) Das TestProgramm ist ganz einfach. Funktioniert auch, am anfang. Nach "zufalls Zeit oder Tasten kombo" wird der Helligskeit's wert B nicht mehr übernommen Hab dem Programm auch ein LCD zur kontrolle hinzugefügt. Wert B wird größer, aber bei COMPARE1B ignoriert. Was gibt es für Fehler Möglichkeiten? Kann es sein das die LM3405 sehr stark den AVR Stören? kann ich das Minimiren? Ich hoffe ihr könnt mir Helfen. Danke für eure Mühen Axel $regfile = "m16def.dat" $crystal = 1000000 $hwstack = 5 $swstack = 5 $framesize = 5 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8 Dim D As Byte Dim B As Byte Nah1 Alias Pina.0 Config Nah1 = Input Porta.0 = 1 Nah2 Alias Pina.1 Config Nah1 = Input Porta.1 = 1 Weg Alias Pina.2 Config Weg = Input Porta.2 = 1 Nah1 = 0 Nah2 = 0 Do If D < 249 Then If Nah1 = 0 Then D = D + 50 Waitms 200 End If End If If B < 249 Then If Nah2 = 0 Then B = B + 50 Waitms 200 End If End If If Weg = 0 Then D = 0 B = 0 Cls End If Compare1a = D Compare1b = B Loop End
Aaaaalso.. Habe nie mit Bascom gearbeitet, versuche Dir aber dennoch zu helfen. 1.) Du setzt Nah1 zweimal auf Input, Nah2 gar nicht... Tippfehler in der Zeile nach "Nah2 Alias Pina.1"? 2.) Warum PWM-Mode 8? Fuer LED-Dimmen ist eine einfache Fast-PWM voellig ausreichend. Wuerde auf irgendwas knapp ueber 1KHz gehen. Dann musst Du auch nur noch EINEN Register-Wert setzen um die Helligkeit zu bestimmen. Volker
Hi Oh hab den "Nah1" fehler behoben. ändert leider nichts. Eine geringe PWM Frequenz ist besser, da damit ( lt. Datenblatt LM3405 die effizenz besser wird bzw. man näher an den eingestellten Strom herran kommt.) Was ist fast PWM, gibts dazu Literatur online? --> söber mal ein bissel im Netz oder hat jemand einen guten link. Gruß Axel
> Was ist fast PWM, gibts dazu Literatur online? > --> söber mal ein bissel im Netz > oder hat jemand einen guten link. Es gibt sogar ein Datenblatt zum Mikrocontroller... Da steht sowas drin! ;) Ansonsten noch das AVR-Tutorial unter PWM. Volker
..und die Fast-PWM ist genau das, was Du zu benutzen versuchst! Du hast aber den Mode auf phasen- und frequenzkorrekte PWM gesetzt. Volker
Hi Volker Danke für deine Hilfe. Hm habe den Text bis lang nicht gelesen, da in "Assembler?" geschrieben und das verstehe ich nicht. okay jetzt also gelesen. Wenn ich das richtig verstehe wird bei Fast-PWM nur (bei 8 bit) bis 255 hoch gezählt. dann der timer auf 0 gesetzt und beginnt wieder. Bei dem wert X wird der Pin geschaltet. d.h. es wird nicht mehr runter gezählt. Das würde heißen die Frequenz verdoppelt sich. aber was mir noch nicht ganz klar ist, wie ich jetzt sage welcher Mode ich benutze Hat das was mit der schreibweise OCR1A bzw Compare1A zu tuhen... stehe da echt auf dem schlauch. axel
Wie gesagt, ich kenne Bascom nicht, gehe aber davon aus, dass "Pwm = 8" der Mode ist. Die Frequenz verdoppelt sind nicht. Der Rest ist korrekt: 1) Bei der 8-Bit PWM startet der Timer bei 0 und setzt den Ausgang HIGH oder LOW 2) Wird der Grenzwert erreicht, wird der Ausgang getogglet. 3) Wird 255 erreicht, wird im nachsten Schritt wieder bei 1) angefangen. Der Single-Slope zaehlt halt immer in eine Richtung. Volker
Hmm ne "Pwm = 8" Steht für die Auflösung des Timer's 8 = 255 9 = 512 10 1024 Was meinst du den ist der Grund warum das mit dem "Phase correct Mode" nicht geht?.
Dann benutzt er bei "Timer1 = Pwm" vermutlich sowieso die Fast-PWM Dann sehe ich eigentlich softwareseitig nur noch das Problem, dass die Register bei jedem loop gesetzt werden. Setz die doch nur, wenn sich die Werte tatsaechlich aendern und sag mal ob's was gebracht hat. Volker
Und da Du das Ding ja eh auf dem STK500 hast, benutz doch mal dessen LEDs anstatt der Treiber um Probleme mit diesen ausschliessen zu koennen. Volker
... und dieser Tipp ja so sowas von logisch, das ich mich jetzt seehr blöd fühle. Da klapp es jetzt auch ohne Probleme.... Viele Gedanken um nichts Gmrl Hast du zufällig ne Idee wie ich das jetzt händeln kann. habe jetzt den MC dierekt auf den EN/DIM eingang vom Lm3405 gelegt + 1kOhm Pulldown Wie kann ich das den wohl jetzt entstören?
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.