Driver Flagiusza (programowalny) - nowa odsłona

co i jak zrobiłem...
Awatar użytkownika
df
Posty: 307
Rejestracja: piątek 23 lis 2007, 15:38
Lokalizacja: z nienacka
Kontakt:

Post autor: df »

Ponieważ dostaję wiele pytań dotyczących sterowania LED`em przy pomocy wyższych prądów załączam przykładowe diagramy powszechnie dostępnych modułów zawierających układy AMC, przy pomocy których bardzo prosto można zwiększyć wydajność prądową sterownika.

Każdy dodatkowy układ AMC 7135 to ok. +350mA prądu w diodę.

Obrazek
Obrazek
Obrazek
Widoczne na 2 ostatnich zdjęciach diody w obudowach melf mogą zostać zwarte, co poprawi stabilność pracy przy niskich napięciach zasilania.

Zwiększając liczbę układów AMC należy pamiętać, by mieć bardzo wydajne źródło napięcia zasilania oraz bardzo dobre połączenia, gdyż w przeciwnym razie tak znaczny przepływający prąd będzie powodował straty, w wyniku których osiągnięcie odpowiednio wysokich wartości prądu może być trudne lub wręcz niemożliwe.

Rozwiązanie to jest generyczne i działa nie tylko z moim konkretnym rozwiązaniem, ale i z każdym innym wykorzystującym jako źródła prądowe układy AMC.
Ostatnio zmieniony sobota 15 maja 2010, 19:30 przez df, łącznie zmieniany 1 raz.
Flagiusz
upek
Posty: 347
Rejestracja: wtorek 17 mar 2009, 21:55
Lokalizacja: Lubań

Post autor: upek »

Hej,
czy planowałeś użycie innego regulatora zamiast kilku AMC7135?, żeby zapewnić większy prąd przy mniejszych wymiarach i zmniejszyć Vdroopa? Znalazłem np. Texasa TPS737xx - może coś takiego?

pzdr
Awatar użytkownika
df
Posty: 307
Rejestracja: piątek 23 lis 2007, 15:38
Lokalizacja: z nienacka
Kontakt:

Post autor: df »

upek pisze:Hej, czy planowałeś użycie innego regulatora zamiast kilku AMC7135?, żeby zapewnić większy prąd przy mniejszych wymiarach i zmniejszyć Vdroopa? Znalazłem np. Texasa TPS737xx - może coś takiego?
Nie, nie szukałem, gdyż mnie osobiście 1A... no może 1,4A w max całkowicie wystarcza.
A to są zaledwie 3 lub 4 układy AMC, które razem z innymi elementami bez problemu mieszczą się na jednej stronie PCB o fi 15-17mm.

Diagramy załączyłem po to by obrazowo pokazać jak można to zrobić, choć robienie stabilizacji 4A na AMC jest trochę śmieszne.

Przy tak wysokich prądach oczekiwałbym wyższego napięcia zasilania, tak by wraz z jego spadkiem spowodowanym rozładowywaniem się ogniwa oraz samym znacznym jego obciążeniem mieć nieco dłużej utrzymany pełny zakres stabilizacji.
Tak naprawdę >2A w LED`a to IMHO już tylko i wyłącznie wchodzą w grę dobre przetwornice impulsowe step-down i chyba tylko one.

Ale dzięki upek za info - może komuś się to przyda.

