реклама на сайте
подробности

 
 
23 страниц V  < 1 2 3 4 > »   
Closed TopicStart new topic
> Как распознать кратковременное выключение на Tiny13, Управление режимами фонарика кнопкой питания
rx3apf
сообщение Jan 3 2010, 14:49
Сообщение #16


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(smk @ Jan 3 2010, 17:41) *
За это время можно че хош в EEPROM записать. Во всяком случае один бит с номером режима точно.

Типовое время записи в EEPROM данных на порядок больше. Конкретно у tiny13 - 1.8 ms в предварительно стертую ячейку.
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 3 2010, 15:32
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140



Да не надо в EEPROM ничего при выключении писать. Надо при старте определять как давно были выключены и при хорошем питании уже всё что надо делать.

Попробовал неинициализированную переменную проверять при старте. Хранится в памяти где-то 75 мс после выключения питания. После этого принимает произвольное значение, так как проверку ни на 0, ни на FF при старте не проходит. Маловато будет...
Go to the top of the page
 
+Quote Post
smk
сообщение Jan 3 2010, 16:26
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Чудес не бывает. Значит что-то есть еше.

Ну во-первых всякие BOD, ADC и компаратор отключить. Вочдог отключить. Просыпаемся по положительному перепаду. Сколько будет храниться так?

Тактовая 128 кГц. Возможно лучше даже максимальная. Отмолотил и уснул.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
slanted
сообщение Jan 3 2010, 19:59
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 140
Регистрация: 2-01-08
Пользователь №: 33 768



Цитата(VladislavS @ Jan 3 2010, 10:44) *
Включение следующего режима работы осуществляется кратковременным отключением питания кнопкой.
Причем, это "кратковременно" запросто может быть больше секунды. Если выключить на большее время, то
после включения режим не меняется (помнится).


Не помню чо там в tiny13, но в 2313 был регистр, хранящий тип только что произошедшего ресета (power-on, brown-out, user...). Если контроллер достаточно быстро вырубится по BOD, то возможно внутреннее состояние проживет достаточно долго, чтобы следующий ресет определился как BOR (в даташите где-то был рисунок с уровнями, на которые BOD реагирует).

Второй вариант - с тем же регистром, но как-то цепляющийся за постоянную времени RC-цепочки на ноге ресета.
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 4 2010, 00:09
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140



Цитата
Не помню чо там в tiny13, но в 2313 был регистр, хранящий тип только что произошедшего ресета (power-on, brown-out, user...). Если контроллер достаточно быстро вырубится по BOD, то возможно внутреннее состояние проживет достаточно долго, чтобы следующий ресет определился как BOR (в даташите где-то был рисунок с уровнями, на которые BOD реагирует).

Может я конечно не умею BOD готовить, но на моей практике не было еще ни одного контроллера, который бы POR без BOR поднимал. Наоборот возможно, но за такое время дело доходит именно до POR.

Что-то я уже расстроился. Перебрал почти все регистры аппаратуры - они при ресете зануляются намертво. А SRAM не держит нужное время... Чтож там китайцы нарыли то?

Цитата
Второй вариант - с тем же регистром, но как-то цепляющийся за постоянную времени RC-цепочки на ноге ресета

Нет там ничего. Вся схема это диод с конденсатором на питании и два резистора делителя питания на АЦП. Единственный конденсатор разряжается полностью за единицы миллисекунд.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jan 4 2010, 02:33
Сообщение #21





Guests






Цитата
Что-то я уже расстроился. Перебрал почти все регистры аппаратуры - они при ресете зануляются намертво. А SRAM не держит нужное время... Чтож там китайцы нарыли то?

IMHO, немного не там ищите... При подключении нагрузки к источнику, напряжение на нем будет заметно "проседать". А при отключении нагрузки - будет медленно восстанавливаться к прежнему уровню... wink.gif
Go to the top of the page
 
+Quote Post
smk
сообщение Jan 4 2010, 07:23
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Всеже если все так как описал автор, то я думаю, что решение именно в засыпании при нажатии кнопки с принятием максимальных мер по экономии потребления. Может конденсатор там на единицы микрофарад и при вылизывании энергопортебления получим нужные секунды хранения в ОЗУ. Чудес не бывает. Может действительно запоминается значение источника сброса. Нужно посмотреть что там есть.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 4 2010, 09:44
Сообщение #23


Местный
***

Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140



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

Я уже думал измерять что-то в окружении. Напряжение на акб как вариант. Только в одном из режимов диод потребляет всего 40 мА. Более того, плата вообще без диода тоже меняет режимы. Я не могу представить как на акб 18650 потребление tiny13 может что-то там "просадить". За идею спасибо. Попробую её подумать smile.gif Еще бы приборы, способные это измерить были...

С другой стороны, на сколько хватит EEPROM, если в него постоянно писать ADC? А записать его только после выключение всё равно не получится - нет у них даже 1.8 мс, не говоря уже о 2x1.8 мс.

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

