Мазмұны:

Теңшелетін микробағдарлама BLF A6 шамына жыпылықтайды: 5 қадам
Теңшелетін микробағдарлама BLF A6 шамына жыпылықтайды: 5 қадам

Бейне: Теңшелетін микробағдарлама BLF A6 шамына жыпылықтайды: 5 қадам

Бейне: Теңшелетін микробағдарлама BLF A6 шамына жыпылықтайды: 5 қадам
Бейне: TP-Link TL-WR841N Router Firmware Upgrade Step by Step Tutorial 2024, Қараша
Anonim
Теңшелетін микробағдарлама BLF A6 шамына жыпылықтайды
Теңшелетін микробағдарлама BLF A6 шамына жыпылықтайды

Мен жақында BLF A6 алдым. Бұл өте жақсы, бірақ мен әдепкі режимнің екі тобын да ұнатпаймын, сондықтан мен микробағдарламаны қалаған жарықтықты пайдалану үшін өзгерттім. Ақпаратты табу қиын болды, сондықтан мен өзіме және басқаларға үйренгенімнің бәрін осында орналастырамын.

Жабдықтар

BLF A6 (ол ATtiny негізіндегі басқа шамдармен жұмыс істейтін шығар)

Пинцет / жіңішке қысқыш / кішкентай қайшы / жүргізуші тақтасының сақинасын шешетін нәрсе

Компьютер Linux дистрибутивімен жұмыс істейді

USB ASP бағдарламашысы / Arduino / AVR бағдарламалауды жасай алатын нәрсе (USB ASP бағдарламашысы ұсынылады, бірақ мен Arduino қолдандым)

SOIC8 клипі (онсыз жасауға болады, бірақ бұл өте қатал және мүлде ұсынылмайды)

(міндетті емес) Жалғастыруды жеңілдету үшін тақта және/немесе секіргіш сымдар

1 -қадам: микробағдарламаны жүктеңіз

BLF A6 микробағдарламасы (және басқа да көптеген шамдар) мұнда қол жетімді. Автор бұл туралы осында айтады. Сіз оны іске қосу арқылы жүктей аласыз:

bzr филиалы lp: ~ ойыншық ұстаушы/фонарь-микробағдарлама/blf-a6-финал

терминалда. (bzr орнату қажет болуы мүмкін)

Ескерту: осы нұсқаулықтың алдыңғы редакциясында мен оның орнына «bzr branch lp: flashlight-firmware» қолдандым. Мен білдім, бұл конденсатордың жұмыс істемейтін уақытына қате мәндері бар ескірген нұсқаны жүктейді, бұл түймені ұзақ уақыт басады. (Reddit -тегі осы ағынның арқасында)

Сізге қажет қалта-blf-a6-final/ToyKeeper/blf-a6. Онда жыпылықтауға дайын.hex файлы (blf-a6.hex) және сіз өзгерте алатын С коды бар. (blf-a6.c) Егер сіз микробағдарламалық жасақтаманы өшіргіңіз келсе, келесі қадамды өткізіп жіберіп, blf-a6.hex пайдаланыңыз. Бұл репозиторийдегі басқа микробағдарламалар да жұмыс істейтін шығар.

2 -қадам: микробағдарламаны өзгертіңіз

Қалаған мәтіндік редакторда немесе IDE-де blf-a6.c ашыңыз. Ең қызықты сызықтар 116 және 131 жолдар арасындағы режимдік топтар болып табылады. Олар келесідей:

// 1 -режим тобы #үлкен тізбек үшін NUM_MODES1 7 // PWM деңгейін анықтайды (FET немесе Nx7135) #MODESNx1 0, 0, 0, 7, 56, 137, 255 // шағын тізбек үшін PWM деңгейлерін анықтаңыз (1x7135) # MODES1x1 2, 20, 110, 255, 255, 255, 0 // Менің үлгім: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32) // Krono үлгісі: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78) // Манкер2: 2 = 21, 3 = 39, 4 = 47,… 6? = 68 // Әр режим үшін PWM жылдамдығы #MODES_PWM1 PHASE, FAST, FAST, FAST, FAST, FAST, PHASE // Mode group 2 #define NUM_MODES2 4 #define MODESNx2 0, 0, 90, 255 #define MODES1x2 20, 230, 255, 0 #MODES_PWM2 FAST, FAST, FAST, PHASE анықтаңыз

