» Tematy » Naprawa, modernizacja »Jak błysnąć latarką, aby zmienić tryby pracy

Jak flashować latarkę, aby zmienić tryby pracy


Autorowi tego materiału nie podobały się normalne tryby działania latarki BLF A6. Następnie postanowił sflashować część oprogramowania latarki, ustawiając jej tryby. Jak się okazało, nie jest to takie proste, jest minimum informacji na temat oprogramowania układowego i pinoutu i musiał zbierać je krok po kroku. Aby nie zgubić się, postanowił pomóc innym i wszystko uporządkować w jednym artykule.

Do pracy będziesz potrzebować:
Latarka BLF A6 (prawdopodobnie będzie to działać z innymi latarkami opartymi na ATtiny).
Pincety / cienkie szczypce / małe nożyczki.
Komputer z oprogramowaniem układowym, najlepiej z dystrybucją Linuksa.
USB ASP / Programator Arduino / coś, co potrafi programowanie AVR (oczywiście programator USB ASP jest lepszy, ale kreator użył Arduino).
Szybki wzmacniacz Rail-to-Rail [SOIC-8] (możesz się bez niego obejść, ale jest to bardzo niewygodne).
Płytka rozwojowa i przewody połączeniowe do połączenia.

Oprogramowanie układowe.
Oprogramowanie układowe dla BLF A6 (i wielu innych latarek) jest dostępne tutaj. Forum dyskusyjne jest dostępne na ten temat link.
Możesz pobrać oprogramowanie, uruchamiając wyszukiwanie „gałąź bzr lp: oprogramowanie latarki”. Potrzebujesz folderu z oprogramowaniem latarki / ToyKeeper / blf-a6. Zawiera skompilowany plik. hex, gotowy na oprogramowanie układowe (blf-a6.hex) i kod C, który można również zmienić (blf-a6.c). Jeśli chcesz sflashować oprogramowanie układowe, możesz pominąć następny krok i po prostu użyć pliku blf-a6.hex. Pewne inne oprogramowanie układowe w tym repozytorium prawdopodobnie również będzie działać.

Zmień oprogramowanie układowe.
Uwaga symbole, aby nie zniekształcać znaczenia, są podawane bez tłumaczenia.
Otwórz blf-a6.c w preferowanym edytorze tekstu lub IDE. Najciekawsze linie to grupy trybów między liniami 94 i 109. Wyglądają tak:
// Grupa trybów 1
# zdefiniować NUM_MODES1 7
// Poziomy PWM dla dużego obwodu (FET lub Nx7135)
# zdefiniować MODESNx1 0,0,0,7,56,137,255
// Poziomy PWM dla małego obwodu (1x7135)
# zdefiniować TRYBY 1x1 3,20,110,255,255,255,0
// Moja próbka: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32)
// Próbka Krono: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78)
// Manker2: 2 = 21, 3 = 39, 4 = 47, ... 6? = 68
// Prędkość PWM dla każdego trybu
# zdefiniować MODES_PWM1 FAZA, SZYBKA, SZYBKA, SZYBKA, SZYBKA, SZYBKA, FAZA
// Grupa trybów 2
# zdefiniować NUM_MODES2 4
# zdefiniować MODESNx2 0,0,90,255
# zdefiniować TRYBY 1x2 20,230,255,0
# zdefiniować MODES_PWM2 SZYBKO, SZYBKO, SZYBKO, FAZA

Dla każdej grupy MODESN jest wartością PWM używaną dla FET, a MODES1 jest wartością PWM używaną dla 7135 w każdym trybie. Liczba mieści się w zakresie od 0 do 255 i odpowiada jasności światła. Więcej informacji
tutaj. (przewiń w dół do „Sterowanie trybem:”) Mistrz nie jest pewien, jaka jest prędkość PWM.Jeśli ktoś wie, powiedz mi w komentarzach. Tranzystor polowy może wytwarzać więcej światła niż 7135, ale 7135 utrzymuje poziom światła mniej więcej taki sam przez cały okres użytkowania baterii, podczas gdy podczas korzystania z tranzystora polowego światło przygasa, gdy bateria się wyczerpie.

Tutaj możemy dostosować wartości PWM, aby stworzyć tryby według naszych upodobań. Możesz także zmienić liczbę trybów, ale mistrz tego nie zrobił, ponieważ potrzebuje czterech trybów, a jest to liczba w drugiej grupie. Chciał ciemniejszego reżimu księżycowego i dlatego ustawił pierwszy na 0/1. Uważa również tryb turbo za nieco bezcelowy, więc zastąpiłem go trybem 137/255, co odpowiada szóstemu trybowi w grupie siedmiu trybów.

Gdy masz potrzebny kod, musisz go skompilować do pliku .hex. Przynajmniej potrzebujesz gcc-avr i avr-libc. Jeśli masz problemy, spójrz na inne zależności w pliku readme. Repozytorium zawiera skrypt kompilacji, więc wystarczy, że uruchomisz:
../../bin/build.sh 13 blf-a6
w folderze blf-a6. ../../Bin/build.sh to skrypt. 13 wskazuje, że dotyczy ATtiny13, a blf-a6 oznacza, że ​​dotyczy BLF A6.
avr-gcc -Wall -g -Os -mmcu = attiny13 -c -std = gnu99 -fgnu89-inline -DATTINY = 13 -I .. -I ../ .. -I ../../ .. -fshort -enums -o blf-a6.o -c blf-a6.c
avr-gcc -Wall -g -Os -mmcu = attiny13 -fgnu89-inline -o blf-a6.elf blf-a6.o
avr-objcopy --set-section-flags = .eeprom = przydziel, ładuj --change-section-lma .eeprom = 0 - brak ostrzeżeń -O ihex blf-a6.elf blf-a6.hex
Program: 1022 bajtów (pełny 99,8%)
dane: 13 bajtów (pełne 20,3%)
Zespoły są już zoptymalizowane pod względem wielkości, więc jeśli jest napisane, że są wypełnione w ponad 100%, spróbuj usunąć
# zdefiniować FULL_BIKING_STROBE

Zaklęcie linii 125 jest małe rower światło stroboskopowe. Jeśli to nie wystarczy, trzeba będzie coś jeszcze wyciąć.
Po zakończeniu kompilacji folder powinien zawierać plik o nazwie blf-a6.hex. Jest to skompilowany kod, gotowy do oprogramowania układowego.

Demontaż latarki.
Odkręć reflektor latarki. Istnieją dwa połączenia śrubowe. Ten, który jest bliżej korpusu latarki, naprawia reflektor i diodę LED, a ten, który jest bliżej środka, naprawia płytkę. Potrzebujemy średniej.

Wewnątrz zobaczysz pierścień osadczy ze sprężyną i dwoma otworami wzdłuż krawędzi. Włóż pincety / cienkie szczypce / nożyczki do otworów i obróć je w kierunku przeciwnym do ruchu wskazówek zegara.

Po usunięciu pierścienia będziesz mieć dostęp do tablicy. Nadal jest przymocowany dwoma przewodami, więc bądź ostrożny. Są skręcone razem, więc obróć płytę, aż przewody będą luźne. Następnie odwróć planszę. Konieczne jest, aby układ z napisem „TINY13A” był bardziej dostępny.

Jeśli przewody są krótkie i to nie działa, musisz usunąć płytkę.






Połączenie
Teraz musisz przygotować płytę do oprogramowania układowego.
Kreator używa SOIC8 do połączenia układu ATtiny13 z programatorem.
Jak flashować latarkę, aby zmienić tryby pracy



Zobacz zdjęcie, gdy kreator nawiąże połączenie. Zwróć uwagę na czerwoną linię na drugim rysunku.

Jeśli używasz programatora USB ASP V2.0, musisz go podłączyć w następujący sposób:
Pin 1 na ATtiny13 - Pin 5 na USB ASP (reset)
Pin 4 na ATtiny13 - Pin 10 na USB ASP (masa)
Pin 5 na ATtiny13 - Pin 1 na USB ASP (MOSI)
Pin 6 na ATtiny13 - Pin 9 na USB ASP (MISO)
Pin 7 na ATtiny13 - Pin 7 na USB ASP (SCK)
Pin 8 na ATtiny13 - Pin 2 na USB ASP (VCC)

