-
Постов
1 244 -
Зарегистрирован
-
Посещение
-
Победитель дней
9
Весь контент VladislavS
-
Ну собственно это оно и есть, только топология чуть другая. Со стабилизированным источником питания, с нагрузкой и без переключение режимов работает. Максимум может "подготовиться" к последующему включению - установить какой-то признак, который недолго хранится... С праздником всех! По этому поводу жена отобрала все приборы на сегодня. :)
-
Без нагрузки режимы переключаются. PB1 падает быстрей чем питание :)
-
Абсолютно. У меня на руках 3 фонарика с тремя разными драйверами, которые ведут себя именно так как я описал. Короткое выключение питания - смена режима. Длинное выключение питания - нет смены режима. Еще у меня россыпью два типа драйверов с одинаковой схемой, но разными топологиями и прошивками. Один из них я уже перепрошил и ставлю на нём опыты.
-
HALFer, там по схеме параллельно 1 мкФ стоят 13 кОм. 10 МОм щуп там погоды не делает. Текущий режим очень даже неплохо сохраняется при старте с хорошим питанием. Зачем для этого экстримизмом заниматься? :)
-
Ну эту детскую болезнь Atmel уже давно побидила. Да и портилась она делаеко не при каждом включении.
-
Ну это как раз понятно. В tiny на АЦП референс либо 1.1 В, либо VCC. Измерять что-то относительно VCC=2.2-3.6 В не представляется возможным. А чтобы мерять относительно 1.1 В нужен делитель. В пользу температурного эффектв есть и "за", и "против": за - у одного из фонариков в зависимости от нагрева время на которое его нужно выключить сильно плавает. Но там драйвер другой и я его схему не видел. против - там внутри фонарика очень жарко может быть. Современный светодиодный фонарь это 1 A и больше тока, текущие через диод с падением 3.5 В в объёме брелка для ключей. В любом случае, подумать в сторону тепла можно. В оригинальной схеме ничего похожего на "режим прогрева" не наблюдается - напряжение на делителе во всех режимах повторят VCC. Да и не похож он на термостор. Да, да по цвету :) Кстати, я думаю делитель на VCC, а не на АКБ висит именно потому что для измерений напряжения используется. Яркость ШИМ-мом регулируется. И на VCC она хоть немного зафильтрована. Наверное поэтому же именно 1 мкФ, а не традиционные 0.1 мкФ стоят.
-
Да. Именно ЗНАЧЕНИЕ на моей tiny максимум 75 мс удалось продержать. Сейчас попробую биты считать всеже. А то с этими номиналами емкости и схемой отвлеклись от задачи. Тут я основательно подготовился. Соорудил из завалявшейся системы управления (контроллер, кнопки, жки) генератор импульсов и через ключ подаю питание с нужной для измерений времянкой.
-
Если бы вы хоть раз в руках держали AVR и PIC, то знали бы, что у 8-ногих AVR питание на 8-ю ногу заведено, а у PIC на 1-ю. Определив фирму производитель - подключаем программатор и считываем байты сигнатуры, которые однозначно называют нам тип микроконтроллера. А вообще, как и номинал на резисторах, название микроконтроллера я просто ПРОЧИТАЛ на корпусе. Впрочем умению читать не всех сейчас учат. Ребят, я понимаю что НГ и всё такое, но это уже за гранью добра и зла... :( Падает. Прибор это видит. С благодарностью выслушаю. Я, кстати, уже сделал все остальные опции прошивки - нужные режимы яркости, защита АКБ от переразряда. Осталось только "память режимов" добить. А так пока при каждом включении новый режим.
-
@Ark, номиналы резисторов я указал дважды. Резисторы это такие маленькие черненикие детальки прямоугольной формы - номиналы написаны прямо на них.. Конденнсатор мой опыт позволяет идентифицировать как 0.1-1 мкФ, а померить без паяльника дома просто нечем. Если не умеешь читать, то не встревай, пожалуйста, со своими PIC-ми. Винимание! Внимание! Совершенно случайно у соседа нашел китайский тестер с измерением емкостей. Показывает 1.2 мкф. Берем ближайший из ряда и получаем 1 мкф. В чём я изначально почти не сомневался.
-
В понедельник. Дома нет возможности. Когда человек не способен на слух воспринять схему из одной микросхемы, одного диода, одного конденсатора и двух резисторов, то разговаривать действительно не о чем ...
-
Там же две диаграммы. На одной из них развернуто на 80 мс после выключения и видно, что через 35 мс напряжение уже упало совсем. Оно ненулевое, но это особенности ключа, через который я подаю импульсы питания для измерений. Если выключать кнопкой, то оно естественно до нуля падает. Ну пусть еще на 5 мс дольше - это погоды не делает. Щуп 10 МОм - тут подвоха не стоит искать. По крайней мере, изменения диаграммы в зависимомсти от программы я вижу хорошо. Точное значение ёмкости, как мне кажется, непринципиально. Видно же, что запитать от неё микроконтроллер на время, соизмеримое со временем размыкания и замыкания кнопки человеком не получается. Изобретать из-за этого измерительный стенд дома не очень хочется. Обещаю, на работе в понедельник измерю - делов то на 1 минуту, когда приборы есть. Дома у меня даже паяльника чтобы 0603 паять нет.
-
Не совсем понятна физика процесса. Вот берем мы две ячейки ОЗУ. После включения они с точностью до 6-7 бит стремятся к одному значению. Теперь начинаем одной переменной давать сильное воздействие посредством инвертирования битов, а вторую не трогаем. Чем больше бит совпало в той что "теребили" тем дольше было выключено питание. А вот зачем в процессе участвует ConstR ? Ведь у неё ожидается достаточно стабильное значение ConstN?
-
Извини, но рисовать схему я не буду. Из неизвестного там только номинал конденсатора, но его я дома померить не могу - тупо нечем. Все остальное на 200% соответствует моему словеcному описанию. Укол про PIC, будем считать, я пропустил мимо ушей.
-
Я в первом сообщении писал про схему. Питание от литиевого акб 3.7-4.2В. Контроллер запитан через диод и конденсатор. Диод обычный - падает на нём 0.65 В. Номинал конденсатора не измерял, но по цвету похож на 0.1 - 1 мкф. С резистивного делителя VCC->10к->3k->GND подано напряжение на ADC1. PORTB1 используеся для управления стабилизаторами тока AMC7135.
-
Вопрос в том ЗАЧЕМ и ЧТО надо писать в EEPROM при пропадании питания? Что мне это даст? galjoen, спасибо, попробую завтра так сделать. А на каком микроконтроллере и с какой схемой питания так делали? Собственно я и ищу своё. Совпадёт ли оно в конце концов с "китайским" всё равно узнать не представляется возможным - оригинальная прошивка защищена. Единственное ограничение - схема остаётся такой какая она есть. Поймите меня правильно. Если бы вопрос стоял в переделке нескольких моих фонариков, то я бы уже давно поставил электролит 100 мкФ, который позволил бы находиться в режиме Power Down нужное время и с мыслью "зато всё сделано правильно" не стал бы поднимать вопрос. Только я думаю, что люди, обитающие на данном форуме даже во время новогодних праздников, не только ради денег рисуют схемы и пишут программы. Я уже несколько лет на AVR ничего не делал - всё на молодых специалистов и студентов скинул. А тут зацепил меня этот китайский контроллер.
-
Светодиод, конечно же, просаживает. Я сейчас играюсь с двумя диодами - первый 1A кушает, а второй вообще до 2.8А. Но сам драйвер работает как задумано и без диода. И от источника пиитания тоже. Так что, версия с отслеживанием напряжения на акб на 99% ошибочна. Думаю там просто защита акб от переразряда организована. Не, именно ПОМНИТ. Короткое нажатие - смена режима, длительное выключение - нет смены режима. До какого значение опускалось питание при этом? Я же писал, что мне удалось проспать 4 мс до наступления BOR в то время как c оригинальной прошивкой всего 320 мкс до BOR. Раздел даташита "Minimizing Power Consumption" могу уже наизусть цитировать. Отключал всё что там написано. Да, отключение BOD увеличивает время сна, но не в требуемые 250 раз. Просто с включенным BOD проще замерять время по характерному перелому осциллограммы на 1.8 В.
-
Я уже думал измерять что-то в окружении. Напряжение на акб как вариант. Только в одном из режимов диод потребляет всего 40 мА. Более того, плата вообще без диода тоже меняет режимы. Я не могу представить как на акб 18650 потребление tiny13 может что-то там "просадить". За идею спасибо. Попробую её подумать :) Еще бы приборы, способные это измерить были... С другой стороны, на сколько хватит EEPROM, если в него постоянно писать ADC? А записать его только после выключение всё равно не получится - нет у них даже 1.8 мс, не говоря уже о 2x1.8 мс. Посмотри еще раз осциллограммы. Через 320 мкс они упираются в BOD. Всё, никакой жизни, кроме переходных процессов, в микроконтроллере после этого уже нет. И любое последующее включение пойдет по одному и тому же сценарию. Так что, полюбому надо какой-то побочный эффект искать. Да какие там единицы... 0603 керамика. Максимум 1 мкФ и то сомневаюсь. Доберусь до работы - померяю. Одно я понял - вылизывай, не вылизывай проспать столько не получится всё равно. Что-то есть точно. И это что-то мне уже спать спокойно не даёт? :(
-
Может я конечно не умею BOD готовить, но на моей практике не было еще ни одного контроллера, который бы POR без BOR поднимал. Наоборот возможно, но за такое время дело доходит именно до POR. Что-то я уже расстроился. Перебрал почти все регистры аппаратуры - они при ресете зануляются намертво. А SRAM не держит нужное время... Чтож там китайцы нарыли то? Нет там ничего. Вся схема это диод с конденсатором на питании и два резистора делителя питания на АЦП. Единственный конденсатор разряжается полностью за единицы миллисекунд.
-
Да не надо в EEPROM ничего при выключении писать. Надо при старте определять как давно были выключены и при хорошем питании уже всё что надо делать. Попробовал неинициализированную переменную проверять при старте. Хранится в памяти где-то 75 мс после выключения питания. После этого принимает произвольное значение, так как проверку ни на 0, ни на FF при старте не проходит. Маловато будет...
-
4мс это мой код. Оригинал 320 мкс и упирается в BOD. Обижаешь :) Да уж очень он яркий, если без режимов использовать. У меня диод CREE XP-G R5 на 1А под 350 люмен по даташиту валит. А есть ведь ещё мощней. Вот стробоскопы и решил выкинуть, да управление ШИМ-мом не очень там сделано.
-
Откопал еще одну плату, на которой ещё не успел стереть китайскую прошивку. Посмотрел как она работает. Похоже, они даже не парятся с засыпанием. Желтый луч питание на кнопке, зелёный - на котроллере. Чётко видно как они за 320 мкс доходят до BOD на 1.8 В и умирают. Совсем умирают.
-
Это позволяет им делать вполне работоспособную вещь за смешные деньги и продавать её миллионами. Сейчас попытаюсь проверить эту догадку. И когда я найду что там китайцы заметили и оно заработает, то разрешаю зачморить меня, предать анафеме и т.д. Лишь бы работало, как бы смешно это не было. Из него не стрелять и в космос не запускать.
-
Попробую. Кривой, не кривой, но как-то китайцы это сделали... Энергии в конденсаторе не хватает чтобы проспать столько времени. Так что, хоть сохраняй, хоть не сохраняй - всё одно впереди BOR и POR. Вариант на случай если ничего другого не получится. Но, как я уже писал, китайцы сделали выключение без смены режима. На той плате, на которой я сейчас экспериментирую так и работало - значит МОЖНО и НУЖНО повторить. Возможно. Схему менять не представляется возможным. Платку китайцы продают готовой и она достаточно миниатюрна - ставится в бошку фонарика. У меня даже столько проспать не получается при том что ухожу в Power Down даже до выключения питания. Вместе с тем, попадаются фонарики у которых до 2-3 секунд в зависимости от температуры можно выключать питание. Не думаю, что можно столько проспать...
-
IAR EWAVR v5.30.6 и WDT
VladislavS ответил ivainc1789 тема в IAR
Инициализационные код в IAR-вских библиотеках достаточно быстрый. Врядли он тянет на срабатывание WD. Скорее всего вы на С++ наделали классов определённых глобально и это их конструкторы работают. В них тоже wdr натыкать надо. Ну и, как уже писали, в __low_level_init() задать корректные значения для WD. Мне кажется, что программа, ловящая WDR уже на инициализации, с такими параметрами WD будет ловить его и в ходе работы. -
Как распознать кратковременное выключение на Tiny13
VladislavS опубликовал тема в AVR
Что-то споткнулся на ровном месте - спасайте! Китайские светодиодные фонарики. Режимамы работы (яркость ШИМ-ом, стробы, SOS-ы) задаёт Tiny13. Схема примитивная. Кнопка отключает минус литиевого аккумулятора от корпуса фонаря. Микроконтроллер запитан через диод и небольшую керамическую ёмкость. На PB2 (ADC1) через резистивный делитель (VCC->10k->3k->GND) заведено напряжение питания. PB1 используется для управления стабилизатором. Собственно и всё. Включение следующего режима работы осуществляется кратковременным отключением питания кнопкой. Причем, это "кратковременно" запросто может быть больше секунды. Если выключить на большее время, то после включения режим не меняется (помнится). В стремлении к совершенству полез программировать и пока не могу понять КАК они детектируют кратковременное отключение питания. Осциллографом вижу, что питания от конденсатора до BOD хватает где-то на 4 мс как бы я не усыплял контроллер. Это на 3 порядка меньше требуемого значения. Значит, он всётаки выключается. А вот найти какой регистр или флаг после POR и BOR не обнуляется да еще какое-то время сохраняет своё состояние без питания что-то не могу. Коллеги, есть свежие идеи?