Әр топ үшін MODESN - FET үшін қолданылатын PWM мәні, ал MODES1 - әр режимде 7135 үшін қолданылатын PWM мәні. Бұл сан 0 -ден 255 -ке дейін және жарықтың жарықтығына сәйкес келеді. Қосымша ақпарат мына жерде. («Режимді реттеу» бөліміне төмен қарай жылжытыңыз) PWM жылдамдығының дәл қандай екеніне сенімді емеспін. Егер біреу білсе, түсініктемелерде айтыңыз. FET 7135 -ке қарағанда көбірек жарық шығара алады, бірақ 7135 батареяның қызмет ету мерзімінде жарық деңгейін біршама сақтайды, ал FET батарея қуаты таусылған сайын күңгірт болады.

Мұнда сіз PWM мәндерін өз қалауыңыз бойынша режимдер шығаруға реттей аласыз. Мүмкін сіз режимдердің санын да өзгерте аласыз, бірақ мен оны сынап көрмедім, себебі мен екінші режимдегі төрт режимді қаладым. Мен қараңғы ай режимін алғым келді, сондықтан мен біріншісін 0/1 деңгейіне қойдым, мен турбо режимін мағынасыз деп таптым, сондықтан мен оны 137/255 -ке ауыстырдым, бұл жеті режим тобындағы алты режимнің эквиваленті. Қажет болса, қалған кодты өзгерте аласыз, бірақ мен оны сынап көрмедім.

Қажетті кодты алғаннан кейін оны.hex файлына жинау керек. Кем дегенде, сізге gcc-avr және avr-libc қажет. Егер сізде проблемалар болса, микробағдарламаны оқу бағдарламасындағы басқа тәуелділіктерді қараңыз. Репозиторийде құрастыру сценарийі бар, бірақ мен оны жұмыс істей алмадым. Оның орнына мен ескі нұсқаны жүктедім

bzr branch lp: фонарь-микробағдарлама

және ескі құрылыс сценарийін (мен жұмысқа кірісе алатын) жаңасына көшіріп алдым. Содан мен жүгірдім:

../../bin/build.sh 13 blf-a6

blf-a6 қалтасында. (мұны істеудің жақсы жолы болуы керек)../../bin/build.sh сценарийді шақырады, 13 ол ATtiny13 үшін салынғанын, ал blf-a6 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.cavr -gcc -Wall -g -Os -mmcu = attiny13 -fgnu89 -inline -o blf -a6.elf blf -a6.o avr -objcopy --set -бөлім-жалаушалар =.eeprom = бөлу, жүктеме-өзгерту-бөлім-lma.eeprom = 0-өзгеріссіз-ескертулер -O ihex blf-a6.elf blf-a6.hex Бағдарлама: 1022 байт (99,8% Толық)) Деректер: 13 байт (20,3% Толық)

Пәрмендер қазірдің өзінде өлшем бойынша оңтайландырылған, сондықтан егер ол 100% толды десе, түсініктеме беріп көріңіз

#FULL_BELING_STROBE анықтаңыз

кіші минималды велосипедпен жүру үшін 147 -жолда. Егер ол әлі де сәйкес келмесе, сізге басқа жерден басқа кодты алып тастауға тура келеді. Құрастыру аяқталғаннан кейін қалтада blf-a6.hex деп аталатын файл болуы керек. Бұл сіздің құрастырылған кодыңыз, жыпылықтауға дайын.

3 -қадам: Шамды бөлшектеңіз

Шамды бөлшектеңіз
Шамды бөлшектеңіз
Шамды бөлшектеу
Шамды бөлшектеу
Шамды бөлшектеу
Шамды бөлшектеу

Шамның ұшын сағат тіліне қарсы бұрап алыңыз. Мұнда екі бұрандалы қосылыстар бар. Шамның шамының ұшына жақыны рефлектор мен жарықдиодты ашады, ал ортасына жақынырақ жүргізуші тақтасын ашады. Сіз оның ортасына жақын болғанын қалайсыз.