Jeśli używasz Arduino, podobnie jak kreator, wykonaj następujące kroki:
Otwórz Arduino IDE i upewnij się, że Arduino jest podłączony do komputera. Znajdź szkic ISP w Plik> Przykłady> 11.ArduinoISP> ArduinoISP i prześlij go do Arduino. Następnie podłącz do niego ATtiny13 w następujący sposób:
Pin 1 na ATtiny13 - Pin 10 na Arduino (reset)
Pin 4 na ATtiny13 - GND na Arduino (masa)
Pin 5 na ATtiny13 - Pin 11 na Arduino (MOSI)
Pin 6 na ATtiny13 - Pin 12 na Arduino (MISO)
Pin 7 na ATtiny13 - Pin 13 na Arduino (SCK)
Pin 8 na ATtiny13 - VCC / 5V lub 3.3V na Arduino (preferowane 5V)

Oprogramowanie układowe.
Krok 5: sflashuj go
W przypadku oprogramowania układowego należy zainstalować AVRDUDE. Aby sprawdzić, czy to działa z Arduino, kreator zapisuje polecenie:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -n
Jeśli to zadziała, przejdź do pustego folderu i zarejestruj się:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -u -Uflash: r: flash-dump.hex: i -Ueeprom: r: eeprom-dump.hex: i -Ulfuse: r: lfuse -dump.hex: i -Uhfuse: r: hfuse-dump.hex: i
Wykonaj kopię zapasową istniejącego oprogramowania układowego. Aby flashować, zaczyna się od folderu ze zmodyfikowanym plikiem blf-a6.hex:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -u -Uflash: w: blf-a6.hex -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m
Musisz określić stk500v1 jako programator oraz określić port i prędkość przesyłania danych. Jeśli używasz Arduino i masz wątpliwości, spróbuj odłączyć ATtiny13 od Arduino i prześlij szkic do Arduino IDE za pomocą te ustawienia. To nie zadziała, ale dowiesz się, które polecenie jest używane w oknie konsoli. Następnie możesz skopiować atrybuty do komendy AVRDUDE.

Jeśli używasz programatora USB ASP, uruchom:
avrdude -v -p attiny13 -c usbasp -n
Aby sprawdzić, czy to działa:
avrdude -v -p attiny13 -c usbasp -u -Uflash: r: flash-dump.hex: i -Ueeprom: r: eeprom-dump.hex: i -Ulfuse: r: lfuse-dump.hex: i -Uhfuse: r: hfuse-dump.hex: i
Utwórz kopię zapasową:
avrdude -v -p attiny13 -c usbasp -u -Uflash: w: blf-a6.hex -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m
Aby sflashować:
-Uflash: w: blf-a6.hex. Zastąp plik blf-a6.hex nazwą pliku, jeśli jest inny.
-Ulfuse: w: 0x75: mi -Uhfuse: w: 0xFF: m
Jeśli wystąpi błąd, oznacza to, że plik obrazu jest zbyt duży, aby zmieścił się na chipie, i będziesz musiał usunąć część kodu. Jeśli wszystko jest w porządku, powinny zostać wyświetlone niektóre wskaźniki postępu, a następnie słowa „avrdude done. Dziękujemy”.
Po sflashowaniu układu zmontuj latarkę i sprawdź, czy działa.
Pytanie \ temat jest automatycznie publikowane w serwisie społecznościowym. sieć witryn - sprawdzaj odpowiedzi:

Nadaje się do tematu

Powiązane tematy

Dodaj komentarz

    • uśmiechnij sięuśmiecha sięxaxaoknie wiemyahoonea
      szefiezadrapaniegłupiectaktak-takagresywnysekret
      przepraszamtańczyćdance2dance3przebaczeniepomocnapoje
      przestańprzyjacieledobrzegoodgoodgwizdaćomdlećjęzyk
      palićklaskanierakdeklarowaćdrwiącydon-t_mentionpobierz
      ciepłożałujęśmiech 1mdaspotkaniemoskingnegatywne
      niepopcornukaraćczytaćprzestraszyćstraszyszukaj
      drwinadziękujętoto_clueumnikostryzgadzam się
      źlepszczołablack_eyeblum3rumienić sięchwalić sięnuda
      ocenzurowaneuprzejmośćsekret2grozićzwycięstwoyusun_bespectacled
      shokrespektlolprevedwitamykrutoyya_za
      ya_dobryipomocnikne_huliganne_othodifludzakazzamknij

Radzimy przeczytać:

Podaj go do smartfona ...