Перейти к содержанию
    

Как распознать кратковременное выключение на Tiny13

все ли точно в постановке задачи?

Абсолютно. У меня на руках 3 фонарика с тремя разными драйверами, которые ведут себя именно так как я описал. Короткое выключение питания - смена режима. Длинное выключение питания - нет смены режима.

Еще у меня россыпью два типа драйверов с одинаковой схемой, но разными топологиями и прошивками. Один из них я уже перепрошил и ставлю на нём опыты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

глупое предположение, но может какие-то переходные процессы на LED драйвере присутствуют?

по включению нога PB1 на вход, проверяем наличие единицы, если есть, то горячий рестарт, нет - холодный.

без драйвера режимы переключаются?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

без драйвера режимы переключаются?

Без нагрузки режимы переключаются. PB1 падает быстрей чем питание :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

без драйвера режимы переключаются?

 

Без нагрузки режимы переключаются. PB1 падает быстрей чем питание

 

Я вот тоже думаю, что дело в драйвере (и хотел это предложить раньше, да занят был). Если бы это был просто полевик, то его затвор вполне неплохо хранил бы напряжение ниже чем, примерно, полвольта.

 

Постоянная времени по утечкам и прочему вполне может попасть в секунду.

 

Кстати, даже десятимегаомный щуп быстро разрядит такой затвор. Поставьте щуп на "затвор" и посмотрите, будет ли переключать режимы.

 

Для большей уверенности надо даташит на драйвер покурить (к сожалению, сам сейчас с трубы, сделать этого не могу).

 

Но идея с саморазогревом мне вообще нравится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я вот тоже думаю, что дело в драйвере (и хотел это предложить раньше, да занят был). Если бы это был просто полевик, то его затвор вполне неплохо хранил бы напряжение ниже чем, примерно, полвольта.

так PB1 не является ADC-входом. его можно инициализировать, как вход компаратора, но тогда затвор драйвера должен хранить не полвольта, а больше 1,1В - напряжение втроенного ИОН

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

потому что инкрементировать нужно только если питания не было 1-2с. а если больше - то инкрементировать не надо

Ну тогда так:

-----------------------------------

1.Инициализация.

1.1 Смотрим питание (через ацп)

1.2 Сравниваем со значением ранее записанным.

1.3 Если напряжение выше, к примеру на 10%( чем ранее записанное значение), то пропускаем инкремент. (п.2 а потом п.5)

1.4 Если напряжение не выше 10% инкрементируем счетчик эффектов.

2.Читаем EEPROM (номер эффекта)

3.Инкрементируем

4.записываем в EEPROM следующий номер эффекта

5.Начинаем крутить выбранный эффект

6.Периодически читаем данные с АЦП, усредняем и записываем значение в память.Что дает нам средний уровень питающего напряжения под нагрузкой.

-----------------------------------

т.о. если источник питания(в случае фонарика батарейка) отключается на продолжительное время уровень напряжения на холостом ходу поднимается до определенной величины, что не успевает произойти если нагрузку отключают на короткий промежуток времени.

Эту версию просто проверить если запитать фонарик от стаб. ИП. :-)

зы:Все таинства скорее всего происходят при включении контроллера, а не при его выключении как думают многие )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если источник питания(в случае фонарика батарейка) отключается на продолжительное время уровень напряжения на холостом ходу поднимается до определенной величины, что не успевает произойти если нагрузку отключают на короткий промежуток времени.

была такая версия, но автор топика сказал, что и без нагрузки контроллер "видит" длинное отключение :(

 

зы:Все таинства скорее всего происходят при включении контроллера, а не при его выключении как думают многие )))

безусловно... при выключении контроллер не может знать, на какое время его выключили

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

была такая версия, но автор топика сказал, что и без нагрузки контроллер "видит" длинное отключение :(

Ну контроллер в каком то смысле тоже подобие нагрузки если постараться )))

Тут вопрос "видит" ли он короткое отключение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну контроллер в каком то смысле тоже подобие нагрузки если постараться )))

как? даже если можно постараться, то делать это нужно непрерывно. т.е. разряжать батарею постоянно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я вот тоже думаю, что дело в драйвере (и хотел это предложить раньше, да занят был). Если бы это был просто полевик, то его затвор вполне неплохо хранил бы напряжение ниже чем, примерно, полвольта.

...

 

Для большей уверенности надо даташит на драйвер покурить (к сожалению, сам сейчас с трубы, сделать этого не могу).

 

Там не затвор, это питание самого драйвера на котором у него висит bandgap reference и немного управляющей логики. Скорее всего, оно быстро разрядится до нуля.... или не до нуля, а до порога открытия каких-нибудь переходов, а дальше будет разряжаться мее-е-едленно... а это идея кстати!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там не затвор, это питание самого драйвера на котором у него висит bandgap reference и немного управляющей логики. Скорее всего, оно быстро разрядится до нуля.... или не до нуля, а до порога открытия каких-нибудь переходов, а дальше будет разряжаться мее-е-едленно... а это идея кстати!

В любом случае, момент пропадания питания асинхронный относительно фазы PWM-управления драйверами. Эту теорию можно было бы "притянуть", если бы в момент пропадания на выходе всегда был "1". А если "0" ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

похожий девайс

Ну собственно это оно и есть, только топология чуть другая.

 

если источник питания(в случае фонарика батарейка) отключается на продолжительное время уровень напряжения на холостом ходу поднимается до определенной величины, что не успевает произойти если нагрузку отключают на короткий промежуток времени.

 

Со стабилизированным источником питания, с нагрузкой и без переключение режимов работает.

 

безусловно... при выключении контроллер не может знать, на какое время его выключили

Максимум может "подготовиться" к последующему включению - установить какой-то признак, который недолго хранится...

 

С праздником всех! По этому поводу жена отобрала все приборы на сегодня. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Глупый вопрос, но все же)))А оригинальный код в тиньке наверняка залочен?

Когда жена вернет приборы :-), попробуйте отключить резюки на ацп, как в этом случае поведет себя контроллер?

С праздником!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark
Цитата(Stells)

подтяжкой поддерживать? попробовал на меге8 - за 10мкс напряжение падает до 0. если только подтяжку выключать перед отключением питания? но все-равно при Rвх=100МОм, Cвх=10пФ получатся миллисекунды

Есть еще идея использовать внутренний конденсатор АЦП. Хотя его емкость всего 14pF, но если он будет отключен от всех внешних входов, то сопротивление утечки вполне может оказаться в районе 10ГОм.

При выключении питания быстро отключить АЦП, чтобы не разрядить конденсатор, а при старте - посмотреть, осталось ли там что-нибудь...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...