Ішінде сіз батарея серіппесі мен екі саңылауы бар сақинаны көруіңіз керек. Пинцет / жіңішке қысқыш / қайшыны тесіктерге салыңыз және сағат тіліне қарсы бұраңыз. Бұл өте қатал және екі бөлек нысанды пайдалану сізге жеткілікті левередж бермеуі мүмкін. Мен қайшыны Швейцария армиясының пышағына қолдандым.

Сақинаны алғаннан кейін жүргізуші тақтасын босатыңыз. Ол әлі де екі сыммен бекітілген, сондықтан абай болыңыз. Олар бір -біріне бұралған, сондықтан сымдар босатылғанша тақтаны бір немесе басқа айналдырыңыз. Егер сізде жеткілікті бос орын болса, тақтаны аударыңыз. Сізге «TINY13A» чипі жоғары және қолжетімді болуы үшін қажет. Егер ол дұрыс емес болса, оны басқа жаққа аударыңыз. Көктемді бүйір астына бекітіңіз. Бұл оны уақытша орнында ұстап, чипке жетуді жеңілдетеді. Егер сізде қиындықтар туындаса, сіз басқа қосылысты бұрап алып тастай аласыз және тақтаны толығымен алып тастай аласыз, бірақ мен оны сынап көрмедім.

4 -қадам: Жыпылықтайтын жабдықты қосыңыз

Жыпылықтайтын жабдықты қосыңыз
Жыпылықтайтын жабдықты қосыңыз
Жыпылықтайтын жабдықты қосыңыз
Жыпылықтайтын жабдықты қосыңыз
Жыпылықтайтын жабдықты қосыңыз
Жыпылықтайтын жабдықты қосыңыз

Енді сіз SOIC8 қысқышын ATtiny13 чипі мен бағдарламашыны қосу үшін қолданасыз. Менің SOIC8 қысқышыммен, егер менде екі ұшының сол жағында қызыл сым болса, қысқыштың ұшындағы маған жақын түйреуіштер коннектор төмен қараған кезде коннектордың ұшындағы маған жақын түйреуіштер қатарына сәйкес келеді. (менің супер көркем диаграмманы қараңыз) Бұл нұсқаулық USB ASP V2.0 бағдарламашысын пайдалануды ұсынады. Егер жасасаңыз, оны келесідей қосыңыз:

  • ATtiny13 -тегі 1 -түйін USB ASP -ге 5 -ші істікке (бастапқы күйге қайтару)
  • ATtiny13 -тегі 4 -шін USB ASP -ге (жерге) 10 -штыру үшін
  • USB ASP (MOSI) құрылғысына 1 -ші түйреу үшін ATtiny13 -тегі 5 -түйреуіш
  • ATtiny13 -тегі 6 -түйін USB ASP -ге (MISO) 9 -штыру үшін.
  • ATtiny13 -тегі 7 -түйін USB ASP -ге (SCK) 7 -ге бекітіңіз.
  • USB ASP (VCC) қосқышына ATTiny13 -тегі 8 -ші түйреуішті 2 -ге қосыңыз.

Егер сіз мен сияқты Arduino қолдансаңыз, сізге біраз дайындық қажет. Осы нұсқаулықтың нөл және екінші қадамдарын орындаңыз:

Arduino IDE ашыңыз және Arduino компьютерге қосылғанын тексеріңіз. Интернет -провайдердің эскизін Файл> Мысалдар> 11. ArduinoISP> ArduinoISP ішінен тауып, оны Arduino -ға жүктеңіз. Содан кейін оған ATtiny13 қосыңыз:

  • ATtiny13 -тегі 1 -түйін Arduino -дағы 10 -шы түйінге (қалпына келтіру)
  • ATtiny13 -тегі 4 -түйін Arduino -дағы GND -ге (жерге)
  • ATtiny13 -тегі 5 -түйін Arduino -ға (MOSI) 11 -ге бекітіңіз.
  • ATtiny13 -тегі 6 -түйін Arduino -ға (MISO) 12 -ге бекітіңіз.
  • ATtiny13 -тегі 7 -түйін Arduino -ға (SCK) 13 -ке бекітіңіз.
  • ATtiny13 -тегі 8 -түйін Arduino -дағы VCC / 5V / 3.3V -ге дейін (кез келгені жұмыс істеуі керек, бірақ 5В сенімді) (VCC)

