Przetwornica CC z trybami
Przetwornica CC z trybami
Witam
No i zaczynam nowy projekt, a jest to sterownik constant current czyli w diodę LED ma iść prąd stały odpowiedniej wartości a nie prąd max modulowany przez PWM.
Bazą tego rozwiązania jest układ przetwornicy step-down wykonany w oparciu o układ PT4105. Układ PT4105 jest typową przetwornicą Step-down z pomiarem prądu na rezystorze szeregowym, ale ma niewątpliwą zaletę, czyli stosunkowo niskie napięcie FB (pomiarowe) wartości 0,2V.
W datasheet'ie, jest opisana możliwość sterowania układem przetwornicy przez scałkowany sygnał PWM, lecz jest jedno ale, a mianowicie napięcie zasilania procesora....
Do zasilania procesora potrzebujemy napięcie z zakresu 1,8 do 5,5V (ATTiny 13), napięcie zasilania przetwornicy może być jednak wyższe od 5,5V (ze względu na podtrzymanie możemy dodać około 0,6V), wtedy by trzeba zasilać z osobnego stabilizatora, co czasem bywa uciążliwe, a gdy użyjemy przetwornicę step-up/down, wręcz niemożliwe a układ ma być w założeniu dość uniwersalny. Postanowiłem zasilać procesor z napięcia zasilającego LEDa, jednak wiąże się to z jednym ograniczeniem, a mianowicie minimalnym prądem LEDa, czyli dioda musi być zasilania pewnym minimalnym napięciem wystarczającym do pracy uC. W moim przypadku jest to 1,8V + 0,2V (dioda Shotky’ego, przy małym prądzie), czyli około 2V, biorąc jednak pod uwagę pewien zapas energii kondensatora podtrzymującego, można przyjąć napięcie 2,5V
Ideę układu przedstawia poniższy schemat:
Dla uproszczenia jednak początkowo rozpatrywać będziemy poniższy schemat:
Klasyczny obwód jest zbudowany z elementów R1, R2, R3, R4, C1, D1 (LED).
Działa to tak: Przepływ prądu przez Diodę D1 oraz R1, powoduje na tym ostatnim spadek napięcia, który jest dostarczany do wejścia FB (feedback – sprzężenie zwrotne), a układ przetwornicy dąży do utrzymania stałej wartości tego napięcia na poziomie 200mV (0,2V), w konsekwencji stabilizując prąd płynący przez LEDa.
Zmianę prądu (zmniejszenie) możemy dokonać "oszukując" niejako układ przetwornicy i podając dodatkowe napięcie dodające się do napięcia Ur1 (czyli R1 x Ir1, które równe jest Iled). Realizowane jest to przez wywołanie spadku napięcia na dodatkowym rezystorze R2. Spadek napięcia na tym rezystorze wywołany jest natomiast przepływem prądu w obwodzie R1, R2, R3 (na razie R4 pomijam, potem wyjaśnię). Z tym, że Rezystory R2 i R3 stanowią dzielnik rezystancyjny, który powoduje zmniejszenie napięcia sterującego do wartości maksymalnej 200mV na rezystorze R2.
Teraz zasada działania regulacji, ponieważ układ dąży do utrzymania stałego napięcia na wejściu FB, a nie spadku napięcia na R1. Biorąc powyższe pod uwagę mamy ogólny wzór:
Ur1 + Ur2 = 200mV
Z tego wynika, że wymuszając spadek napięcia wartości 200mV na R2 możemy uzyskać prąd LEDa 0,0A (przynajmniej teoretycznie, gdyż ta wartość jest ograniczona koniecznością zasilania procesora)
Dalej:
Ur1 = R1 x Iled (w przybliżeniu, lecz dokładnym o czym potem)
Ur2 = R2 x I2 (nazwijmy tak na razie w skrócie)
A:
I2 = Uc1 / (R3 + R2 +R1)
Wziąwszy jednak pod uwagę, że R1<<R2, możemy tę wartość pominąć w obliczeniach, co sygnalizowałem wcześniej. Czyli ostatecznie wzór przyjmuje postać:
I2 = Uc1 / (R3 + R2)
Teraz pojawia się problem, a mianowicie Uc1. Ponieważ napięcie zasilania uC zmienia się stosownie do prądu płynącego przez LEDa, to wahaniom ulega również napięcie na wyjściu portu PWM, co powoduje przenoszenie tych zmian na napięcie sterujące czyli Ur2. Nie jest jednak źle, gdyż układ dąży do stabilności samoczynnie, ze względu, że jest to ujemne sprzężenie zwrotne.
Przeanalizujmy:
Zwiększając napięcie Uc1, wymuszamy przepływ większego prądu przez dzielnik R2, R3, co powoduje zwiększenia spadku napięcia na R2, a więc z równania
200mV = Ur2 +Ur1
wynika, że przetwornica będzie obniżać prąd LEDa, do uzyskania mniejszego spadku na R1 zachowując 200mV na wejściu FB.
Tutaj pojawia się nowe zjawisko, czyli zmniejszenie napięcia zasilającego procesor, a w konsekwencji obniżenie napięcia Uc1, czyli też Ur2. Przetwornica chcąc zachować stałą wartość napięcia na FB, będzie podnosić napięcie zasilające LED, a w konsekwencji prąd i spadek napięcia na R1, a to znowu podniesie napięcie zasilania uC i w konsekwencji Uc1.
Układ dąży co prawda do stabilności, lecz mogą pojawiać się gasnące oscylacje przy zmianach jasności
Głównym elementem ustalającym częstotliwość owych oscylacji będzie kondensator podtrzymujący zasilanie uC.
Pomyślałem więc, że uC powinien sam mierzyć napięcie na R1 i odpowiednio programowo reagować na jego zmiany, zwiększając i zmniejszając wartość PWM, co też może powodować oscylacje, lecz w dużo mniejszym zakresie.
Innym sposobem, jest stabilizacja napięcia PWM, ale tutaj trzeba by użyć diody zenera o stosunkowo niskim napięciu przewodzenia, lub np.: 2 szt. diod krzemowych połączonych szeregowo w kierunku przewodzenia.
Czyli coś takiego:
Czy koledzy mają jakieś uwagi do mojego toku rozumowania, lub może lepsze pomysły?
Pozdrawiam
No i zaczynam nowy projekt, a jest to sterownik constant current czyli w diodę LED ma iść prąd stały odpowiedniej wartości a nie prąd max modulowany przez PWM.
Bazą tego rozwiązania jest układ przetwornicy step-down wykonany w oparciu o układ PT4105. Układ PT4105 jest typową przetwornicą Step-down z pomiarem prądu na rezystorze szeregowym, ale ma niewątpliwą zaletę, czyli stosunkowo niskie napięcie FB (pomiarowe) wartości 0,2V.
W datasheet'ie, jest opisana możliwość sterowania układem przetwornicy przez scałkowany sygnał PWM, lecz jest jedno ale, a mianowicie napięcie zasilania procesora....
Do zasilania procesora potrzebujemy napięcie z zakresu 1,8 do 5,5V (ATTiny 13), napięcie zasilania przetwornicy może być jednak wyższe od 5,5V (ze względu na podtrzymanie możemy dodać około 0,6V), wtedy by trzeba zasilać z osobnego stabilizatora, co czasem bywa uciążliwe, a gdy użyjemy przetwornicę step-up/down, wręcz niemożliwe a układ ma być w założeniu dość uniwersalny. Postanowiłem zasilać procesor z napięcia zasilającego LEDa, jednak wiąże się to z jednym ograniczeniem, a mianowicie minimalnym prądem LEDa, czyli dioda musi być zasilania pewnym minimalnym napięciem wystarczającym do pracy uC. W moim przypadku jest to 1,8V + 0,2V (dioda Shotky’ego, przy małym prądzie), czyli około 2V, biorąc jednak pod uwagę pewien zapas energii kondensatora podtrzymującego, można przyjąć napięcie 2,5V
Ideę układu przedstawia poniższy schemat:
Dla uproszczenia jednak początkowo rozpatrywać będziemy poniższy schemat:
Klasyczny obwód jest zbudowany z elementów R1, R2, R3, R4, C1, D1 (LED).
Działa to tak: Przepływ prądu przez Diodę D1 oraz R1, powoduje na tym ostatnim spadek napięcia, który jest dostarczany do wejścia FB (feedback – sprzężenie zwrotne), a układ przetwornicy dąży do utrzymania stałej wartości tego napięcia na poziomie 200mV (0,2V), w konsekwencji stabilizując prąd płynący przez LEDa.
Zmianę prądu (zmniejszenie) możemy dokonać "oszukując" niejako układ przetwornicy i podając dodatkowe napięcie dodające się do napięcia Ur1 (czyli R1 x Ir1, które równe jest Iled). Realizowane jest to przez wywołanie spadku napięcia na dodatkowym rezystorze R2. Spadek napięcia na tym rezystorze wywołany jest natomiast przepływem prądu w obwodzie R1, R2, R3 (na razie R4 pomijam, potem wyjaśnię). Z tym, że Rezystory R2 i R3 stanowią dzielnik rezystancyjny, który powoduje zmniejszenie napięcia sterującego do wartości maksymalnej 200mV na rezystorze R2.
Teraz zasada działania regulacji, ponieważ układ dąży do utrzymania stałego napięcia na wejściu FB, a nie spadku napięcia na R1. Biorąc powyższe pod uwagę mamy ogólny wzór:
Ur1 + Ur2 = 200mV
Z tego wynika, że wymuszając spadek napięcia wartości 200mV na R2 możemy uzyskać prąd LEDa 0,0A (przynajmniej teoretycznie, gdyż ta wartość jest ograniczona koniecznością zasilania procesora)
Dalej:
Ur1 = R1 x Iled (w przybliżeniu, lecz dokładnym o czym potem)
Ur2 = R2 x I2 (nazwijmy tak na razie w skrócie)
A:
I2 = Uc1 / (R3 + R2 +R1)
Wziąwszy jednak pod uwagę, że R1<<R2, możemy tę wartość pominąć w obliczeniach, co sygnalizowałem wcześniej. Czyli ostatecznie wzór przyjmuje postać:
I2 = Uc1 / (R3 + R2)
Teraz pojawia się problem, a mianowicie Uc1. Ponieważ napięcie zasilania uC zmienia się stosownie do prądu płynącego przez LEDa, to wahaniom ulega również napięcie na wyjściu portu PWM, co powoduje przenoszenie tych zmian na napięcie sterujące czyli Ur2. Nie jest jednak źle, gdyż układ dąży do stabilności samoczynnie, ze względu, że jest to ujemne sprzężenie zwrotne.
Przeanalizujmy:
Zwiększając napięcie Uc1, wymuszamy przepływ większego prądu przez dzielnik R2, R3, co powoduje zwiększenia spadku napięcia na R2, a więc z równania
200mV = Ur2 +Ur1
wynika, że przetwornica będzie obniżać prąd LEDa, do uzyskania mniejszego spadku na R1 zachowując 200mV na wejściu FB.
Tutaj pojawia się nowe zjawisko, czyli zmniejszenie napięcia zasilającego procesor, a w konsekwencji obniżenie napięcia Uc1, czyli też Ur2. Przetwornica chcąc zachować stałą wartość napięcia na FB, będzie podnosić napięcie zasilające LED, a w konsekwencji prąd i spadek napięcia na R1, a to znowu podniesie napięcie zasilania uC i w konsekwencji Uc1.
Układ dąży co prawda do stabilności, lecz mogą pojawiać się gasnące oscylacje przy zmianach jasności
Głównym elementem ustalającym częstotliwość owych oscylacji będzie kondensator podtrzymujący zasilanie uC.
Pomyślałem więc, że uC powinien sam mierzyć napięcie na R1 i odpowiednio programowo reagować na jego zmiany, zwiększając i zmniejszając wartość PWM, co też może powodować oscylacje, lecz w dużo mniejszym zakresie.
Innym sposobem, jest stabilizacja napięcia PWM, ale tutaj trzeba by użyć diody zenera o stosunkowo niskim napięciu przewodzenia, lub np.: 2 szt. diod krzemowych połączonych szeregowo w kierunku przewodzenia.
Czyli coś takiego:
Czy koledzy mają jakieś uwagi do mojego toku rozumowania, lub może lepsze pomysły?
Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Piszmy po polsku, wszak jesteśmy Polakami.
- Calineczka
- Posty: 7578
- Rejestracja: niedziela 11 lis 2007, 20:19
- Lokalizacja: Wejherowo
- Kontakt:
...fajnie wszystko wytłumaczyłeś i rozrysowałeś
Nie mogę jednak pojąć ostatniej kwestii-jak i dlaczego chcesz stabilizować sygnał PWM który wychodzi z wyjścia procka?Przecież ten sygnał ma być zmienny, scałkowany da napięcie w jakimś tam zakresie, a jak dorzucisz równolegle owe dwie diody to ograniczysz max. napięcie na nich do 1,4V. Na anoda D3 katoda D4 będziesz miał falę prostokątną o max amplitudzie 1,4V i zmiennym wsp. wypełnienia-o to Ci chodziło?Taki FUZZ do gitary tylko do driverka? Coś w tym jest...
A jak by tak stabilizowac nap.zasilające procek?FUZZ-a zrobić np. z 4ech diodek, zasilanie będzie ok. 2,8V, jak będa już wahania nap. zasilającego mozna spróbowac z trzech.....a może jednak dioda zenera niskonapięciowa?Oczywiście z rez.szeregowym w zasilaniu procka/diody/diodek.
Nie mogę jednak pojąć ostatniej kwestii-jak i dlaczego chcesz stabilizować sygnał PWM który wychodzi z wyjścia procka?Przecież ten sygnał ma być zmienny, scałkowany da napięcie w jakimś tam zakresie, a jak dorzucisz równolegle owe dwie diody to ograniczysz max. napięcie na nich do 1,4V. Na anoda D3 katoda D4 będziesz miał falę prostokątną o max amplitudzie 1,4V i zmiennym wsp. wypełnienia-o to Ci chodziło?Taki FUZZ do gitary tylko do driverka? Coś w tym jest...
A jak by tak stabilizowac nap.zasilające procek?FUZZ-a zrobić np. z 4ech diodek, zasilanie będzie ok. 2,8V, jak będa już wahania nap. zasilającego mozna spróbowac z trzech.....a może jednak dioda zenera niskonapięciowa?Oczywiście z rez.szeregowym w zasilaniu procka/diody/diodek.
Bo widzisz wartość napięcia sygnału PWM, będzie się zmieniać odwrotnie proporcjonalnie do współczynnika wypełnienia, ale ze zwłoką wyznaczoną przez stałą czasową określoną przez pojemność kondensatora podtrzymującego i wartość prądu pobieranego przez procek. Otrzymamy w ten sposób około 1 - 2s ściemnianie lub rozjaśnianie ale odwrotne. Załóżmy przy przełączaniu trybu na jaśniejszy, wskoczy średni i rozjaśni sie do właściwego.Calineczka pisze: ...fajnie wszystko wytłumaczyłeś i rozrysowałeś
Nie mogę jednak pojąć ostatniej kwestii-jak i dlaczego chcesz stabilizować sygnał PWM który wychodzi z wyjścia procka?
A może tak zostawić jako "dodatkowy bajer"
Dlatego chcę stabilizować wartość sygnału PWM przed całkowaniem, czyli przy max wypełnieniu osiągnie tylko watrość napięcia stabilizacji. Zostanie tylko ograniczona amplituda, a nie wartość współczynnika wypełnienia, czyli po scałkowaniu wartość napięcia Uc1 będzie tylko procentowo niziższa, ale stabilna i niezależna od napięcia zasilania.Calineczka pisze: Przecież ten sygnał ma być zmienny, scałkowany da napięcie w jakimś tam zakresie, a jak dorzucisz równolegle owe dwie diody to ograniczysz max. napięcie na nich do 1,4V. Na anoda D3 katoda D4 będziesz miał falę prostokątną o max amplitudzie 1,4V i zmiennym wsp. wypełnienia-o to Ci chodziło?Taki FUZZ do gitary tylko do driverka? Coś w tym jest...
Pozdrawiam
Właśnie alternatywą było zastosowanie stabilizacji napięcia procesorka, ale redukując napięcie źródła zasilania (przy step-down) trzeba by zastosować dodatkowy stabilizator szeregowy, lub równoległy, co jednak przy zmianie przetwornicy na step-up już by było niemożliwe do zrealizowania. ogólnym założeniem projektu, była możliwość wykorzystania samego driverka niezależnie od zastosowanego układu przetwornicy.Calineczka pisze: A jak by tak stabilizowac nap.zasilające procek?FUZZ-a zrobić np. z 4ech diodek, zasilanie będzie ok. 2,8V, jak będa już wahania nap. zasilającego mozna spróbowac z trzech.....a może jednak dioda zenera niskonapięciowa?Oczywiście z rez.szeregowym w zasilaniu procka/diody/diodek.
A jak wiesz, zasilając procka z napięcia LEDa jesteśmy ograniczeni jego wartością, do tego zmienną w zależności od rodzaju pracy.
Prace trwają nadal.
Korzystając z drugiego schematu (uproszczonego) postanowiłem sprawdzić skuteczność regulacji PWM.
Zacząłem od obliczeń.
Założenia:
Napięcie zasilania 5V (dla procka też)
Prąd diody 200mA
Rezystor R4 - 10kΩ
Rezystor R3 postanowiłem przyjąc o podobnym zakresie.
Ufb = 0,2V
Uz = 5V (podobnie na wyjściu PWM, impulsy napięcia około 5V)
Stosunek rezystancji w dzielniku:
Uz / Ufb = 5V / 0,2V = 25
Mamy R4 więc najprostrzym rozwiązaniem będzie przyjąć
R4+R3+R2=25kΩ
Z tego wynika, że:
R2 = (R4+R3+R2)/25 = 1kΩ
Mamy więc:
R3 = (R4+R3+R2) - R4 - R2 = 25kΩ - 10kΩ - 1kΩ = 14kΩ
Co jak wiadomo jest rezystancją występującą w naturze
Teraz R1
R1 = Ufb / Iled = 200mV / 200mA = 1Ω
Mamy więc ostatecznie:
R1 = 1Ω
R2 = 1kΩ
R3 = 14kΩ
R4 = 10kΩ
Ale biorąc pod uwagę że: "w teorii nie ma różnicy pomiędzy teorią a praktyką, w praktyce jest" należało zmniejszyć wartość R3 do 12kΩ, aby osiągnąć pełny zakres regulacji, ze względu na to, że jednak wartość napięcia PWM jest mniejsza niż 5V,a Ufb wynosi 206mV.
Oto układ próbny:
Uzyskano prądy:
Imax = 206mA
Imin = około 1mA (wartość się zmieniała przy kolejnych próbach od 1,2mA do 0,9mA)
Po napisaniu programu zmieniającego liniowo wartość PWM w górę i w dół zauważyłem:
- stosunkowo szybką zmianę jasności na niskich prądach
- bardzo wolną zmianę jasności przy dużych prądach
- prąd zmianiający się prawie liniowo
Jest to zjawisko bardzo optymistycznie napawające, gdyż potrzbna jest dokładniejsza regulacja prądu przy zbliżaniu się do parametrów granicznych LED, niż na niskich jasnościach.
Pomierzyłem oscyloskopem faktyczny prąd LEDa zasilanego z przetwornicy. Kondensator wyjściowy 10µF warstwowy, czyli układ standardowy z datasheet'a
wykres na oscyloskopie wyszedł podejrzany... bardzo gruba krecha. Pomyślałem, no tak przecież ona pracuje z częstotliwością około 500kHz. Zmniejszałem podstawę czasu, aż przy 0,5µs/dz uzyskałem taki oto obrazek:
Czułość pionowa to 100mV/dz, pomiar na rezystorze szeregowym 1Ω.
No cóż wychodzi na to, że przetwornice constant current też nie są tak do końca "constant"
Pozdrawiam
PS: Niestety podczas prób kolejnego programu, odwrotnie wsadziłem procek i teraz nie daje pełnego napięcia na wyjściu PWM, a miało być tak pięknie
Ostatnio zmieniony środa 01 kwie 2015, 13:04 przez Pyra, łącznie zmieniany 1 raz.
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Piszmy po polsku, wszak jesteśmy Polakami.
- Calineczka
- Posty: 7578
- Rejestracja: niedziela 11 lis 2007, 20:19
- Lokalizacja: Wejherowo
- Kontakt:
Rozdzielczość pionowa to było 0,1V/dz, rezystor pomiarowy to 1Ω więc prąd ciągły to te zmierzone 206mA, a szczyt to by było jakieś 320mA przez 30 - 40ns, czyli o 50%więcej niż ustalonyCalineczka pisze: przepraszam za może głupie pytanie ale już zasypiam....to jaki Ci wyszedł prąd maksymalny/szczyt amplitudy?
Hłe, hłe hłe, a co mu będę żałowałCalineczka pisze:Fajnie wygląda tyci kondensator SMD na grubasnych kabelkach
Nie będę protestował u mnie w sklepach mają tylko tę szerszą wersję.Calineczka pisze:p.s. procek w wersji SO8(Attiny13V-10SSU) mogem podesłać
Ponownie zabrałem się za pracę, tym razem chciałem sprawdzić jak to naprawdę jest ze zjawiskiem wpływu zmian napięcia zasilania procka (LEDa) na wartość prądu. Otóż, jednak przy zmianie trybów w górę, zjawisko bezwładności jest niezauważalne, kondensator bardzo szybko się doładowuje.
Jednak przy zmianie trybu w dół mamy tak, że jasność spada bardzo nisko i potem podnosi się do właściwej.
Widać to na poniższym oscylogramie.
Niestety metoda fotografowania oscyloskopu przy wolnych przebiegach nie jest doskonała, więc mamy dwa kolejne przebiegi. Nas interesuje ten na którym prąd zchodzi mocno w dół i potem wraca do ustalonej pozycji.
Mignięcie trwa około 25ms, jest jednak zauważalne.
Ostatnio zmieniony środa 01 kwie 2015, 13:09 przez Pyra, łącznie zmieniany 1 raz.
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Piszmy po polsku, wszak jesteśmy Polakami.
- Calineczka
- Posty: 7578
- Rejestracja: niedziela 11 lis 2007, 20:19
- Lokalizacja: Wejherowo
- Kontakt:
Prąd górny ustalony na 200mA dolny na około 100mA, a "przygaśnięcie prawie do zera.Calineczka pisze: hmm, a jaka jest amplituda prądu?
Co ciekawe PWM ustawino na 255 i 1 czyli min i max, będzie trzeba przeliczyć dzielnik napięcia starującego.
Bardzo zastanawia mnie kształt dołka, według mnie powinien być skok na minimum i potem "powoli" do góry, z szybkością spadku napięcia zasilania procka, a tu jakoś odwrotnie jest.....
To też działa na mnie uspokajająco, najgorszy wariant odpada.Calineczka pisze:Dobrze, że przygasa i wraca do jasności a nie daje po gałach i wtedy się uspokaja
Kondensator na podtrzymaniu 47µF, dioda 1N4148, czyli zwkała impulsowa. Na Shotky'ego zyskamy trochę napięcia sterującego, co wiąże się z niższymi prądami na LEDa.Calineczka pisze: Z ciekawości, podłaczałeś może większy kondenastor na zasilanie procka, po jakiejś diodzie schottkyego, rzędu setek uF?
To zjawisko występuje tylko z podtrzymaniem, przy zasilaniu bezpośredno z napięcia LEDa tego nie ma. Ale jak na razie podtrzymanie jest mi konieczne do realizacji zmiany trybów.
Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Piszmy po polsku, wszak jesteśmy Polakami.
- Calineczka
- Posty: 7578
- Rejestracja: niedziela 11 lis 2007, 20:19
- Lokalizacja: Wejherowo
- Kontakt:
Dzięki, mam, trochę się tej elektroniki narozbierało
Do prób potrzebuję w zwykłej obudowie przewlekanej, to kilka sztuk się znajdzie.
Wczoraj sprawdzałem charakterystyki przewodzenia diod krzemowych, dziś sobie oliczę dzielniki napięcia sterującego i zabieram się za pomiary ogranicznika diododwego. Pomyślełem o 2 szt diod włączonych w kierunki przewodzenia, przy tak małych prądach powinienem dostać jakieś 1 - 1,2V napięcia ograniczającego.
Pozdrawiam
Do prób potrzebuję w zwykłej obudowie przewlekanej, to kilka sztuk się znajdzie.
Wczoraj sprawdzałem charakterystyki przewodzenia diod krzemowych, dziś sobie oliczę dzielniki napięcia sterującego i zabieram się za pomiary ogranicznika diododwego. Pomyślełem o 2 szt diod włączonych w kierunki przewodzenia, przy tak małych prądach powinienem dostać jakieś 1 - 1,2V napięcia ograniczającego.
Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Piszmy po polsku, wszak jesteśmy Polakami.
- Calineczka
- Posty: 7578
- Rejestracja: niedziela 11 lis 2007, 20:19
- Lokalizacja: Wejherowo
- Kontakt:
Witam
Dziś, podczas drzemki syna, przystąpiłem do dalszych prac.
Ponieważ chciałem zlikwidować widoczny dołek na oscylogramie, przystąpiłem do zmian układowych. Potrzebowałem dwóch diod krzemowych, które włączone w kierunku przewodzenia w układ PWM miały ograniczać wartość impulsu z procka, dokonałem pomiaru napięcia przwodzenia dwu diod połączonych szeregowo i otrzymałem wynik 1,8V. Coś nie tak Pomierzyłem obie diody osobno i okazało się, że jedna miała 0,598V a druga 1,213V, co w tym najciekawsze ta ostatnia pracowała w układzie podtrzymania napięcia procka. Wychodzi na to, że napięcie zasilania procka spadało niebezpiecznie blisko granicy poprawnego działania.
Na początek więc wyszukałem w szpargałach diodę Shotky'ego 1N5819 i.... widoczne mrygnięcie zniknęło. Po podłączeniu oscyloskopu na rezystor pomiarowy, okazało się, że dołek co prawda jest ale maleńki i zgodny z teorią
Kolejny raz wyszło, że wszystkie elementy przed zabudową trzeba sprawdzić i "nikomu nie wolno ufać"
Oto oscylogram zmian prądu LEDa z 200mA na 50mA. Teraz dołek stanowi dużo mniejszy procent prądu ale i tak go zwalczymy
Pozdrawiam
Dziś, podczas drzemki syna, przystąpiłem do dalszych prac.
Ponieważ chciałem zlikwidować widoczny dołek na oscylogramie, przystąpiłem do zmian układowych. Potrzebowałem dwóch diod krzemowych, które włączone w kierunku przewodzenia w układ PWM miały ograniczać wartość impulsu z procka, dokonałem pomiaru napięcia przwodzenia dwu diod połączonych szeregowo i otrzymałem wynik 1,8V. Coś nie tak Pomierzyłem obie diody osobno i okazało się, że jedna miała 0,598V a druga 1,213V, co w tym najciekawsze ta ostatnia pracowała w układzie podtrzymania napięcia procka. Wychodzi na to, że napięcie zasilania procka spadało niebezpiecznie blisko granicy poprawnego działania.
Na początek więc wyszukałem w szpargałach diodę Shotky'ego 1N5819 i.... widoczne mrygnięcie zniknęło. Po podłączeniu oscyloskopu na rezystor pomiarowy, okazało się, że dołek co prawda jest ale maleńki i zgodny z teorią
Kolejny raz wyszło, że wszystkie elementy przed zabudową trzeba sprawdzić i "nikomu nie wolno ufać"
Oto oscylogram zmian prądu LEDa z 200mA na 50mA. Teraz dołek stanowi dużo mniejszy procent prądu ale i tak go zwalczymy
Pozdrawiam
Ostatnio zmieniony środa 01 kwie 2015, 13:11 przez Pyra, łącznie zmieniany 1 raz.
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Piszmy po polsku, wszak jesteśmy Polakami.
- Calineczka
- Posty: 7578
- Rejestracja: niedziela 11 lis 2007, 20:19
- Lokalizacja: Wejherowo
- Kontakt:
Pyra, nie bardzo widzę cel niezależnego od FB step-down`a pomiaru VR1 (prąd diody) na ADC i sterowania nim PWM`a.
Wydaje mi się, że FB jest po pierwsze na tyle szybki i precyzyjny, że w tym przypadku nie ma chyba większej potrzeby liczyć go dodatkowo na ADC.
ADC w ATtiny nie jest demonem prędkości, potrzebuje trochę cykli na pomiar (podwójne całkowanie), co więcej dochodzi ci dość znaczna stała czasowa na filtrowaniu PWM`a - to wszystko da dość sporą bezwładność układu regulacyjnego.
Co więcej regulacja ta wpływać będzie negatywnie na napięcie zasilania MCU, a więc i na poziom H portu, a przez to i na średnią wartość PWM - i sprzężenie to jest dodatnie, więc może się to mocno bujać.
Nie zaglądałem do datasheet`ów tego układu (step-down), ale może ma on jakieś wejście OE lub DIM/PWM, gdzie cyfrowo można by wejść prosto sygnałem z portu CPU.
Kiedyś dla Arka robiłem soft, który właśnie w ten sposób sterował step-down`em i z tego co pamiętam, udało się to pożenić.
Mechanizm ten zastosowany był m.innymi np. w sekwencji wyboru jasności w naszym driverku df&cali.
Natomiast jeśli chodzi o separację zasilania MCU, to w jednym z projektów wraz z Arkiem rozważaliśmy puszczenia zasilania przez R na zenerka 5V1 niezależnie od step-up`a.
Procek nie bierze zbyt wiele pradu (1-2mA) więc strata będzie żadna, a masz jako taką stabilność napięcia niezależnie od wypełnienia (i stanu!) LED`a.
Zwróć uwagę, że w Twoim układzie nie możesz zgasić LED`a na dłużej niż chwilę, bo poleci ci CPU... a więc część zwłaszcza "ciemnych" trybów sekwencyjnych nie uda się na tym osiągnąć.
Może nieco wybiegam w przyszłość, ale ja też przez wiele nocy podobne tematy roztrzaskiwałem i niestety czasami musiałem szczytne idee zarzucić - bo najzwyczajniej albo czegoś osiągnąć nie dało, albo robiła się mało elegancka "rzeźba".
Powodzenia,
Wydaje mi się, że FB jest po pierwsze na tyle szybki i precyzyjny, że w tym przypadku nie ma chyba większej potrzeby liczyć go dodatkowo na ADC.
ADC w ATtiny nie jest demonem prędkości, potrzebuje trochę cykli na pomiar (podwójne całkowanie), co więcej dochodzi ci dość znaczna stała czasowa na filtrowaniu PWM`a - to wszystko da dość sporą bezwładność układu regulacyjnego.
Co więcej regulacja ta wpływać będzie negatywnie na napięcie zasilania MCU, a więc i na poziom H portu, a przez to i na średnią wartość PWM - i sprzężenie to jest dodatnie, więc może się to mocno bujać.
Nie zaglądałem do datasheet`ów tego układu (step-down), ale może ma on jakieś wejście OE lub DIM/PWM, gdzie cyfrowo można by wejść prosto sygnałem z portu CPU.
Kiedyś dla Arka robiłem soft, który właśnie w ten sposób sterował step-down`em i z tego co pamiętam, udało się to pożenić.
Zgadza się, dlatego nieco zbaczając z wątku dobrym pomysłem jest ustawianie poziomów jasności w rozkładzie logarytmicznym (najlepiej przy podstawie 2, bo binarnie się to super łatwo robi) - daje to optycznie dość równe odstępy jasności.Pyra pisze:Po napisaniu programu zmieniającego liniowo wartość PWM w górę i w dół zauważyłem:
- stosunkowo szybką zmianę jasności na niskich prądach
- bardzo wolną zmianę jasności przy dużych prądach
- prąd zmianiający się prawie liniowo
Mechanizm ten zastosowany był m.innymi np. w sekwencji wyboru jasności w naszym driverku df&cali.
Natomiast jeśli chodzi o separację zasilania MCU, to w jednym z projektów wraz z Arkiem rozważaliśmy puszczenia zasilania przez R na zenerka 5V1 niezależnie od step-up`a.
Procek nie bierze zbyt wiele pradu (1-2mA) więc strata będzie żadna, a masz jako taką stabilność napięcia niezależnie od wypełnienia (i stanu!) LED`a.
Zwróć uwagę, że w Twoim układzie nie możesz zgasić LED`a na dłużej niż chwilę, bo poleci ci CPU... a więc część zwłaszcza "ciemnych" trybów sekwencyjnych nie uda się na tym osiągnąć.
Może nieco wybiegam w przyszłość, ale ja też przez wiele nocy podobne tematy roztrzaskiwałem i niestety czasami musiałem szczytne idee zarzucić - bo najzwyczajniej albo czegoś osiągnąć nie dało, albo robiła się mało elegancka "rzeźba".
Powodzenia,
Flagiusz
No właśnie, do takich wniosków doszedłem poddając się kontemplacji i ten projekt zarzuciłem. Największe moje obawy budziło wzbudzanie się układu (choć gdyby dać jakąś pętlę histerezy przy pomiarze )df pisze: Pyra, nie bardzo widzę cel niezależnego od FB step-down`a pomiaru VR1 (prąd diody) na ADC i sterowania nim PWM`a.
Wydaje mi się, że FB jest po pierwsze na tyle szybki i precyzyjny, że w tym przypadku nie ma chyba większej potrzeby liczyć go dodatkowo na ADC.
ADC w ATtiny nie jest demonem prędkości, potrzebuje trochę cykli na pomiar (podwójne całkowanie), co więcej dochodzi ci dość znaczna stała czasowa na filtrowaniu PWM`a - to wszystko da dość sporą bezwładność układu regulacyjnego.
Co więcej regulacja ta wpływać będzie negatywnie na napięcie zasilania MCU, a więc i na poziom H portu, a przez to i na średnią wartość PWM - i sprzężenie to jest dodatnie, więc może się to mocno bujać.
Dlatego skupiłem się na wersji z ograniczeniem napięcia PWM przed całkowaniem sygnału sterującego, schemat w pierwszym poście. Przy odrobinie czasu wykonam próby z ograniczeniem napięcia PWM, choć i teraz nie jest tak źle.
No niestety, układ ten ma soft start, który ogranicza użycie CE do takich celów. Wykorzystany przezemnie schemat sterowania jest w datasheet przewornicy jako zalecany do sterowania PWMem.df pisze:Nie zaglądałem do datasheet`ów tego układu (step-down), ale może ma on jakieś wejście OE lub DIM/PWM, gdzie cyfrowo można by wejść prosto sygnałem z portu CPU.
Kiedyś dla Arka robiłem soft, który właśnie w ten sposób sterował step-down`em i z tego co pamiętam, udało się to pożenić.
A no właśnie do podobnych wniosków doszedłem, w moim driverku, stosując podział /2 dla trybów, mam na myśli liczenie wstecz od najjaśniejszego oczywiście.df pisze:Zgadza się, dlatego nieco zbaczając z wątku dobrym pomysłem jest ustawianie poziomów jasności w rozkładzie logarytmicznym (najlepiej przy podstawie 2, bo binarnie się to super łatwo robi) - daje to optycznie dość równe odstępy jasności.Pyra pisze:Po napisaniu programu zmieniającego liniowo wartość PWM w górę i w dół zauważyłem:
- stosunkowo szybką zmianę jasności na niskich prądach
- bardzo wolną zmianę jasności przy dużych prądach
- prąd zmianiający się prawie liniowo
Mechanizm ten zastosowany był m.innymi np. w sekwencji wyboru jasności w naszym driverku df&cali.
Przede wszystkim chodziło o zaprojektowanie układu, który w łatwy sposób będzie można zaadaptować też do step-upa.df pisze: Natomiast jeśli chodzi o separację zasilania MCU, to w jednym z projektów wraz z Arkiem rozważaliśmy puszczenia zasilania przez R na zenerka 5V1 niezależnie od step-up`a.
Procek nie bierze zbyt wiele pradu (1-2mA) więc strata będzie żadna, a masz jako taką stabilność napięcia niezależnie od wypełnienia (i stanu!) LED`a.
Zwróć uwagę, że w Twoim układzie nie możesz zgasić LED`a na dłużej niż chwilę, bo poleci ci CPU... a więc część zwłaszcza "ciemnych" trybów sekwencyjnych nie uda się na tym osiągnąć.
Zastanawiałem się też nad stabilizacją zasilania, ale dość szeroki zakres napięcia zasilającego 5V - 18V trochę mnie jednak odwiódł od tego rozwiązania.
Co do "mrygaczy" i ciemnych trybów, to przecież nie muszę LEDa wyłączać całkiem, zasilanie go napięciem 2,2V zapewnia mi prawie brak przepływu prądu przez LEDa, a na zasilanie procka po diodzie Shotky'ego zostaje prawie 2V, tak więc wystarczy odpowiednio obliczyć rezystory dzielnika i możemy mieć pełen zakres PWM, przy jednoczesnym zapewnieniu zasilania procka w pełnym zakresie pracy LEDa
Znam ten bóldf pisze:Może nieco wybiegam w przyszłość, ale ja też przez wiele nocy podobne tematy roztrzaskiwałem i niestety czasami musiałem szczytne idee zarzucić - bo najzwyczajniej albo czegoś osiągnąć nie dało, albo robiła się mało elegancka "rzeźba".
Powodzenia,
Tytułowa przetwornica początkowo miała być zaprojektowana do sterowania LEDem w replice miecza świetlnego, ale stwierdziłem, że można by układ zrobić bardziej uniwersalnym i zastosować do latarek, stąd cały myk z zasilaniem.
Pozdrawiam
PS: Dziękuję za wsparcie
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Piszmy po polsku, wszak jesteśmy Polakami.
Ja tak liczę zarówno w górę jak i w dół - a dokładniej procek liczy.Pyra pisze:A no właśnie do podobnych wniosków doszedłem, w moim driverku, stosując podział /2 dla trybów, mam na myśli liczenie wstecz od najjaśniejszego oczywiście.
Przydają się tu przesunięcia bitowe na rejestrach shr i shl
Aby wykładniczo przejść od 0 do 255 robię tak (w asm):
clr A ; zaczynam od zera
i w kolejnych krokach robię:
shl A,1
andi A,0b00000001
co mi daje w kolejnych iteracjach piękne sekwencje:
00000000
00000001
00000011
00000111
00001111
itd.
Spowrotem jest jeszcze łatwiej, bo zaczynam od 255 i przesuwam w prawo:
ser A ; A=255
i w iteracjach po prostu lecę:
shr A,1
A w bascomie będzie to pewnie tak:
A = 0
A = A*2+1 `co przy odrobinie szczęścia *2 zostanie skompilowane do shl (bo ten procesor mnożenia nie ma...)
Nie wiem, czy w drugą stronę przejdzie dzielenie w modulo 2, ale na pewno musi być w Bascomie odpowiednik przesunięcia bitowego w prawo (lub rotacji) bo w asm instrukcje takie procesor ten ma i do tego są one idealne.
Masz rację, to dobry pomysł, choć będzie nieładnie wahać się napięcie na CPU - zwłaszcza w górę, bo w dół wygładzi duży C. Z praktyki Atmelki wiele potrafią znieść i poza zapisami do EEPROMU oraz odczytami z ADC nie powinno być z nimi problemów.Pyra pisze:Co do "mrygaczy" i ciemnych trybów, to przecież nie muszę LEDa wyłączać całkiem, zasilanie go napięciem 2,2V zapewnia mi prawie brak przepływu prądu przez LEDa, a na zasilanie procka po diodzie Shotky'ego zostaje prawie 2V, tak więc wystarczy odpowiednio obliczyć rezystory dzielnika i możemy mieć pełen zakres PWM, przy jednoczesnym zapewnieniu zasilania procka w pełnym zakresie pracy LEDa
Ja od pewnego czasu ustawiam na fuse bit`ach opcję resetu na burr-brown na najniższą wartość 1,8V (domyślnie jest off). Zauważyłem że gdy BB jest wyłączony i zasilanie spada poniżej 1,8V lub na zasilaniu są śmieci (przetwornice impulsowe troszkę jednak sieją) to procek potrafi się na granicy napięcia zawiesić. Ryzyko rośnie wraz ze wzrostem taktowania. Myślę, że BB to dobra alternatywa dla Watch-dog`a bo zabezpiecza program przed zejściem w obszar niepewności i o tyle fajna, że nie musisz zupełnie dotykać kodu.
Pozdrawiam,
Flagiusz