Jump to content

    
Sign in to follow this  
VladislavS

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

Recommended Posts

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites
без драйвера режимы переключаются?

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

Share this post


Link to post
Share on other sites
без драйвера режимы переключаются?

 

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

 

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

 

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

 

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

 

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

 

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

Share this post


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

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

Share this post


Link to post
Share on other sites
потому что инкрементировать нужно только если питания не было 1-2с. а если больше - то инкрементировать не надо

Ну тогда так:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Share this post


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

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

 

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

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

Share this post


Link to post
Share on other sites
была такая версия, но автор топика сказал, что и без нагрузки контроллер "видит" длинное отключение :(

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

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

Share this post


Link to post
Share on other sites
Ну контроллер в каком то смысле тоже подобие нагрузки если постараться )))

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

Share this post


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

...

 

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

 

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

Share this post


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

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

Share this post


Link to post
Share on other sites
похожий девайс

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

 

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

 

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

 

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites
Guest @Ark
Цитата(Stells)

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

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

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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this