Мен аппараттық пакетті де орнаттым, бірақ бұл қажет емес шығар. Егер күмәндансаңыз, көріңіз. Бұл ешқандай зиян келтірмейді. Бірақ жүктегішті күйдірмеңіз, себебі ол сіздің шамды кірпішке айналдыруы мүмкін.

5 -қадам: Жарқыл

Микробағдарламаны жарқылдау үшін сізге AVRDUDE орнату қажет. Менің Arduino -мен жұмыс істейтінін тексеру үшін мен жүгіремін:

avrdude -v -p attiny13 -c stk500v1 -P /dev /ttyUSB0 -b 19200 -n

Егер ол жұмыс істесе, мен бір жерде бос қалтаға өтіп, жүгіремін:

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 -Uffuse: r: hfuse -dump.hex: i

Бар микробағдарламаның сақтық көшірмесін жасау үшін. Мен оны іске қосу үшін 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

Белгілі бір себептермен, мен stk500v1 бағдарламашысы ретінде көрсетуім керек, мен порт пен жіберу жылдамдығын көрсетпейінше ол жұмыс істемеді. Егер сіз Arduino -ны қолдансаңыз және күмәндансаңыз, ATtiny13 -ті Arduino -дан ажыратып, осы жердегі параметрлерді пайдаланып Arduino IDE -ге эскиз жүктеп көріңіз. Бұл сәтсіз болады, бірақ ол консоль терезесінде қандай пәрменді қолданатынын айту керек. Сіз атрибуттарды AVRDUDE пәрменіне көшіре аласыз.

Егер сіз USB ASP бағдарламашысын қолдансаңыз, оны орындаңыз:

avrdude -v -p attiny13 -c usbasp -n

Оның жұмыс істейтінін білу үшін және:

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

Сақтық көшірме жасау үшін және:

avrdude -v -p attiny13 -c usbasp -u -Uflash: w: blf -a6.hex -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m

Жыпылықтау үшін.

-Uflash: w: blf-a6.hex ол жыпылықтайтын файлды білдіреді. Егер басқаша болса, blf-a6.hex файл атауымен ауыстырыңыз.

-Жарық: w: 0x75: m және -Uhfuse: w: 0xFF: m -сақтандырғыштар. Сіздікі басқаша болуы мүмкін, сондықтан фонарь-микробағдарлама/bin/flash-tiny13-fuses.sh ішіндегі мәндерді екі рет тексеріңіз.

Егер ол ауқымнан тыс қате берсе, бұл кескін чипке сыймайтындай үлкен екенін білдіреді және сіз кодтың бір бөлігін алып тастауыңыз керек. Егер ол сәтті жыпылықтаса, ол прогресс жолағын көрсетуі керек, содан кейін «avrdude жасалды. Рахмет» деп айтыңыз.

Егер ол «жарамсыз құрылғы қолтаңбасы» деп жазса және сіздің бағдарламашыңыздағы секіргіш 3.3v -ге орнатылса, оны 5v -ге орнатып көріңіз.

Сіз оны жыпылықтағаннан кейін, фонарьды қайта жинап, оның жұмыс істейтінін тексеріңіз. Mine жасады, бірақ The мерзімі өшіру үшін кейбір себеп The Long басады қажеттілігіне байланысты болуы туралы, үш секунд орнына ̶1̶.̶5̶.̶ Мен ̶d̶o̶n̶'̶t̶ білсеңіз ̶i̶t̶'̶s̶ нәрсе үшін не істеу отырып The Arduino немесе өйткені ̶I̶'̶v̶e̶ пайдаланылған The Дұрыс параметрлер ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ болсаңыз, кез келген идея, ̶ болсын білу маған жылы The ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶

Өңдеу: Мен оны түзеттім. (1 -қадамды қараңыз)

Ұсынылған: