Az anyag szerzője nem tetszett a BLF A6 zseblámpa normál működési módjainak. Ezután úgy döntött, hogy a zseblámpa szoftver részét villogja, beállítva annak üzemmódját. Mint kiderült, ez nem olyan egyszerű, van minimális információ a firmware-ről és a kiindulópontokról, és apránként kellett összegyűjtenie. És hogy ne eltévedjen, úgy döntött, hogy másoknak segít, és mindent elrendez egy cikkben.
Tehát a munkához a következőkre lesz szüksége:
BLF A6 zseblámpa (valószínűleg ez működni fog más ATtiny alapú zseblámpákkal).
Csipesz / vékony fogó / kis olló.
Firmware, lehetőleg Linux disztribúcióval rendelkező számítógép.
USB ASP / programozó Arduino / valami, amit az AVR programozás képes megtenni (nyilvánvaló, hogy az USB ASP programozó jobb, de a varázsló Arduino-t használt).
Nagysebességű vasúti-vasúti erősítő [SOIC-8] (meg tudod csinálni nélküle, de ez nagyon kellemetlen).
Fejlesztő kártya és áthidaló vezetékek a csatlakozáshoz.
Firmware.
Firmware a BLF A6 (és sok más zseblámpa) számára elérhető itt. Erről vitafórum érhető el a link.
A firmware letölthető a "bzr branch lp: flashlight-firmware" keresés futtatásával. Szüksége van zseblámpa-firmware-re / ToyKeeper / blf-a6 mappára. Összeállított fájlt tartalmaz. hex, készen áll a firmware-re (blf-a6.hex), és C-kód, amely szintén megváltoztatható (blf-a6.c). Ha vissza szeretné villanni az állomány firmware-t, akkor kihagyhatja a következő lépést, és csak használja az blf-a6.hex fájlt. Az ezen a lerakatban található egyéb firmware valószínűleg szintén működni fog.
Cserélje ki a firmware-t.
Vigyázat A szimbólumokat fordítás nélkül adjuk meg, hogy ne torzítsuk a jelentést.
Nyissa meg az blf-a6.c fájlt a kívánt szövegszerkesztőben vagy az IDE-ben. A legérdekesebb vonalak a 94. és a 109. sor közötti üzemmód-csoportok.
// 1. üzemmód-csoport
#define NUM_MODES1 7
// PWM szintek a nagy áramkörnél (FET vagy Nx7135)
#define MODESNx1 0,0,0,7,56,137,255
// PWM szintek a kis áramkörnél (1x7135)
#define MODES1x1 3,20,110,255,255,255,0
// A mintám: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32)
// Krono-minta: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78)
// Manker2: 2 = 21, 3 = 39, 4 = 47, ... 6? = 68
// PWM sebesség minden üzemmódban
#define MODES_PWM1 Fázis, gyors, gyors, gyors, gyors, gyors, gyors
// 2. üzemmód-csoport
#define NUM_MODES2 4
#define MODESNx2 0,0,90,255
#define MODES1x2 20,230,255,0
#define MODES_PWM2 FAST, FAST, FAST, PHASE
Mindegyik csoportnál a MODESN a FET-hez használt PWM érték, a MODES1 pedig a 7135-hez használt üzemmód PWM-értéke. A szám 0 és 255 között van, és megfelel a fény fényerejének. További információ
itt. (görgessen le a "Módvezérlés:" -ig). A mester nem biztos abban, hogy mi a PWM sebesség.Ha valaki tudja, mondja el nekem a hozzászólásokban. A terepi tranzisztor 7135-nél több fényt képes előállítani, de a 7135 az akkumulátor teljes élettartama alatt nagyjából azonos fényszintet tart fenn, míg mezőtranzisztor használata esetén a fény elhalványul, amikor az akkumulátor lemerül.
Itt módosíthatjuk a PWM értékeket, hogy kedvező módszereket hozzunk létre. Módosíthatja az üzemmódok számát is, de a mester nem tette ezt, mert négy üzemmódra van szüksége, és ez a második csoport száma. Sötétebb holdfény-rendszert akart, ezért az elsőt 0/1-re állította. A turbó üzemmódot kicsit értelmetlennek tartja, ezért helyettesítettem a 137/255-rel, amely egyenértékű a hatodik üzemmóddal hét üzemmódban.
Ha rendelkezik a szükséges kóddal, le kell állítania .hex fájlba. Legalább a gcc-avr-re és az avr-libc-re van szüksége. Ha problémái vannak, nézzen meg a readme fájl egyéb függőségein is. A lerakat tartalmaz build parancsfájlt, tehát csak annyit kell tennie, hogy fut:
../../bin/build.sh 13 blf-a6
az blf-a6 mappában. ../../Bin/build.sh a szkript. A 13. ábra azt jelzi, hogy az ATtiny13-ra vonatkozik, és a blf-a6 azt jelzi, hogy a BLF A6-ra vonatkozik.
avr-gcc -Wall -g -Os -mmcu = attiny13 -c -std = gnu99 -fgnu89-inline -DATTINY = 13 -I .. -I ../ .. -I ../../ .. -short -enumok -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 = alloc, load - exchange-section-lma .eeprom = 0 - no-change-figyelmeztetések -O ihex blf-a6.elf blf-a6.hex
Program: 1022 bájt (99,8% teljes)
adatok: 13 byte (teljes 20,3%)
A csapatok méretét már optimalizálták, tehát ha azt írják, hogy több mint 100% -ban megteltek, próbálja meg törölni
#define FULL_BIKING_STROBE
A 125-ös sor kicsi ciklus villanófény. Ha ez nem elég, akkor valami mást kell vágni.
Ha az összeállítás befejeződött, a mappának tartalmaznia kell egy blf-a6.hex nevű fájlt. Ez egy fordított kód, készen áll a firmware-re.
A zseblámpa leszerelése.
Csavarja le a zseblámpa fényszóróját. Két csavaros csatlakozás van. Az, amely közelebb van a zseblámpa testéhez, rögzíti a reflektorot és a LED-et, és az, amely közelebb van a középponthoz, rögzíti a táblát. Átlagra van szükségünk.
Belül egy rugóval ellátott bepattanó gyűrűt és az élek mentén két lyukat lát. Helyezze be a csipeszt / vékony fogót / ollót a lyukakba és forgassa el az óramutató járásával ellentétesen.
Miután eltávolítottuk a gyűrűt, hozzáférhetünk a táblához. Még mindig két vezetékkel van rögzítve, ezért legyen óvatos. Össze vannak csavart, tehát forgassa el a táblát, amíg a vezetékek meglazulnak. Ezután fordítsa meg a táblát. Szükséges, hogy a "TINY13A" feliratú chip legyen hozzáférhetőbb.
Ha a vezetékek rövidek, és ez nem működik, akkor távolítsa el a táblát.
Connection.
Most elő kell készítenie a táblát a firmware-re.
A varázsló a SOIC8 használatával kapcsolja össze az ATtiny13 chipet és a programozót.
Tekintse meg a fényképet, amikor a varázsló létrehozza a kapcsolatot. Vegye figyelembe a második ábrán látható piros vonalat.
Ha az USB ASP V2.0 programozót használja, akkor ehhez kell csatlakoztatnia:
1. érintkező az ATtiny13-on - 5. érintkező az USB ASP-n (visszaállítás)
4. érintkező az ATtiny13-on - 10. érintkező az USB ASP-n (föld)
5. érintkező az ATtiny13-on - 1. érintkező az USB ASP-n (MOSI)
6. érintkező az ATtiny13-on - 9. érintkező az USB ASP-n (MISO)
7. érintkező az ATtiny13-on - 7. érintkező az USB ASP-n (SCK)
8. érintkező az ATtiny13-on - 2. érintkező az USB ASP-n (VCC)
Ha Arduino-t használ, mint például a varázslót, akkor hajtsa végre az alábbi lépéseket:
Nyissa meg az Arduino IDE-t és ellenőrizze, hogy az Arduino csatlakozik-e a számítógéphez. Keresse meg az ISP-vázlatot a Fájl> Példák> 11.ArduinoISP> ArduinoISP fájlban, és töltse fel az Arduino-ba. Ezután csatlakoztassa az ATtiny13-at az alábbiak szerint:
1. érintkező az ATtiny13-on - 10. érintkező az Arduinón (visszaállítás)
4. érintkező az ATtiny13-on - GND az Arduino-n (föld)
5. érintkező az ATtiny13-on - 11. tű az Arduino-n (MOSI)
6. érintkező az ATtiny13-on - 12. érintkező az Arduinón (MISO)
7. érintkező az ATtiny13-on - 13. érintkező az Arduinón (SCK)
8. érintkező az ATtiny13-on - VCC / 5V vagy 3.3V az Arduino-n (5V előnyben részesítve)
Firmware.
5. lépés: villogjon
A firmware-hez telepítenie kell az AVRDUDE-t. Annak ellenőrzésére, hogy ez működik-e az Arduino-val, a varázsló parancsot ír:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -n
Ha ez működik, lépjen az üres mappába, és regisztráljon:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -u -Uflash: r: flash-dump.hex: i -Ueeprom: r: eeprom-dump.hex: i -Ufuse: r: lfuse -dump.hex: i -Uhfuse: r: hfuse-dump.hex: i
Készítsen biztonsági másolatot a meglévő firmware-ről. A vaku elindításához a módosított blf-a6.hex mappából indul:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -u -Uflash: w: blf-a6.hex -Uluse: w: 0x75: m -Ufuse: w: 0xFF: m
Meg kell adnia az stk500v1 programozót, meg kell határoznia a portot és az adatátviteli sebességet. Ha Arduino-t használ, és kétségei vannak, próbáljon leválasztani az ATtiny13-t az Arduinótól, és töltse fel a vázlatot az Arduino IDE-re ezeket a beállításokat. Ez nem fog működni, de megtudja, melyik parancsot használja a konzol ablakban. Ezután másolhatja az attribútumokat az AVRDUDE parancsra.
Ha USB ASP programozót használ, futtassa:
avrdude -v -p attiny13 -c usbasp -n
Annak ellenőrzése, hogy működik-e:
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
Készítsen biztonsági másolatot:
avrdude -v -p attiny13 -c usbasp -u -Flash: w: blf-a6.hex -Uluse: w: 0x75: m -Huuse: w: 0xFF: m
Villanás:
-Futás: w: blf-a6.hex. Cserélje ki az blf-a6.hex fájlnevére, ha az eltérő.
-Hagos: w: 0x75: m és -Hossz: w: 0xFF: m
Hiba esetén ez azt jelenti, hogy a képfájl túl nagy ahhoz, hogy elférjen a chipen, és a kód egy részét törölnie kell. Ha minden normális, akkor megjelenjen néhány előrehaladási mutató, majd az "avrdude kész. Köszönöm" szavak.
Miután felvillantotta a chipet, szerelje össze a zseblámpát és ellenőrizze, működik-e.