» nite » Opravy, modernizácia »Ako blikať baterku pre zmenu prevádzkových režimov

Ako blikať baterku pre zmenu prevádzkových režimov


Autorovi tohto materiálu sa nepáčili bežné režimy prevádzky baterky BLF A6. Potom sa rozhodol blikať softvérovou časťou baterky a nastaviť jej režimy. Ako sa ukázalo, nie je to také jednoduché, existuje minimálne množstvo informácií o firmvéri a pinoutoch a musel ich postupne zbierať. A aby sa nestratila, rozhodol sa pomôcť druhým a zariadiť všetko v jednom článku.

Takže pre prácu budete potrebovať:
Svietidlo BLF A6 (pravdepodobne to bude fungovať s inými baterkami založenými na ATtiny).
Pinzeta / kliešte / malé nožnice.
Počítač pre firmvér, najlepšie s distribúciou Linuxu.
USB ASP / Programátor Arduino / niečo, čo dokáže programovanie AVR (samozrejme, programátor USB ASP je lepší, ale sprievodca použil Arduino).
Vysokorýchlostný zosilňovač Rail-to-Rail [SOIC-8] (môžete to urobiť aj bez neho, ale je to veľmi nepohodlné).
Vývojové dosky a vodiče prepojok na pripojenie.

Firmware.
K dispozícii je firmvér pre BLF A6 (a mnoho ďalších bateriek) tu, K dispozícii je diskusné fórum odkaz.
Firmvér si môžete stiahnuť spustením vyhľadávania „bzr branch lp: flashlight-firmware“. Potrebujete priečinok s firmvérom / ToyKeeper / blf-a6. Obsahuje kompilovaný súbor. hex, pripravený na firmvér (blf-a6.hex) a C kód, ktorý je možné zmeniť (blf-a6.c). Ak chcete flash firmvér na sklade, môžete preskočiť ďalší krok a použiť iba blf-a6.hex. Pravdepodobne bude fungovať aj nejaký iný firmvér v tomto úložisku.

Zmena firmvéru.
pozor symboly, aby nedošlo k skresleniu významu, sú uvedené bez prekladu.
Otvorte blf-a6.c vo vašom preferovanom textovom editore alebo IDE. Najzaujímavejšie riadky sú skupiny režimov medzi riadkami 94 a 109. Vyzerajú takto:
// Skupina režimov 1
#definovať NUM_MODES1 7
// PWM úrovne pre veľký okruh (FET alebo Nx7135)
#definovať MODESNx1 0,0,0,7,56,137,255
// PWM úrovne pre malý obvod (1x7135)
#definovať MODES1x1 3,20,110,255,255,255,0
// Moja vzorka: 6 = 0,6, 7 = 2,11, 8 = 8,21 (15,32)
// Krono vzorka: 6 = 5,21, 7 = 17,32, 8 = 33,96 (50,78)
// Manker2: 2 = 21, 3 = 39, 4 = 47, ... 6? = 68
// Rýchlosť PWM pre každý režim
#definovať MODES_PWM1 FÁZA, RÝCHLE, RÝCHLE, RÝCHLE, RÝCHLE, RÝCHLE, FÁZOVÉ
// Skupina režimov 2
#definovať NUM_MODES2 4
#definovať MODESNx2 0,0,90,255
#definovať MODES1x2 20 230 255,0
#define MODES_PWM2 RÝCHLE, RÝCHLE, RÝCHLE, FÁZOVÉ

Pre každú skupinu je MODESN hodnota PWM použitá pre FET a MODES1 je hodnota PWM použitá pre 7135 v každom režime. Číslo je v rozsahu od 0 do 255 a zodpovedá jasu svetla. Viac informácií
tu, (prejdite nadol na „Ovládanie režimu:“) Master nie je istý, aká je rýchlosť PWM.Ak niekto vie, povedzte mi v komentároch. Tranzistor s poľným efektom môže produkovať viac svetla ako 7135, ale 7135 udržiava úroveň svetla viac-menej rovnakú počas celej životnosti batérie, zatiaľ čo pri použití tranzistora s poľným efektom sa svetlo pri vybití batérie stlmí.

Tu môžeme upraviť hodnoty PWM a vytvoriť režimy podľa nášho vkusu. Môžete tiež zmeniť počet režimov, ale master to neurobil, pretože potrebuje štyri režimy, a to je počet v druhej skupine. Chcel tmavší režim mesačného svitu, a preto nastavil prvý na 0/1. Turbo režim tiež považuje za zbytočný, takže som ho nahradil 137/255, čo je ekvivalent šiesteho režimu v skupine siedmich režimov.

Ak potrebujete kód, musíte ho skompilovať do súboru .hex. Aspoň potrebujete gcc-avr a avr-libc. Ak máte problémy, pozrite sa na ďalšie závislosti v súbore readme. Úložisko obsahuje skript na zostavenie, takže všetko, čo musíte urobiť, je spustiť:
../../bin/build.sh 13 blf-a6
v priečinku blf-a6. ../../Bin/build.sh je skript. 13 ukazuje, že je to pre ATtiny13, a blf-a6 znamená, že je pre BLF A6.
avr-gcc -Wall -g -Os -mmcu = attiny13 -c -std = gnu99 -fgnu89-inline -DATTINY = 13 -I .. -I ../ .. -I ../../ .. -fort -enum -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 --change-section-lma .eeprom = 0 - no-change-warning -O ihex blf-a6.elf blf-a6.hex
Program: 1022 bajtov (99,8% plný)
údaje: 13 bajtov (20,3% plné)
Tímy sú už optimalizované čo do veľkosti, takže ak je napísané, že sú viac ako 100% plné, skúste vymazať
#define FULL_BIKING_STROBE

Riadok 125 kúziel malý cyklus bleskové svetlo. Ak to nestačí, bude sa musieť rezať niečo iné.
Po dokončení kompilácie by priečinok mal obsahovať súbor s názvom blf-a6.hex. Toto je kompilovaný kód pripravený na firmvér.

Demontáž baterky.
Odskrutkujte svetlomet baterky. Existujú dva skrutkové spoje. Ten, ktorý je bližšie k telu baterky, pripevňuje reflektor a LED a ten, ktorý je bližšie k stredu, upevňuje dosku. Potrebujeme priemer.

Vo vnútri uvidíte poistný krúžok s pružinou a dvoma otvormi pozdĺž okrajov. Do otvorov vložte pinzetu / tenké kliešte / nožnice a otočte ich proti smeru hodinových ručičiek.

Po odstránení krúžku budete mať prístup k doske. Je stále pripevnená dvoma vodičmi, takže buďte opatrní. Sú skrútené dokopy, takže dosku otáčajte, až kým nie sú drôty uvoľnené. Potom dosku otočte. Je nevyhnutné, aby bol čip s nápisom „TINY13A“ prístupnejší.

Ak sú káble krátke a nefunguje to, musíte dosku odstrániť.






Spojenie.
Teraz musíte pripraviť dosku na firmvér.
Sprievodca používa program SOIC8 na pripojenie čipu ATtiny13 a programátora.
Ako blikať baterku pre zmenu prevádzkových režimov



Pozrite sa na fotografiu, keď sa pomocou sprievodcu pripája. Všimnite si červenú čiaru na druhom obrázku.

Ak používate programátor USB ASP V2.0, musíte ho pripojiť takto:
Pin 1 na ATtiny13 - Pin 5 na USB ASP (reset)
Pin 4 na ATtiny13 - Pin 10 na USB ASP (zem)
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)

