|
|
|
4456 3 5 3 |
|
Опции темы | Поиск в этой теме |
08.10.2017, 21:35 | 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ветеран Фонарёвки
Регистрация: 08.10.2011 Последняя активность: 30.03.2024 21:54 Адрес: 哈尔滨
Сообщений: 8022
Сказал(а) спасибо: 934
Поблагодарили: 5193 раз(а) в 2784 сообщениях
|
Прошивка для модинга линейника х7135 на PIC
Потихоньку накопилось некоторое количество линейников на PIC. Накопились в силу невозможности конкурировать с прошитыми «народными» линейниками, для которых на форуме есть много вариантов прошивок.
Раньше драйвера на PIC часто делались на PIC12F629/675. Поэтому простыми прошивками понемногу модил простенькие фонарики/светильники. Сейчас простые линейные драйвера чаще делаются на непрограммируемых (однократно программируемых) аналогах 508/629/675. Что означает необходимость замены микроконтроллера. Решил дать новую жизнь этим линейникам заменой контроллера и написанием полнофункциональной прошивки. Вроде бы должно быть вполне востребовано. Особенно с учетом того, что есть много импульсных драйверов с отдельной микросхемой DC и управлением от PIC. С точки зрения управления – отличия небольшие, и там и там регулировка обычно реализуется формированием на микроконтроллере определенного импульсного сигнала. С минимальными доработками такая прошивка подойдет и для модинга импульсных драйверов. И если уж менять микроконтроллер, то на что-то более-менее приличное. Остановился на серии PIC12F18хх. Для линейника она как бы и избыточно, но если смотреть вперед, на модинг импульсников или готовых фонарей – дополнительный функционал лишним не будет. Микроконтроллеры типа PIC12F18хх все чаще используется в разных фонариках, такие есть и у достаточно интересных и популярных производителей (Skilhunt, Ningbo Bright, …). Нередко, управление, режимы и небольшой функционал являются одним из самых слабых мест конкретных фонарей. Прошивкой вполне можно это исправить. Представляю первую версию прошивки для линейников на PIC и 7135. В прикреплениях два варианта прошивки (с исходниками) – для 8х7135 и для 4х7135, они отличаются, только режимами и таймерным степдауном для турбо 8х7135. Проект писался на С в MPLAB_IDE_8.92, прошивка написана для PIC12F1840. PIC12F1840 -- просто потому, что много памяти и были доступны в магазине. Помимо замены микроконтроллера понадобится использовать хотя бы один стабилизатор MEL7135, вместо традиционных для народного драйвера AMC7135. Прошивка написана под использование частотных особенностей MEL7135 и только на AMC7135 нормально не заработает. Достаточно только одного MEL7135, того, что будет питаться импульсами, остальные могут быть AMC7135. Я именно так обычно и использую – одна MEL7135, остальные AMC7135. Впрочем, линейники на PIC часто продаются собранными на MEL7135. Драйвер с такой прошивкой имеет ряд особенностей: -- Высокая частота формирования режимов с током меньше, чем у одной 7135. -- Экономичность. Микроконтроллер работает на частоте 500кГц, а мунлайты и маяк реализованы через спящий режим, поэтому слабые режимы получаются очень экономичными, микроконтроллер хватает мизерного тока питания. -- Мягкая блокировка (отключаемая). Позволяет на заблокированном фонаре включать фонарь с ограничением по времени (в зависимости от режима). Блокировку можно снимать не только перед включением, но и после. -- Мунлайты и маяки, в силу мизирного потребления, идеологически реализованы не как режимы, а как состояния выключенного фонаря. Т.е., выключенный фонарь может совсем не светить, или может светить мунлайтом/маяком. Несмотря на то, что мунлайтами фонарь может светить годами, есть функция (отключаемая) автовыключения мунлайтов/маяков через три дня. А также более традиционные фичи: индикация уровня заряда, выключение при низком напряжении, автопонижение режимов при разрядке, стробы (быстрый, медленный, вело, авиа, SOS), таймерный степдаун для турбо. Есть и термоконтроль по температуре корпуса микроконтроллера, при повышении температуры до 70 градусов режим свечения понизится на одну ступень. Кому не понравятся режимы или управление, можно исправить код под себя. Если будет интерес – откомментирую код прошивки. Основные режимы, частота (для формируемых импульсно), ориентировочно люмены, ток потребления для варианта 8х7135 на 380мА при напряжении 3,7В (и ток через светодиод), примерное время работы (от полностью заряженной банки 3400, без учета саморазряда аккума, без учета степдаунов некоторых режимов по времени или напряжению):
Управление режимами было откатано в результате длительной апробации на разных юзерах, в основном это не фонаревщики, чаше всего в туристических фонарях. Больше всего внимание было на простоту (легкость запоминания и малое колличество) и логичность комбинаций, без сложных комбинаций. Если описать одним абзацем все управление – будет много букв и неудобно для понимания. Лучше разбить описание по уровням использования, вроде получается более понятно. Комбинации, используемые для управления: К – короткий клик, обычное короткое нажатие 2К, 3К – два или три коротких клика подряд, с минимальной паузой между ними Д – долгое нажатие КД – короткий клик + долгое нажатие 2КД – два коротких клика и долгое нажатие Первый уровень, обычное использование: К – для выключения и включения фонаря (режим включения настраивается, сразу после прошивки – «Второй» режим). Д – повышает яркость, по кругу, после «Третий» идет «Первый», без захода в слабые и турбо. Если долго удерживать – режимы переключаются автоматически: ….>Первый>Второй>Третий>Первый>Второй>Третий и т.д., 2К – «Турбо1» из любого режима и состояния, из включенного или выключенного. Если уже в режиме «Турбо», то по 2К происходит переключение между двумя турбо: «Турбо1»<> «Турбо2». 3К – тройной клик вызывает индикацию уровня заряда аккумулятора: фонарь мигнет от 1 до 5 раз (полностью заряжен – 5 миганий, разряжен – одно мигание). Фонарь можно включать не только коротким кликом, но и Д (долгим нажатием). Из выключенного состоянии при Д включается «Слабый1», если продолжать удерживать кнопку, «Слабый1» сменится на «Слабый2». Режимы можно переключать не только увеличением по кругу Д, но и понижением комбинацией КД. Если не отпускать кнопку (продолжать удерживать), режимы будут понижаться автоматически, вплоть до «Слабый1», без переходя к ярким режимам. Второй уровень, расширенное использование: Стробоскопы включаются комбинацией 2КД. Яркость стробоскопа регулируется аналогично обычному режиму, с некоторыми нюансами. Для увеличения яркости стробоскопа нужно удерживать долгое нажатие Д, при удержании яркость будет повышаться вплоть до «Турбо2», без перехода к слабым режимам. Для уменьшения яркости стробоскопа используется КД, если не отпускать кнопку (продолжать удерживать), режимы будут понижаться автоматически, вплоть до «Слабый1», без переходя к ярким режимам. Для изменения вида стробоскопа нужно использовать Д (но без удержания, если кнопку держать слишком долго– произойдет увеличение яркости, а не изменение вида стробоскопа). Всего есть 5 видов стробоскопа: «Быстрый строб», «Медленный строб», «Велостроб», «Авиастроб» и «SOS». Выход из стробоскопа: - 2КД – фонарь прейдет в режим простого свечения на такой же яркости. - К – фонарь выключиться. Комбинация КД на выключенном фонаре включает мунлаты или маяки. При нажатии КД активируется «Мунлайт1» (0,01 Люмен), если удерживать кнопку – станет активен «Мунлайт2» (|0,6 Люмен). Повторное нажатие выключает мунлайт (при удержании – сначала выключает, потом включает «Мунлайт1», потом «Мунлайт2»). Если сразу же после выбора мунлайта повторить КД – активируется один из маяков, «Маяк1» или «Маяк2» (в зависимости от выбранного мунлайта, на котором активируется маяк). Маяк представляет собой короткие вспышки мунлайтом каждые две секунды. Выключается маяк так-же как и мунлайт (КД). Если, при включенном мунлайте/маяке, включить и выключить фонарь – выбранный мунлайт/маяк будет светить на выключенном фонаре трое суток (автоотключение мунлайта/маяка можно деактивировать). Третий уровень, специальные возможности и настройка: На фонаре может быть включена блокировка, для предотвращения случайного включения. Блокировка устанавливается и снимается серией коротких кликов, больше трех, не важно, сколько именно. При установке блокировки фонарь коротко моргнет несколько раз, при снятии блокировки – моргнет один раз. Если установить блокировку при включенном фонаре – фонарь покажет установку блокировки и выключиться. На выключенном и заблокированном фонаре доступно только снятие блокировки, индикация уровня аккумулятора (3К) и управление мунлайтами/маяками. В фонаре также можно настроить режим, в котором фонарь включается коротким кликом (К), тип и яркость строба при его включении, отключить автоотключение мунлайта/маяка, включить «Мягкую блокировку». Для настройки режима включения, нужно включить фонарь, установить нужную яркость с помощью Д или КД (обязательный пункт) и вызвать индикацию уровня зарядки аккумуляторов 3К, пока фонарь отмаргивает уровень – повторить эту комбинацию (3К). Если текущий режим запомниться, как режим по умолчанию – фонарь сделает короткую серию морганий. Если этот режим ранее был выбран как режим по умолчанию – произойдет отключения этой функции и включиться режим памяти. В режиме памяти, фонарь по короткому клику (К) будет включаться в том же режиме, что использовался последний раз до выключения. Аналогично, двумя вызовами индикации состояния аккума (второй раз 3К должно быть нащелканно пока фонарь отмаргивает уровень), производятся все настройки. Для установки строба, который включается по умолчанию: нужно выбрать этот тип строба и запомнить его двумя подряд вызовами индикации уровня заряда аккумуляторов. Для установки яркости строба по умолчанию: нужно установить необходимую яркость строба и запомнить его двумя комбинациями, 3К и 3К. Для активации/деактивации автоматического отключения мунлайта/маяка: выключить мунлайт/маяк и сделать 3К + 3К. При установке автоотключения фонарь моргнет короткой серией, при снятии – одним морганием. Для активации/деактивации «Мягкой блокировки»: заблокировать фонарь и сделать 3К + 3К. При установке мягкой блокировки фонарь моргнет короткой серией, при снятии – одним морганием. «Мягкая блокировка» -- вид блокировки, когда фонарь включается обычным способом и управляется независимо от установленной блокировки. Но, заблокированный фонарь, при выборе любого режима, покажет блокировку (котроткими морганиями) и через некоторое время понизит режим, понижение (с индикацией блокировки) будет происходить вплоть до «Слабый1», после чего фонарь выключится. Время свечения в каждом режиме изменяется от 9 сек для «Турбо2» до 3 мин для «Слабый1». Если во время работы заблокированного мягкой блокировкой фонаря снять блокировку, фонарь моргнет один раз, показывая снятие блокировки, и останется в текущем режиме. При мягкой блокировке, если фонарь случайно включиться в «Турбо2» (два двойных клика), суммарное время свечения во всех режимах, до выключения, немного меньше 7 минут (в турбо режимах совсем мало – 9 и 12 секунд), суммарно будет потрачено всего около 18мАч, а короткого времени свечения в старших режимах совершенно недостаточно, что бы что-либо испортить/поплавить. В фонаре есть «Высасыватель» батареи — переключение режима фонаря в более слабые режимы при достижении на батарее критически низкого напряжения и затем полное отключение фонаря при полном разряде. При разряде аккумулятора, фонарь будет автоматически понижать режимы, вплоть до «Слабый1». При 3,2В понижается «Турбо», при 3,1В – остальные, при 2,8В фонарь выключится с активацией «Мунлайт2»(0,06 Люмен), при 2,6В – полностью выключится. При модинге драйвера, кроме замены контроллера, нужно перекомутировать соответствующим образом соединения микроконтроллера со стабилизаторами 7135. Рекомендаций давать не буду – разновидностей линейников на PIC слишком много, надо подходить творчески. Сейчас в прошивке: 5-я ножка управляет «пульсирующей» MEL7135, 6-я – одной 7135, 7-я – двумя 7135, остальные 7135 (если есть) – на 2-й ножке. Кнопка сидит на 4-й ножке (между ножкой и землей). Также, я обычно меняю защитный диод на P-канальный полевик (чуть дольше сохраняется стабилизация). Для примера две картинки порезанного и готового драйвера на 4х7135 (слева) и 8х7135 (справа). 08f_e_sl6r_8x_.zip 08f_e_sl6r_4x_.zip |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12.10.2017, 13:54 | 2 |
|
Re: Прошивка для модинга линейника х7135 на PIC
А что там с особенностями MEL7135? Давно не интересовался линейниками.
И еще, компилил чем? Демо версией с отключенной оптимизацией? Или есть лицензия? |
12.10.2017, 16:27 | 3 |
Ветеран Фонарёвки
Регистрация: 08.10.2011 Последняя активность: 30.03.2024 21:54 Адрес: 哈尔滨
Сообщений: 8022
Сказал(а) спасибо: 934
Поблагодарили: 5193 раз(а) в 2784 сообщениях
|
Re: Прошивка для модинга линейника х7135 на PIC
Ну например, мунлайт 0,01 люмен реализован импульсами около 500 наносекунд. АМС полностью игнорирует такие короткие импульсы.
Или еще -- питая MEL7135 короткими импульсами с частотой повторения 125кГц, светодиод она может питать импульсами 250кГц. HI-TECH v9.82. 45 дней она полнофункциональна. А дальше, в принципе и лицензии гуглятся, но для такого кода для такого контроллера, можно и на версии lite оставаться, оптимизация не сильно ужимает код. [Исправлено: ceramic, 12.10.2017 в 18:01] |
Поблагодарили: 1 раз |
Tamagotchi (12.10.2017)
|
12.10.2017, 18:00 | 4 |
Ветеран Фонарёвки
Регистрация: 08.10.2011 Последняя активность: 30.03.2024 21:54 Адрес: 哈尔滨
Сообщений: 8022
Сказал(а) спасибо: 934
Поблагодарили: 5193 раз(а) в 2784 сообщениях
|
Re: Прошивка для модинга линейника х7135 на PIC
Про 200 наносекунд соврал -- 500 наносекунд, исправил.
На осциллограммах ток через светодиод (напряжение на последовательном со светодиодом резисторе 0,3 Ом), синим -- питающее MEL7135 напряжение. Импульсы мунлайта 0,01: Импульсы мунлайта 0,06: Импульсы большинства остальных режимов: Импульсы для 100мА: Импульсы для 200мА: [Исправлено: ceramic, 12.10.2017 в 18:27] |
Поблагодарили: 4 раз(а) |