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.