Dodam jeszcze, że zamiast AMC do wyjścia mikrokontrolera (pin.6) można podłączyć wprost mosfet`a i sterować praktycznie czymkolwiek (n-mosfet: źródło do masy, bramka do pin.6, dren do układu sterowanego - obciążenia względem +Vcc.
Jak się dobrze przytuli, to da się takiego mosfeta bez problemu położyć na miejscu jednego z AMC-ków.
Flagiusz
upek
Posty: 347
Rejestracja: wtorek 17 mar 2009, 21:55
Lokalizacja: Lubań

Post autor: upek »

Pomysł na inną regulację pojawił się, gdy Calineczka zaprzestał produkcji wcześniejszego driverka z twoim softem. Mam latarkę na 3 sztukach XP-G równlolegle i przy łacznym prądzie 3A na Df@Cali i mam pełną moc do końca ogniwa (AW 2600mah)

Teraz pojwaił się pomysł na 4x XP-G z jednego 18650 i chyba Twój pomysł z mosfetem jest najlepszy bo 12xAMC7135 to przesada. Step-down(czy -up i diody szeregowo) z jednego ogniwa 18650 to chyba niemożliwe.
Awatar użytkownika
EdiM
Posty: 307
Rejestracja: czwartek 17 sty 2008, 07:35
Lokalizacja: Radom
Kontakt:

Post autor: EdiM »

upek pisze:Hej,
czy planowałeś użycie innego regulatora zamiast kilku AMC7135?, żeby zapewnić większy prąd przy mniejszych wymiarach i zmniejszyć Vdroopa? Znalazłem np. Texasa TPS737xx - może coś takiego?

pzdr
Zauważ, że to zwykłe LDO. Niewiele to ma wspólnego ze źródłem prądowym AMC7135.

Istnieje natomiast np. AMC7140 (700mA), ale ona ma porażający dropout, rzędu 500mV.

Ogólnie jeśli chodzi o większe prądy to ja mogę polecić CC LED driver 3-5V 2,8A L528 - tryby. Tam jest na prawdę niskie napięcie dropout oraz szeroki zakres możliwych prądów wyjściowych.

Robiłem dla Midiego wersie nawet ponad 6A, o ile dobrze pamiętam. No niestety sterowanie mikroprocesorowe tam zastosowane nie ma zbyt ciekawych cech - główna wada brak pamięci. No i nie jest też odporny na odwrotne podłączenie zasilania.
Pozdrawiam
--
EdiM
Zapraszam do sklepu http://sklep.ledim.pl/
Zapytaj jak zdobyć dodatkowy rabat 15-20%
upek
Posty: 347
Rejestracja: wtorek 17 mar 2009, 21:55
Lokalizacja: Lubań

Post autor: upek »

Brak fajnego softu to dla mnie spora wada. Pamięć i możliwość indywidualnego programowania trybów to największe zalety sterownika df'a. Do Twojego sterownika potrzebnaby była kolejna płytka PCB z prockiem i lepszym softem, a to już się nie zmieści. (chyba że zrobisz super oprogramowanie :mrgreen: )
adpa
Posty: 14
Rejestracja: piątek 16 kwie 2010, 20:08
Lokalizacja: Opole

Post autor: adpa »

Z flagiuszowym sterownikiem zrobiłem sobie roboczo "miękki/ciepły start", który zarazem działa podświetlająco. Tryb specjalny dostałem stroboskop 8 Hz. Nie używam takiego trybu, więc przestawiłem go na najniższą jasność (0,4%=4mA), a zasilanie spiąłem na stałe. Roboczo dlatego, że 4mA, to jednak dużo. Do tego najlepiej też wybrać tryb "piknięcie" co 2 lub 3 sekundy. Czy obecny sterownik da radę pracować niżej niż 0,4%? Może być nawet tak słaby, żeby nie odpalał światła, byleby umożliwiał sterowanie mikroprzełącznikiem.

Trzy tryby i poświęcenie specjalnego, to sensowne rozwiązanie. Można wtedy wrzucić włącznik kontaktronowy, itp.

EDYTOWANO: parę byków rzeczowych zrobiłem :D
Awatar użytkownika
df
Posty: 307
Rejestracja: piątek 23 lis 2007, 15:38
Lokalizacja: z nienacka
Kontakt:

Post autor: df »

upek pisze:Do Twojego sterownika potrzebnaby była kolejna płytka PCB z prockiem i lepszym softem, a to już się nie zmieści. (chyba że zrobisz super oprogramowanie :mrgreen: )
Hmmm... Super oprogramowanie powiadasz...

A co powiedziałbyś na wszystko to co teraz jest plus dodatkowo możliwość swobodnego dobierania ilości, kolejności oraz rodzaju trybów?
Powiem więcej - posiadająca to wersja siedzi już w mojej latarce i przechodzi właśnie testy ;-)

Druga zaś wersja prototypowa ma pomiar temperatury ;-) z płynną regulacją prądu i sygnalizacją na zewnętrznej sygnalizacyjnej diodzie LED.

Ciekaw jestem, jaka jest Wasza opinia - czy bardziej przydatny jest pomiar temperatury (z automatycznym ograniczaniem prądu), czy możliwość swobodnego komponowania własnych trybów?

Niestety obu tych funkcji prawdopodobnie nie zmieszczę na raz do pamięci 13-tki, choć z drugiej strony jak na to spojrzę, to sam się sobie dziwię ile dało się wcisnąć do 1kB kodu ;-)
Flagiusz
Awatar użytkownika
pawelsz
Posty: 1706
Rejestracja: wtorek 13 lis 2007, 11:36
Lokalizacja: Wrocław

Post autor: pawelsz »

hmm- raczej temperatura bardziej się przyda, myślę, że jeśli będą ze 3-4 programowalne tryby to już będzie mega fajnie i bardzo przydatne dla latarek dających ostro czadu w diodę/diody - jeśli to jest możliwe
Awatar użytkownika
Pyra
Site Admin
Posty: 8522
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Głosuję na temperaturę, trzy cztery tryby ciągłe są wystarczające, a jeśli będą konfigurowalne..... :mrgreen:

Pozdrawiam

PS: Mnie się dużo mniej mieści do 13-tki :-(
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Awatar użytkownika
df
Posty: 307
Rejestracja: piątek 23 lis 2007, 15:38
Lokalizacja: z nienacka
Kontakt:

Post autor: df »

Korzystając z chwili oddechu przedstawiam Wam kolejny swój projekt z pogranicza sfery wizyjno-koncepcyjnej - tym razem jest to działający prototyp (v3.0) sterownika będący wynikiem długich przemyśleń i chęci stworzenia jeszcze bardziej uniwersalnego rozwiązania sterownika, który poprzez możliwość jeszcze szerszej konfiguracji i personalizacji byłby w stanie spełnić potrzeby i oczekiwania najbardziej wybrednych użytkowników.

Zdaję sobie sprawę, że duże możliwości nie idą zwykle w parze z prostotą i łatwością użytkowania.
A więc także i tu celem nadrzędnym było stworzenie czegoś jeszcze fajniejszego niż to co wymyślono i stworzono dotychczas, ale jednocześnie czegoś, co nadal będzie mieściło się w ramach akceptowalnej intuicyjności i wartości użytkowej.


OK, a zatem co dokładnie może prototyp v3.0 z konfiguracją sekwencji trybów i jak to wszystko działa.

Wersja 3.0 posiada wszystko to, co miała wersja 2.2 natomiast nowością jest możliwość definiowania i swobodnej zmiany przez użytkownika ilości, kolejności i rodzaju trybów.

Konfiguracja trybów realizowana jest przy pomocy wbudowanego w oprogramowaniu sterownika kreatora. Kreator ten umożliwia zbudowanie niczym z klocków dowolnej kombinacji sekwencji od 1-go do 8-miu trybów.

"Klocki" z których budowane są sekwencje dostarczają następujących funkcji:

Obrazek
[1] - tryb ciągły
[2] - stroboskop (8Hz)
[3] - tryb policyjny (naprzemienne 3 jasne i 3 ciemne błyski w krótkich odstępach czasu)
[4] - światło ostrzegawcze (1 błysk co 1s)
[5] - migacz (1Hz wypełnienie 50%)
[6] - tryb SOS (... --- ...)
[7] - lokalizator (podwójny błysk co 8 sek)
[8] - fade-in/fade-out (nie wiem jak to ładnie nazwać, ale efekt polega na płynnym rozjaśnianiu przez 1s i płynnym przygasaniu przez kolejną 1s)

Każdy z tych klocków może być użyty wiele razy i być umieszczony w różnych miejscach w sekwencji. Przykładowo dzięki temu swobodnie można stworzyć zestawy zawierające: jeden tryb ciągły, trzy tryby ciągłe, SOS+2 stroboskopy+lokalizator+kolejny strobe itd. w których każdy z trybów ma niezależnie konfigurowaną i szybką do zmiany jasność.

Obrazek
Wszystkich możliwych unikalnych kombinacji ustawień sekwencji trybów jest bardzo dużo - jeżeli dobrze liczę, to będzie ich coś ok. 43 milionów (wariacja z powtórzeniami na zbiorze 9 elementowym na 8 pozycjach (n^k-1))

Nie ukrywam, że największym wyzwaniem było wymyślenie przyjaznego dla użytkownika mechanizmu sterowania, w którym przy pomocy jednego wyłącznika zasilania dałoby się to wszystko ogarnąć.

Opracowana przeze mnie koncepcja kreatora działa tak:
1. użytkownik w konfiguracji wybiera opcję kreatora sekwencji trybów (dla tych, co znają soft 2.2 jest to umieszczona na ostatniej pozycji ustawień po 5-cio kliku)
2. sterownik wchodzi w tryb wyboru trybu na pozycji pierwszej prezentując kolejno każdy z dostępnych "klocków" przez 6 sekund. Czyli przez 6s mamy tryb ciągły, następnie sekunda przerwy i kolejny dostępny tryb - stroboskop, później policyjny itd.
3. pojedyncze kliknięcie w czasie prezentacji danego "klocka" powoduje jego zapisanie na danej pozycji i przejście sterownika do wyboru kolejnego trybu na pozycji następnej. Dla każdej pozycji (numeru kolejnego trybu w sekwencji) proces wyboru "klocków" wygląda dokładnie tak samo jak w pkt. 2, dzięki czemu można wielokrotnie wybierać te same "klocki"
4. nie wybranie żadnego z klocków kończy sekwencję konfiguracji i powoduje wyjście z kreatora. Działanie kreatora kończy się także po przypisaniu wszystkich z 8-miu dostępnych pozycji.

Graficznie wygląda to tak (na przykładzie ustawienia takiej oto wymyślonej sekwencji trybów: 2 ciągłe, policyjny, lokalizator):
- 1, 2, 3, 4... - to numer wyświetlanego "klocka"
- [2] - numer "klocka" w nawiasie to klocek wybrany 1-klikiem

Kod: Zaznacz cały

pozycja 1:   [1]                                           - wybrany ciągły
pozycja 2:   [1]                                           - wybrany ciągły po raz drugi
pozycja 3:    1 -> 2 -> [3]                                - wybrany tryb policyjny
pozycja 4:    1 -> 2 -> 3 -> 4 -> 5 -> 6 -> [7]            - wybrany lokalizator
pozycja 5:    1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> X    - brak wyboru, koniec konfiguracji sekwencji (wyjście z kreatora)
I w konsekwencji mamy, to co chcieliśmy :-)

Obrazek

Każdemu z ustawionych w ten sposób trybów można następnie zarówno przypisać jak i w dowolnej chwili zmienić indywidualną jasność, np.:

Obrazek

Wersja ta siedzi aktualnie w moim EDC i "się testuje".
Z uwagi na brak miejsca bardzo trudno będzie ją pogodzić z pomiarem temperatury, który w obliczu coraz to większych mocy traconych na LED`ach staje się coraz bardziej istotny.

Niezależnie od dalszych losów tego przedsięwzięcia mam nadzieję, że zebrane i opisane przy jego opracowywaniu spostrzeżenia i wnioski być może komuś się do czegoś przydadzą.

*/ Edycja 2010-12-26 - dodane obrazki
Ostatnio zmieniony niedziela 26 gru 2010, 22:19 przez df, łącznie zmieniany 6 razy.
Flagiusz
Awatar użytkownika
df
Posty: 307
Rejestracja: piątek 23 lis 2007, 15:38
Lokalizacja: z nienacka
Kontakt:

Post autor: df »

Drugi prototyp to wersja 2.2 rozszerzona o pomiar i regulację temperatury (z możliwością wyłączenia w konfiguracji).
Rozwiązanie to z założenia miało być proste, nie wymagające dużej ilości zmian w sprzęcie (dodatkowe elementy, zmiany połączeń), nie utrudniające pracy użytkownikowi, a przede wszystkim skuteczne.

Z uwagi na problemy z dokładnością pomiaru przy PWM metodą na Vf (więcej tutaj) zdecydowałem się na pomiar przy pomocy termistora. Pomiar bezpośredni temperatury na podstawie Vf jest jak najbardziej możliwy, ale wymaga dalszych badań i precyzyjnych obliczeń (np. w celu sekwencyjnego próbkowania wartości dokładnie w aktywnych fazach PWM-a) i z całą pewnością będzie przedmiotem dalszych moich analiz.

Pomiar temperatury:

Podobnie jak napięcie akumulatora pomiar temperatury odbywa się przy pomocy przetwornika ADC na jednym z wolnych kanałów multipleksera.
By ograniczyć liczbę zewnętrznych elementów do niezbędnego minimum wpadłem na pomysł dość nietypowego rozwiązania - a mianowicie pomiar napięcia realizowany jest
na porcie ze skonfigurowanym pull-up`em.
Dzięki temu mamy podciągnięcie do Vcc wewnętrznym rezystorem rzędu 40k wyprowadzenia, między którym, a masą znajduje się sam termistor.

Początkowo wykorzystałem termistor NTC o Ta=10k@25*C i B w okolicy 2500, tak by w całym istotnym zakresie temperatur (20-120*C) zmieścić się w "wysokim" zakresie odczytów ADC (tuż pod 1,1V dla Vref) zapewniającym wysoką dokładność pomiaru.

Po serii testów rozwiązanie to okazało się niezbyt precyzyjne, gdyż na wynik pomiaru ma wpływ napięcie zasilania, a więc stan ogniwa.
I choć mając realizowany naprzemiennie z pomiarem temperatury pomiar napięcia można było zastosować programową kompensację, znalazłem inne znacznie lepsze rozwiązanie - zmiana napięcia referencyjnego z Vref na Vcc.

W ten oto prosty sposób uniezależniłem dzielnik napięciowy jaki tworzy Rwewn.portu(40k) i termistor od napięcia zasilania :-)
Dla większej dokładności pomiaru w takim układzie korzystniej będzie zastosować NTC o Ta=33k-100k.

ATtiny ma 1-en przetwornik ADC, więc pomiar wartości analogowych odbywa się za pośrednictwem wbudowanego multipleksera analogowego naprzemiennie - raz temperatura, raz napięcie akku.
Ponieważ przełączane są nie tylko porty, ale i napięcia referencyjne pomiar realizowany jest synchronicznie do timera (robiącego PWM) z zachowaniem dużego marginesu czasu na przełaczanie i ustalanie się napięć.
Dodatkowo tak samo jak przy pomiarze napięcia, odczyty temperatury reazlizowane są w seriach, z których wartość końcowa jest uśredniana.
Podnosi to istotnie dokładność pomiaru i uodparnia układ na zewnętrzne zakłócenia.

Regulacja:

Sterownik analizuje temperaturę względem 2 ustalonych progów:
Ta - wartości akceptowalnej, która nie powinna być przekraczana
Tk - wartości krytycznej, powyżej której zasilanie sterownika powinno być natychmiast odcięte

Przekroczenie progowej wartości Ta powoduje płynne zmniejszenie prądu idącego w LED-a/LED-y.
Z uwagi na sporą bezwładność temperaturową (dla automatyków: odpowiedź impulsowa o charakterze całkującym) stała czasowa dla zmiany prądu przyjęta została na poziomie ok. 0,4% / sek.
Dzięki temu proces regulacji następuje stopniowo i płynnie podążając za bezwładnością termiczną układu w sposób niezauważalny dla oka ludzkiego.

Logika sterowania jest prosta:
- jeżeli Temp < Ta - to w LED idzie tyle ile ma iść
- jeżeli Ta < Temp < Tk - to sterownik stopniowo zmniejsza prąd
- jeżeli Temp < Ta i prąd jest poniżej wartości planowanej (został ograniczony) - to sterownik stopniowo zwiększa prąd aż do założonej wartości
- jeżeli Temp > Tk - to sterownik natychmiast się wyłącza (analogicznie do zejścia napięcia zasilania poniżej 2,8V)

Sygnalizacja:

Informacja o przekroczeniu progu temperatury Ta i zadziałaniu ograniczenia wyprowadzona jest na jedno z wyjść cyfrowych, do którego można podłączyć sygnalizacyjną diodę LED.
Uznałem, że nie ma sensu w tym przypadku migać LED`em głównym, gdyż monitorowanie temperatury z założenia ma mieć charakter zabezpieczenia jako element bezpieczeństwa i nie ma konieczności dodatkowego informowania o tym użytkownika.

Kalibracja:

Długo zastanawiałem się jak skutecznie zrealizować możliwość dobierania temperatury progowej Ta przez użytkownika bez konieczności zaszywania sztywnych progów w kodzie programu zwłaszcza, że miejsce pomiaru będzie obarczone gradientem, jak również i termistory mają różne parametry (wsp.temperaturowy - B) i o ile w 25*C ich rozrzut nie jest za duży o tyle w okolicach 80-90*C ich rozbieżność będzie już znaczna.

Postanowiłem więc dodać w konfiguracji sterownika opcję kalibracji, po której wyborze sterownik dokona odczytu bieżącej temperatury i zapiszę ją do pamięci jako wartość progową Ta.
A zatem kalibracja niezależnie od typu zastosowanego termistora oraz miejsca pomiaru (na diodzie, na MCPCB, pod pigułą itd.) polegałaby na rozgrzaniu latarki do indywidualnie akceptowalnej temperatury i dokonaniu zapisu przez sterownik odpowiadającej temperaturze tej wartości.
Natomiast wartość progu Tk może być już obliczana automatycznie np. jako +20% wartości Ta.


Wiem, że moje opisy są miejscami dość mocno techniczne, niemniej jednak zapraszam wszystkich do komentowania opisanego rozwiązania lub zgłaszania innych ciekawych pomysłów.
Flagiusz
Awatar użytkownika
midi
Posty: 1208
Rejestracja: niedziela 20 sty 2008, 21:04
Lokalizacja: Radom

Post autor: midi »

Jak dla mnie nic dodać nic ująć, jeśli driver będzie pracował stabilnie i nie będzie miał jakiś małych błędów to będzie to sterownik idealny :wink: , gratuluję pomysłu, z przyjemnością używał bym takich driverów w swoich latarkach.
Pozdrawiam.
Nie wyrażam zgody na wykorzystywanie moich zdjęć w jakiejkolwiek formie bez mojej wiedzy, są tylko i wyłącznie moją własnością, szczególnie nie życzę sobie czerpania za ich pomocą korzyści finansowych przez osoby trzecie.
Awatar użytkownika
swietlik
Posty: 489
Rejestracja: sobota 22 lis 2008, 22:39
Lokalizacja: Gdańsk

Post autor: swietlik »

Jak zawsze same delicje :)
df pisze: [8] - fade-in/fade-out (nie wiem jak to ładnie nazwać, ale efekt polega na płynnym rozjaśnianiu przez 1s i płynnym przygasaniu przez kolejną 1s)
a to chyba będzie po prostu pulsowanie?
Awatar użytkownika
jezjacek
Posty: 305
Rejestracja: czwartek 03 wrz 2009, 10:23
Lokalizacja: Białe Błota
Kontakt:

Post autor: jezjacek »

Moim skromnym zdaniem, latarka powinna mieć trzy tryby słaby, średni i max. Reszta jest zbędna, a cały wysiłek geniuszu powinien iść na pozbycie sie amceków np przez sterowanie pwmem tak aby nie przekroczyć dopuszczalnego prądu diody (aż mnie skręca na myśl, że cenna enargia jest zamieniana w ciepło w amc).
ODPOWIEDZ