Посмотри еще раз осциллограммы. Через 320 мкс они упираются в BOD. Всё, никакой жизни, кроме переходных процессов, в микроконтроллере после этого уже нет. И любое последующее включение пойдет по одному и тому же сценарию. Так что, полюбому надо какой-то побочный эффект искать.


Цитата
Может конденсатор там на единицы микрофарад и при вылизывании энергопортебления получим нужные секунды хранения в ОЗУ.

Да какие там единицы... 0603 керамика. Максимум 1 мкФ и то сомневаюсь. Доберусь до работы - померяю. Одно я понял - вылизывай, не вылизывай проспать столько не получится всё равно.


Цитата
Чудес не бывает. Может действительно запоминается значение источника сброса. Нужно посмотреть что там есть.

Что-то есть точно. И это что-то мне уже спать спокойно не даёт? sad.gif
Go to the top of the page
 
+Quote Post
slanted
сообщение Jan 4 2010, 09:57
Сообщение #24


Частый гость
**

Группа: Участник
Сообщений: 140
Регистрация: 2-01-08
Пользователь №: 33 768



Цитата(@Ark @ Jan 4 2010, 06:33) *
IMHO, немного не там ищите... При подключении нагрузки к источнику, напряжение на нем будет заметно "проседать". А при отключении нагрузки - будет медленно восстанавливаться к прежнему уровню... wink.gif

Кстати, да. Интересно, как схема ведет себя при работе от сетевого БП, который не проседает?

С другой стороны, тогда придется постоянно писать в EEPROM текущее значение напряжения, иначе можно не успеть.
Go to the top of the page
 
+Quote Post
МП41
сообщение Jan 4 2010, 10:59
Сообщение #25


4 синих кубика
****

Группа: Участник
Сообщений: 526
Регистрация: 19-09-08
Из: полупроводника, металла и стекла
Пользователь №: 40 326



Недавно делал проект на одном из AVR, программа на ассемблере. Один из регистров общего назначения хранил режимы работы устройства, не помню точно, но r24 вроде. Оказалось, что для инициализации режима по умолчанию после включения вместо команды ldi использовал команду sbr, из-за чего последний режим сохранялся удивительным образом после отключения питания. По питанию стоит конденсатор 220мкФ, но напряжение на нём довольно быстро падало после отключения. Потребление схемы в рабочем режиме где-то 20мА.
Максимально не проверял, но секунд 30 точно регистр сохранял данные.


--------------------
p-n-p-p-n-p-n-n-p-n-p структура однако очень эффективна
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jan 4 2010, 11:03
Сообщение #26





Guests






Цитата
Я не могу представить как на акб 18650 потребление tiny13 может что-то там "просадить".

Тинька, конечно, заметно не сможет "просадить". Но если включить светодиоды (фонарь же?), то "просадка" батареи может быть существенной. АЦП тиньки должно ее определить....
Go to the top of the page
 
+Quote Post
МП41
сообщение Jan 4 2010, 11:13
Сообщение #27


4 синих кубика
****

Группа: Участник
Сообщений: 526
Регистрация: 19-09-08
Из: полупроводника, металла и стекла
Пользователь №: 40 326



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


--------------------
p-n-p-p-n-p-n-n-p-n-p структура однако очень эффективна
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jan 4 2010, 11:43
Сообщение #28


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Если выключить на большее время, то
после включения режим не меняется (помнится).


Уверены насчет выделенного слова? А то может всегда помнит? Тогда достаточно при подаче питания выбирать следующий режим. Номер его, естественно, хранить в EEPROM.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
pt200
сообщение Jan 4 2010, 13:15
Сообщение #29


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 19-05-09
Пользователь №: 49 263



Емкость конденсатора может быть и больше( нада померять).
Я делал такую потеху основываясь на битах BORF и PORF регистра MCUSR.
Если PORF - берем из епрома режим и работаем
Если только BORF - берем из епрома режим инкрементируем записываем и работаем.
Go to the top of the page
 
+Quote Post
smk
сообщение Jan 4 2010, 13:49
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата
Уверены насчет выделенного слова? А то может всегда помнит? Тогда достаточно при подаче питания выбирать следующий режим. Номер его, естественно, хранить в EEPROM.

Главный затык как я понял в величине времени отключенного питания при котором происходит смена режима. Т.е. если выключено надолго - режим не меняется, а если на пару секунд то меняется. Вот в этих секундах и затык.

Кстати, Автор, Вы опять про BOD и т.п., а если все поотключать, в т.ч. АЦП и компаратор чтоб внутрений ИОН тоже выключился - то потремление становится микроамперы, что возможно и позволит выиграть нужные пару секунд.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post

23 страниц V  < 1 2 3 4 > » 
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 06:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.0153 секунд с 7
ELECTRONIX ©2004-2016