VladislavS 39 3 января, 2010 Опубликовано 3 января, 2010 · Жалоба Что-то споткнулся на ровном месте - спасайте! Китайские светодиодные фонарики. Режимамы работы (яркость ШИМ-ом, стробы, SOS-ы) задаёт Tiny13. Схема примитивная. Кнопка отключает минус литиевого аккумулятора от корпуса фонаря. Микроконтроллер запитан через диод и небольшую керамическую ёмкость. На PB2 (ADC1) через резистивный делитель (VCC->10k->3k->GND) заведено напряжение питания. PB1 используется для управления стабилизатором. Собственно и всё. Включение следующего режима работы осуществляется кратковременным отключением питания кнопкой. Причем, это "кратковременно" запросто может быть больше секунды. Если выключить на большее время, то после включения режим не меняется (помнится). В стремлении к совершенству полез программировать и пока не могу понять КАК они детектируют кратковременное отключение питания. Осциллографом вижу, что питания от конденсатора до BOD хватает где-то на 4 мс как бы я не усыплял контроллер. Это на 3 порядка меньше требуемого значения. Значит, он всётаки выключается. А вот найти какой регистр или флаг после POR и BOR не обнуляется да еще какое-то время сохраняет своё состояние без питания что-то не могу. Коллеги, есть свежие идеи? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Qwertty 0 3 января, 2010 Опубликовано 3 января, 2010 · Жалоба А вот найти какой регистр или флаг после POR и BOR не обнуляется да еще какое-то время сохраняет своё состояние без питания что-то не могу. Коллеги, есть свежие идеи? Попробуйте неинициализируемую переменную и проверяйте ее значение сразу после запуска. Но все же это кривой метод - не возможно предсказать время хранения этой переменной. Оно запросто может и 5 секунд оказаться. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smk 0 3 января, 2010 Опубликовано 3 января, 2010 · Жалоба Напряжение на резистивном делителе пропадает раньше питания. По этому можно изменить режим, запомнить в EEPROM, и отправиться в powerdown. Или запомнить в оперативной и уснуть до появления прерывания от подачи питания. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tillman 0 3 января, 2010 Опубликовано 3 января, 2010 (изменено) · Жалоба Проще при вкл. сразу проверять из еепром режим,запускать нужную функцию,а потом сразу записывать в еепром след. режим и при след. включении режим сменится на др. А АЦП используется только для индикации разряда аккумулятора\батуреек. Изменено 3 января, 2010 пользователем tillman Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSVi 0 3 января, 2010 Опубликовано 3 января, 2010 · Жалоба можно даже без диода в питании контроллера обойтись схема такая выключатель - конденсатор - контроллер выключаетль - диод - резистор на землю. сигнал с резистора - на прерываение. как только происходит прерывание, запоминаем режим, меняем режим прерывания и в полный повердаун. Как только происходит второе прерывание, пробуждаемся и выполняем дальнейшие действия. Конденсатора 0.1мкф хватит только на 0.5сек, прийдется поставить что-то больше. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 3 января, 2010 Опубликовано 3 января, 2010 · Жалоба Попробуйте неинициализируемую переменную и проверяйте ее значение сразу после запуска. Но все же это кривой метод - не возможно предсказать время хранения этой переменной. Оно запросто может и 5 секунд оказаться. Попробую. Кривой, не кривой, но как-то китайцы это сделали... Напряжение на резистивном делителе пропадает раньше питания. По этому можно изменить режим, запомнить в EEPROM, и отправиться в powerdown. Или запомнить в оперативной и уснуть до появления прерывания от подачи питания. Энергии в конденсаторе не хватает чтобы проспать столько времени. Так что, хоть сохраняй, хоть не сохраняй - всё одно впереди BOR и POR. Проще при вкл. сразу проверять из еепром режим,запускать нужную функцию,а потом сразу записывать в еепром след. режим и при след. включении режим сменится на др. Вариант на случай если ничего другого не получится. Но, как я уже писал, китайцы сделали выключение без смены режима. На той плате, на которой я сейчас экспериментирую так и работало - значит МОЖНО и НУЖНО повторить. А АЦП используется только для индикации разряда аккумулятора\батуреек. Возможно. Конденсатора 0.1мкф хватит только на 0.5сек, прийдется поставить что-то больше. Схему менять не представляется возможным. Платку китайцы продают готовой и она достаточно миниатюрна - ставится в бошку фонарика. У меня даже столько проспать не получается при том что ухожу в Power Down даже до выключения питания. Вместе с тем, попадаются фонарики у которых до 2-3 секунд в зависимости от температуры можно выключать питание. Не думаю, что можно столько проспать... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smk 0 3 января, 2010 Опубликовано 3 января, 2010 · Жалоба Значит спать не надо. Нужно писать в EEPROM что требуется при следующем включении. Думаю, то что помнится - хранится в EEPROM, а то что меняется - в SRAM. Например так - если при включении режимы сохраненные в EEPROM и SRAM одинаковы (сравниваем заведомо известные адреса) - то меняем режим и пишем новый в EEPROM, иначе - не меняем режим. Я уверен, что китайский подход не позволяет делать все как положено. Наверняка SRAM хранит данные какое-то время после выключения питания (чисто конструктивная особенность), а китайцы подметив это решили использовать с целью упрощения схемотехники до смешного. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 3 января, 2010 Опубликовано 3 января, 2010 · Жалоба Я уверен, что китайский подход не позволяет делать все как положено. Это позволяет им делать вполне работоспособную вещь за смешные деньги и продавать её миллионами. Наверняка SRAM хранит данные какое-то время после выключения питания (чисто конструктивная особенность), а китайцы подметив это решили использовать с целью упрощения схемотехники до смешного. Сейчас попытаюсь проверить эту догадку. И когда я найду что там китайцы заметили и оно заработает, то разрешаю зачморить меня, предать анафеме и т.д. Лишь бы работало, как бы смешно это не было. Из него не стрелять и в космос не запускать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 3 января, 2010 Опубликовано 3 января, 2010 (изменено) · Жалоба В стремлении к совершенству полез программировать и пока не могу понять КАК они детектируют кратковременное отключение питания. Осциллографом вижу, что питания от конденсатора до BOD хватает где-то на 4 мс как бы я не усыплял контроллер. 4 ms - это уже в "своем" варианте или в "прототипе" ? Если они не используют BOD, то в "настоящем" power down потребление гораздо меньше... Дурацкий вопрос - а защита включена ? Может, попробовать вычитать, что они там понаписали ? Коллеги, есть свежие идеи? Я раньше полагал, что используют еще какой-то "вспомогательный" конденсатор. Но сейчас поглядел (правда, не знаю, что конкретно на этой платке стоит - маркировка стерта, а EEPROM внешняя, и на Vcc 10-uF электролит есть), что-то отдельного конденсатора не наблюдаю. А сам бы я попробовал именно с отдельным (для порядка - с последовательным токоограничивающим резистором), подключив его на какую-нибудь ногу ADC. При включении - измерить, что на нем, потом включить и оставить под напряжением. 0.1 uF и параллельно 10 MOhm для утечки. Ну да, при выключении он разрядится через защитный диод входа, но не ниже 0.6V, а дальше - через резистор. До единиц секунд можно поймать, я полагаю (только вот керамика очень уж от температуры плавает...) P.S. А сам я нафиг выдрал эту плату управления, потому как достала она меня этим постоянным переключением режимов и идиотским стробоскопом.. Изменено 3 января, 2010 пользователем rx3apf Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smk 0 3 января, 2010 Опубликовано 3 января, 2010 · Жалоба Это позволяет им делать вполне работоспособную вещь за смешные деньги и продавать её миллионами. Им позволяет продавать миллионами и быстро делать - быстрое и дешевое изготовление пресс-форм на корпуса. Уж поверьте мне. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 3 января, 2010 Опубликовано 3 января, 2010 · Жалоба Им позволяет продавать миллионами и быстро делать - быстрое и дешевое изготовление пресс-форм на корпуса. Уж поверьте мне. Я бы даже поверил - но, увы, типичный китайский фонарик имеет точеный корпус из дюраля... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 3 января, 2010 Опубликовано 3 января, 2010 · Жалоба Откопал еще одну плату, на которой ещё не успел стереть китайскую прошивку. Посмотрел как она работает. Похоже, они даже не парятся с засыпанием. Желтый луч питание на кнопке, зелёный - на котроллере. Чётко видно как они за 320 мкс доходят до BOD на 1.8 В и умирают. Совсем умирают. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 3 января, 2010 Опубликовано 3 января, 2010 · Жалоба Откопал еще одну плату, на которой ещё не успел стереть китайскую прошивку. Посмотрел как она работает. Похоже, они даже не парятся с засыпанием. Желтый луч питание на кнопке, зелёный - на котроллере. Чётко видно как они за 320 мкс доходят до BOD на 1.8 В и умирают. Нуля не видно. И какое входное сопротивление щупа ? В даташите нет данных о пороговом напряжении сохранения данных в RAM но, вполне возможно, что на этом все и построено.... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 3 января, 2010 Опубликовано 3 января, 2010 · Жалоба 4 ms - это уже в "своем" варианте или в "прототипе" ? Если они не используют BOD, то в "настоящем" power down потребление гораздо меньше... 4мс это мой код. Оригинал 320 мкс и упирается в BOD. Дурацкий вопрос - а защита включена ? Может, попробовать вычитать, что они там понаписали ? Обижаешь :) P.S. А сам я нафиг выдрал эту плату управления, потому как достала она меня этим постоянным переключением режимов и идиотским стробоскопом.. Да уж очень он яркий, если без режимов использовать. У меня диод CREE XP-G R5 на 1А под 350 люмен по даташиту валит. А есть ведь ещё мощней. Вот стробоскопы и решил выкинуть, да управление ШИМ-мом не очень там сделано. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smk 0 3 января, 2010 Опубликовано 3 января, 2010 · Жалоба Чётко видно как они за 320 мкс доходят до BOD на 1.8 В и умирают За это время можно че хош в EEPROM записать. Во всяком случае один бит с номером режима точно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться