Ultrafire WF-801 z dziwnym driverkiem

co i jak zrobiłem...
Awatar użytkownika
Calineczka
Posty: 7578
Rejestracja: niedziela 11 lis 2007, 20:19
Lokalizacja: Wejherowo
Kontakt:

Post autor: Calineczka »

Nie ma sprawy Night;-)
Nie wiem czy nie było by lepiej operować tutaj tzw. wartością skuteczną, przy pomiarach mocy właśnie jej się zazwyczaj uzywa z tego co pamiętam :wink:
jak bedzie potrzeba...(ludzie, zmotywujta mnie!!1 ;-) ) to spróbuję podłaczyc oscyloskop i sciagnac pomiary na pc-ta, obejrzymy sobie jak wyglada np. tryb niski, sredni i wysoki w rzeczywistosci, w postaci impulsow...
Awatar użytkownika
night_82
Posty: 335
Rejestracja: czwartek 13 gru 2007, 20:46
Lokalizacja: Warszawa

Post autor: night_82 »

Takie wykresy bardzo przemawiajace jak to się dzieje w praktyce, ja sie przekonałem że do około 150Hz jeszcze widać błyski a powyżej już widać "ciągłość" świecenia, AMC7135 daje prąd od 0 do 350mA wieć dla 1.4A potrzeba 4 sztuki a to już miejsce ale takim mosfetem jak np Si2312BDS można zastapić kilka AMC a miejsca zajmuje tyle co 1 (dojdą na dniach Si..)
Awatar użytkownika
Calineczka
Posty: 7578
Rejestracja: niedziela 11 lis 2007, 20:19
Lokalizacja: Wejherowo
Kontakt:

Post autor: Calineczka »

No wlasnie, widze, ze odrabiasz lekcje ;-)
Zaleta AMC jest wbudowane ograniczenie prądowe, tylko z tego względu skorzystałem z tego boarda...no może jeszcze dlatego ze był pod ręką z uszkodzonymi programami, driverek z kontrolą prądu na jednym mosfecie w prototypie juz jest, wiec zamiast 3AMC7135 bedzie mosfet, rezystor pomiarowy i chyba uklad calkujacy RC czyli pewnie dodatkowy rezystorek i kondensatorek...
O oscyloskopie bede myslal intensywniej ;-)
Awatar użytkownika
night_82
Posty: 335
Rejestracja: czwartek 13 gru 2007, 20:46
Lokalizacja: Warszawa

Post autor: night_82 »

Czy ten układ pomiarowy nie jest przypadkiem rezystorem zwierajacym S-D (E-C) a jego wartość wyznacza spadek napięcia, im większy R tym mniejszy prąd powoduje zadziałanie "czujnika", spotkałem się z takim układem jako wskaźnik płynącego prądu do ładowanego sie akumulatora - dopuki dioda świeci to prąd płynie (ten ustalony)
Awatar użytkownika
Calineczka
Posty: 7578
Rejestracja: niedziela 11 lis 2007, 20:19
Lokalizacja: Wejherowo
Kontakt:

Post autor: Calineczka »

przedstawie schemacik pogladowy:

Obrazek

Prad plynacy przez diode mocy plynie rowniez przez tranzystor mosfet i rezystor pomiarowy R4. Zalozmy ze ma on wartosc 0,1ohm. Przy pradzie rzedu 1A odklada sie na nim napiecie 0,1V ...poniewaz jest to PWM, napiecie to jest filtrowane, wygladzane przez R6 i C2, a potem podawane na wejscie przetwornika analogowo-cyfrowego w Attiny ;-)
Ot i pomiar pradu...Attiny ma za zadanie tak regulowac PWM by utrzymac stale napiecie na rezystorze pomiarowym R4. Sztuka polega m.in na takim jego dobraniu, by pomiar byl stabilny i moc tracona jak najmniejsza ;-)
Awatar użytkownika
night_82
Posty: 335
Rejestracja: czwartek 13 gru 2007, 20:46
Lokalizacja: Warszawa

Post autor: night_82 »

Układ bardzo prosty, zaledwie kilka elementów i 1 o wysokim stopniu zaawansowania, driver i pomiar w 1, zauwazyłem że układ jest oparty o sprzężenie zwrotne
Awatar użytkownika
Calineczka
Posty: 7578
Rejestracja: niedziela 11 lis 2007, 20:19
Lokalizacja: Wejherowo
Kontakt:

Post autor: Calineczka »

Ano owszem, jak w kazdym ukladzie regulacji chyba :mrgreen:
DeeM

Post autor: DeeM »

Mam dwa pytania:

1. Attiny13 nie ma wejścia różnicowego ze wzmocnieniem sygnału na przetworniku ADC, nie lepszy byłby np. Attiny15 który ma wejście analogowe ze wzmocnieniem 20x? Da to większą dokładność pomiaru lub rezystor o mniejszym oporze do pomiaru prądu.

2. Z jaką max. częstotliwością można przełaczać tego mosfeta sterując bezpośrednio z mikrokontrolera?

Pozdrowienia
Awatar użytkownika
Calineczka
Posty: 7578
Rejestracja: niedziela 11 lis 2007, 20:19
Lokalizacja: Wejherowo
Kontakt:

Post autor: Calineczka »

Deem, prawdopodobnie masz rację ;-)
Powiem szczerze ze ja nie jestem konstruktorem, soft wymysla Df ale ma bardzo malo czasu i okrutnie rzadko jest na forum.O driverku toczyla sie dyskusja w innym watku. Czasem sobie z Df dyskutujemy co jak ma wygladac, wymieniamy pomysly, testujemy...dostaje od Df kody zrodlowe, hex-y do procka i tak w miare mozliwosci jakos posuwamy prace nad wersja koncowa do konca....Nie wiem z jaka maksymalna czestotliwoscia mozna kluczowac tranzystorek, ale chyba nie warto walczyc o gorna granice bo przy wyzszych czestotliwosciach pewnie sa wieksze straty? Powyzej czestotliwosci taktowania zegara, jesli stosowali bysmy rezonator kwarcowy, chyba sie nie da?
Nie ogladalem datasheeta Attiny15, masz racje, ze im mniejsze napiecie potrzebne do zmierzenia pradu tym lepiej. Przy Attiny13 udalo sie Df zejsc do okolo 60mV, chyba niezle? ;-)
Zastanawiamy sie nad przejsciem na silniejszy mikrokontrolerek(a raczej Df sie zastanawia, hehe)...prawdopodobnie zacsie od Attiny13 bo byl w szufladzie ;-) I tak jestem pelen podziwu dla Df ile funkcjonalnosci zmiescil w 1k kodu ;-) Na biurku juz testowalem wersje ze stabilizacja pradu(napiecia) ale juz chyba o tym pisalem...jaka bedzie wersja finalna-nie wiemy, moze nawet w setupie bedzie mozliwosc wyboru czysty PWM czy tez constant current.

Ja niestety nie potrafie pisac programow na mikrokontrolery, zwlaszcza w asemblerze :sad:
DeeM

Post autor: DeeM »

Z trochę mocniejszych "maluchów" moi faworyci to Attiny 25/45/85V (2KB...8KB) ADC oprócz wzmocnienia 20x ma też zaimplementowany pomiar temperatury!
Awatar użytkownika
Calineczka
Posty: 7578
Rejestracja: niedziela 11 lis 2007, 20:19
Lokalizacja: Wejherowo
Kontakt:

Post autor: Calineczka »

Deem, wlasnie dlatego zastanawialismy sie w co ew. uderzyc przy bogatszej wersji driverka.Piszesz sam jakies programiki na Attiny?W jakim jezyku?
Awatar użytkownika
df
Posty: 307
Rejestracja: piątek 23 lis 2007, 15:38
Lokalizacja: z nienacka
Kontakt:

Post autor: df »

Witam ;-)

DeeM:
> 1. Attiny13 nie ma wejścia różnicowego ze wzmocnieniem sygnału na przetworniku ADC, nie lepszy byłby np. Attiny15 który ma wejście analogowe ze wzmocnieniem 20x?

Zgadza się, a oprócz Amp-x20 ma drugi timer, który by mi się bardzo przydał.
W tej chwili sterowanie PWM (robione aplikacyjnie) oraz liczniki czasu do sekwencji mam zrobione na timerze na przerwaniu. Mając 2 niezależne timery z odrębnymi preskalerami można na jednym zrobić liczenie czasu, a na drugim "sprzętowy" Fast PWM.

Pierwotnie zastanawiałem się, czy nie użyć komparatora analogowego, który jest w 13-tce, ale albo musiałbym użyć zewnętrznego napięcia odniesienia, albo użyć wbudowanego Vref=1,1V.
A 1,1V to trochę sporo - dla Iled=1A straty na nim miałyby ponad 1W!
Więc finalnie stanęło na ADC z wewnętrznym Vref=1,1V.
Problem jaki napotkałem polegał na dużych szumach tego przetwornika dla niskich wartości pomiarów. Robiłem różne cuda, żeby utrzymać stabilność odczytów - testowałem różne tryby pracy (wyzwalane, cykliczne), różne sposoby zczytywania wartości (na przerwaniu, badając ADIF), ustawiałem procesor na czas pomiaru w sleep`a "01" (ADC noice reduction), filtrowałem na RC napięcie pomiaru itd. i zawsze przy niskich wartościach - tak na oko 10-20mV zaczynała się dyskoteka.
Jej przyczyną były interferencje spowodowane kluczowaniem LED`a.
W zależności w jakim cyklu wypadł pomiar i w jakim stanie był klucz - przetwornik odczytywał wartość chwilową prądu i włączał lub odcinał klucz w nie do końca właściwym momencie.
Zastanawiałem się, czy nie wprowadzić zamiast jednego progu, dwa z odpowiednio dobraną histerezą - trzeba to przetestować.
Może uda się tak dobrać "szerokość okna", aby przy włączonym kluczu i wyłączonym decyzja o przekroczeniu progu w górę lub w dół była kompensowana?

Reasumując, nie wiem, czy wzmocnienie x20 by tu coś dało - być może efekt ten byłby bardziej dokuczliwy?

Jako rozwiązanie alternatywne wraz z Calineczką testujemy większą stałą czasową na filtrze RC (co ma taką, wadę, że spowalnia reakcje sprzężenia zwrotnego) i możliwość dodania drugiego tranzystora i rezystora bocznikującego Rfb, który byłby włączany (a dokładniej wyłączany) po zejściu poniżej granicy stabilnego pomiaru ADC.
Rozwiązanie jak dla mnie trochę mało eleganckie, ale byćmoże warte rozważenia.

Inny pomysł polegał na "robieniu" na PWM napięcia odniesienia dla wbudowanego komparatora, ale to już byłby hardcore.

Natomiast jako jedna z pierwszych ze sprzężeniem zwrotnym powstała dość ciekawa wersja, w której stabilizowany był prąd diody "w maximum" (pomiar na ADC: jeden próg 64/256 liczone na "starszym" 8bit z wyrównaniem ADLAR i Vref=1,1 - czyli ok.250mV), a sterowanie jasnością odbywało się na PWM liczonym w czasie.
I ta wersja działa bardzo ładnie, jest prosta (jej implementacja zajmuje mało miejsca), stabilna w pełnym zakresie od 100% do 1/255.

Co do pomiaru temperatury, to też o tym myśleliśmy.
13-tki mają wbudowany 4-kanałowy multiplekser, więc można przy jego pomocy mierzyć np. na ADC i prąd diody i temperaturę i napięcie baterii i jeszcze coś ;-)
Problemem 13-tki jaki staje się coraz bardziej doskwierający, to kończące się miejsce.
1kB na kod programu napisany możliwie optymalnie i z często stosowanymi "skrótami" na których zaoszczędzam albo kod albo cykle przy rozbudowanych trybach to trochę mało.
A piszę go w całości w assemblerze.

Oczywiście, że korci mnie ATtiny-4X lub 8X (85) głównie z uwagi na sprzętowy PWM i więcej pamięci na "wodotryski".

Z drugiej jednak strony można zrobić "kombajn", ale pytanie o ile taki sterownik latarki będzie lepszy i ile z tych "dodatków" będzie tak naprawdę na codzień wykorzystywane?
Pisaliśmy o pomysłach podłączania i programowania przez USB, pojawiły się także pomysły z IrDA i BlueTooth`em i sterowania / programowania z aplikacji z PC-ta :-)

-----

I jeszcze małe sprostowanie co do set-up`u.
Pierwotnie była zaimplementowana jedna grupa i w niej kilka trybów przełączanych w kółko "na kolejny". Ostatnim z tych trybów był ów set-up.
Wpadłem wówczas na pomysł, aby jakoś się zabezpieczyć przed przypadkowym wejściem do setup`u i zmianą ustawień. I tak powstała taka dziwna sekwencja błysków, po której następuje chwila "ciszy" - kliknięcie w ciszy powoduje wejście do setup`u, a przed i po jej ominięcie.

W ostatniej wersji (którą wysłał Arek do Boćka i Pawła) zrobione były już grupy i ... w setupie sekwencja tam po prostu jako zaszłość pozostała - tak naprawdę już jej tam nie potrzeba i pewnie dla zaoszczędzenia kilkunastu bajtów zostanie usunięta.

Tak jak pisał Calineczka, mam stosunkowo niewiele czasu aby siedzieć i "dopieszczać", choć oczywiście to czynię - głównie nocami (uzależnienie ;-) więc jeżeli macie jakieś pomysły, czy sugestie, to piszcie proszę na forum.

Jeżeli macie pytania dotyczące "technikaliów" to także pytajcie - z chęcią opowiem co i jak.
Ostatnio zmieniony wtorek 05 lut 2008, 21:19 przez df, łącznie zmieniany 2 razy.
Flagiusz
c++

Post autor: c++ »

Dobra- a kiedy będę mógł kupić prototyp? :mrgreen:
Awatar użytkownika
df
Posty: 307
Rejestracja: piątek 23 lis 2007, 15:38
Lokalizacja: z nienacka
Kontakt:

Post autor: df »

C++ cierpliwości ;-)

Tutaj jest dokładnie odwrotnie niż z winem - im późniejszą (prototypową) wersję dostaniesz tym będzie ona bardziej dopracowana.
Flagiusz
c++

Post autor: c++ »

ok- ile A moge się spodziewać na wyjściu z drivera przy zasilaniu np. z 1xAA?
ODPOWIEDZ