Ak používate Arduino, podobne ako sprievodca, postupujte takto:
Otvorte Arduino IDE a uistite sa, že je Arduino pripojené k počítaču. Nákres ISP nájdete v časti Súbor> Príklady> 11.ArduinoISP> ArduinoISP a nahrajte ho do Arduino. Potom k nemu pripojte ATtiny13 takto:
Pin 1 na ATtiny13 - Pin 10 na Arduino (reset)
Pin 4 na ATtiny13 - GND na Arduino (Ground)
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 alebo 3,3 V na Arduino (prednostne 5 V)

Firmware.
Krok 5: blesk
Pre firmvér musíte nainštalovať AVRDUDE. Ak chcete skontrolovať, či to funguje s Arduino, sprievodca píše príkaz:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -n
Ak to funguje, prejdite do prázdnej zložky a zaregistrujte sa:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -u -Uflash: r: flash-dump.hex: i -Ueprom: r: eeprom-dump.hex: i -Ulfuse: r: lfuse -dump.hex: i -Uhfuse: r: hfuse-dump.hex: i
Vytvorte si záložnú kópiu existujúceho firmvéru. Ak chcete zablikať, zo zložky s upraveným blf-a6.hex sa spustí:
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
Ako programátor musíte uviesť stk500v1 a určiť rýchlosť prenosu portov a dát. Ak používate Arduino a máte pochybnosti, skúste odpojiť ATtiny13 od Arduino a nahrať skicu do Arduino IDE pomocou tieto nastavenia, Toto nebude fungovať, ale v okne konzoly zistíte, ktorý príkaz sa použije. Ďalej môžete skopírovať atribúty do príkazu AVRDUDE.

Ak používate programátor USB ASP, spustite:
avrdude -v -p attiny13 -c usbasp -n
Ak chcete zistiť, či to funguje:
avrdude -v -p attiny13 -c usbasp -u -Uflash: r: flash-dump.hex: i -Ueprom: r: eeprom-dump.hex: i -Ulfuse: r: lfuse-dump.hex: i -Uhfuse: r: hfuse-dump.hex: i
Vytvorte zálohu:
avrdude -v -p attiny13 -c usbasp -u -Uflash: w: blf-a6.hex -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m
Blesk:
-Uflash: w: blf-a6.hex. Ak je názov súboru blf-a6.hex iný, nahraďte ho.
-Ulúzia: w: 0x75: ma -Uhfuse: w: 0xFF: m
Ak sa vyskytne chyba, znamená to, že obrazový súbor je príliš veľký na to, aby sa zmestil na čip, a budete musieť odstrániť časť kódu. Ak je všetko v poriadku, mali by sa zobraziť niektoré ukazovatele postupu a potom by sa mali zobraziť slová „avrdude hotovo. Ďakujem.“
Po vybití čipu zostavte baterku a skontrolujte, či funguje.
Otázka \ topic sa automaticky uverejní v sociálnej sieti. site site - zostaňte naladení, kde nájdete odpovede:

Vhodný pre tému

Súvisiace témy

Pridajte komentár

    • usmievaťúsmevyxaxaokdontknowyahoonea
      bossškrabanecoklamaťánoáno, ánoútočnýtajomstvo
      ľutovaťtanecdance2dance3odpusteniehelpnápoje
      zastávkapriateliadobrýgoodgoodpíšťalaomdlieťjazyk
      dymtlieskanieCraydeklarovaťvýsměšnýdon-t_mentiondownload
      teplohnevlivýlaugh1MDAstretnutiemoskingnegatívny
      not_ipražená kukuricatrestaťprečítaťvydesiťzdesenievyhľadávať
      posmechthank_youtototo_clueumnikakútnasúhlasiť
      zlýbeeeblack_eyeblum3očervenieťchvastanienuda
      cenzurovanéžartysecret2hroziťvíťazstvoyusun_bespectacled
      shokrešpektlolprevedievitajtekrutoyya_za
      ya_dobryipomocníkne_huliganne_othodiFLUDzákazzavrieť

Odporúčame vám prečítať si:

Ruku pre smartphone ...