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

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


Местный
***

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



Что-то споткнулся на ровном месте - спасайте!

Китайские светодиодные фонарики. Режимамы работы (яркость ШИМ-ом, стробы, SOS-ы) задаёт Tiny13.
Схема примитивная. Кнопка отключает минус литиевого аккумулятора от корпуса фонаря. Микроконтроллер запитан через
диод и небольшую керамическую ёмкость. На PB2 (ADC1) через резистивный делитель (VCC->10k->3k->GND) заведено
напряжение питания. PB1 используется для управления стабилизатором. Собственно и всё.

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

В стремлении к совершенству полез программировать и пока не могу понять КАК они детектируют кратковременное отключение питания. Осциллографом вижу, что питания от конденсатора до BOD хватает где-то на 4 мс как бы я не усыплял контроллер. Это на 3 порядка меньше требуемого значения. Значит, он всётаки выключается. А вот найти какой регистр или флаг после POR и BOR не обнуляется да еще какое-то время сохраняет своё состояние без питания что-то не могу.

Коллеги, есть свежие идеи?
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Jan 3 2010, 07:19
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(VladislavS @ Jan 3 2010, 09:44) *
А вот найти какой регистр или флаг после POR и BOR не обнуляется да еще какое-то время сохраняет своё состояние без питания что-то не могу.
Коллеги, есть свежие идеи?

Попробуйте неинициализируемую переменную и проверяйте ее значение сразу после запуска. Но все же это кривой метод - не возможно предсказать время хранения этой переменной. Оно запросто может и 5 секунд оказаться.
Go to the top of the page
 
+Quote Post
smk
сообщение Jan 3 2010, 07:59
Сообщение #3


Гуру
******

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



Напряжение на резистивном делителе пропадает раньше питания. По этому можно изменить режим, запомнить в EEPROM, и отправиться в powerdown. Или запомнить в оперативной и уснуть до появления прерывания от подачи питания.


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


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 10-12-08
Из: Ульяновск
Пользователь №: 42 362



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

Сообщение отредактировал tillman - Jan 3 2010, 09:28
Go to the top of the page
 
+Quote Post
BSVi
сообщение Jan 3 2010, 10:36
Сообщение #5


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

Группа: Свой
Сообщений: 76
Регистрация: 18-12-07
Из: Киев
Пользователь №: 33 391



можно даже без диода в питании контроллера обойтись схема такая

выключатель - конденсатор - контроллер
выключаетль - диод - резистор на землю.

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

Конденсатора 0.1мкф хватит только на 0.5сек, прийдется поставить что-то больше.


--------------------
http://bsvi.ru/ - блог эмбеддера
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 3 2010, 11:16
Сообщение #6


Местный
***

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



Цитата
Попробуйте неинициализируемую переменную и проверяйте ее значение сразу после запуска. Но все же это кривой метод - не возможно предсказать время хранения этой переменной. Оно запросто может и 5 секунд оказаться.

Попробую. Кривой, не кривой, но как-то китайцы это сделали...

Цитата
Напряжение на резистивном делителе пропадает раньше питания. По этому можно изменить режим, запомнить в EEPROM, и отправиться в powerdown. Или запомнить в оперативной и уснуть до появления прерывания от подачи питания.

Энергии в конденсаторе не хватает чтобы проспать столько времени. Так что, хоть сохраняй, хоть не сохраняй - всё одно впереди BOR и POR.

Цитата
Проще при вкл. сразу проверять из еепром режим,запускать нужную функцию,а потом сразу записывать в еепром след. режим и при след. включении режим сменится на др.

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

Цитата
А АЦП используется только для индикации разряда аккумулятора\батуреек.

Возможно.


Цитата
Конденсатора 0.1мкф хватит только на 0.5сек, прийдется поставить что-то больше.

Схему менять не представляется возможным. Платку китайцы продают готовой и она достаточно миниатюрна - ставится в бошку фонарика. У меня даже столько проспать не получается при том что ухожу в Power Down даже до выключения питания. Вместе с тем, попадаются фонарики у которых до 2-3 секунд в зависимости от температуры можно выключать питание. Не думаю, что можно столько проспать...
Go to the top of the page
 
+Quote Post
smk
сообщение Jan 3 2010, 13:14
Сообщение #7


Гуру
******

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



Значит спать не надо. Нужно писать в EEPROM что требуется при следующем включении. Думаю, то что помнится - хранится в EEPROM, а то что меняется - в SRAM. Например так - если при включении режимы сохраненные в EEPROM и SRAM одинаковы (сравниваем заведомо известные адреса) - то меняем режим и пишем новый в EEPROM, иначе - не меняем режим.

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


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


Местный
***

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



Цитата
Я уверен, что китайский подход не позволяет делать все как положено.

Это позволяет им делать вполне работоспособную вещь за смешные деньги и продавать её миллионами.

Цитата
Наверняка SRAM хранит данные какое-то время после выключения питания (чисто конструктивная особенность), а китайцы подметив это решили использовать с целью упрощения схемотехники до смешного.

Сейчас попытаюсь проверить эту догадку. И когда я найду что там китайцы заметили и оно заработает, то разрешаю зачморить меня, предать анафеме и т.д. Лишь бы работало, как бы смешно это не было. Из него не стрелять и в космос не запускать.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jan 3 2010, 13:56
Сообщение #9


Гуру
******

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



Цитата(VladislavS @ Jan 3 2010, 09:44) *
В стремлении к совершенству полез программировать и пока не могу понять КАК они детектируют кратковременное отключение питания. Осциллографом вижу, что питания от конденсатора до BOD хватает где-то на 4 мс как бы я не усыплял контроллер.

4 ms - это уже в "своем" варианте или в "прототипе" ? Если они не используют BOD, то в "настоящем" power down потребление гораздо меньше... Дурацкий вопрос - а защита включена ? Может, попробовать вычитать, что они там понаписали ?
Цитата
Коллеги, есть свежие идеи?

Я раньше полагал, что используют еще какой-то "вспомогательный" конденсатор. Но сейчас поглядел (правда, не знаю, что конкретно на этой платке стоит - маркировка стерта, а EEPROM внешняя, и на Vcc 10-uF электролит есть), что-то отдельного конденсатора не наблюдаю. А сам бы я попробовал именно с отдельным (для порядка - с последовательным токоограничивающим резистором), подключив его на какую-нибудь ногу ADC. При включении - измерить, что на нем, потом включить и оставить под напряжением. 0.1 uF и параллельно 10 MOhm для утечки. Ну да, при выключении он разрядится через защитный диод входа, но не ниже 0.6V, а дальше - через резистор. До единиц секунд можно поймать, я полагаю (только вот керамика очень уж от температуры плавает...)

P.S. А сам я нафиг выдрал эту плату управления, потому как достала она меня этим постоянным переключением режимов и идиотским стробоскопом..

Сообщение отредактировал rx3apf - Jan 3 2010, 13:58
Go to the top of the page
 
+Quote Post
smk
сообщение Jan 3 2010, 14:05
Сообщение #10


Гуру
******

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



Цитата
Это позволяет им делать вполне работоспособную вещь за смешные деньги и продавать её миллионами.

Им позволяет продавать миллионами и быстро делать - быстрое и дешевое изготовление пресс-форм на корпуса. Уж поверьте мне.


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


Гуру
******

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



Цитата(smk @ Jan 3 2010, 17:05) *
Им позволяет продавать миллионами и быстро делать - быстрое и дешевое изготовление пресс-форм на корпуса. Уж поверьте мне.

Я бы даже поверил - но, увы, типичный китайский фонарик имеет точеный корпус из дюраля...
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 3 2010, 14:14
Сообщение #12


Местный
***

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



Откопал еще одну плату, на которой ещё не успел стереть китайскую прошивку. Посмотрел как она работает. Похоже, они даже не парятся с засыпанием. Желтый луч питание на кнопке, зелёный - на котроллере. Чётко видно как они за 320 мкс доходят до BOD на 1.8 В и умирают.
Прикрепленное изображение

Совсем умирают.
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jan 3 2010, 14:21
Сообщение #13


Гуру
******

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



Цитата(VladislavS @ Jan 3 2010, 17:14) *
Откопал еще одну плату, на которой ещё не успел стереть китайскую прошивку. Посмотрел как она работает. Похоже, они даже не парятся с засыпанием. Желтый луч питание на кнопке, зелёный - на котроллере. Чётко видно как они за 320 мкс доходят до BOD на 1.8 В и умирают.

Нуля не видно. И какое входное сопротивление щупа ? В даташите нет данных о пороговом напряжении сохранения данных в RAM но, вполне возможно, что на этом все и построено....
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 3 2010, 14:29
Сообщение #14


Местный
***

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



Цитата
4 ms - это уже в "своем" варианте или в "прототипе" ? Если они не используют BOD, то в "настоящем" power down потребление гораздо меньше...

4мс это мой код. Оригинал 320 мкс и упирается в BOD.

Цитата
Дурацкий вопрос - а защита включена ? Может, попробовать вычитать, что они там понаписали ?

Обижаешь smile.gif

Цитата
P.S. А сам я нафиг выдрал эту плату управления, потому как достала она меня этим постоянным переключением режимов и идиотским стробоскопом..

Да уж очень он яркий, если без режимов использовать. У меня диод CREE XP-G R5 на 1А под 350 люмен по даташиту валит. А есть ведь ещё мощней. Вот стробоскопы и решил выкинуть, да управление ШИМ-мом не очень там сделано.
Go to the top of the page
 
+Quote Post
smk
сообщение Jan 3 2010, 14:41
Сообщение #15


Гуру
******

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



Цитата
Чётко видно как они за 320 мкс доходят до BOD на 1.8 В и умирают


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


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
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
VladislavS
сообщение Jan 4 2010, 14:43
Сообщение #31


Местный
***

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



Цитата
Тинька, конечно, заметно не сможет "просадить". Но если включить светодиоды (фонарь же?), то "просадка" батареи может быть существенной. АЦП тиньки должно ее определить....

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


Светодиод, конечно же, просаживает. Я сейчас играюсь с двумя диодами - первый 1A кушает, а второй вообще до 2.8А.
Но сам драйвер работает как задумано и без диода. И от источника пиитания тоже. Так что, версия с отслеживанием напряжения на акб на 99% ошибочна. Думаю там просто защита акб от переразряда организована.

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

Не, именно ПОМНИТ. Короткое нажатие - смена режима, длительное выключение - нет смены режима.

Цитата
Я делал такую потеху основываясь на битах BORF и PORF регистра MCUSR.
Если PORF - берем из епрома режим и работаем
Если только BORF - берем из епрома режим инкрементируем записываем и работаем.

До какого значение опускалось питание при этом?

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


Я же писал, что мне удалось проспать 4 мс до наступления BOR в то время как c оригинальной прошивкой всего 320 мкс до BOR. Раздел даташита "Minimizing Power Consumption" могу уже наизусть цитировать. Отключал всё что там написано. Да, отключение BOD увеличивает время сна, но не в требуемые 250 раз. Просто с включенным BOD проще замерять время по характерному перелому осциллограммы на 1.8 В.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jan 4 2010, 16:35
Сообщение #32





Guests






Цитата
Светодиод, конечно же, просаживает... Так что, версия с отслеживанием напряжения на акб на 99% ошибочна.

Да, не ищите Вы "китайское решение". smile.gif Вполне возможно, оно настолько "кривое", что его трудно будет угадать... Сделайте свое. Если не хотите зависеть от прихотей источника, то я бы рекомендовал вариант, предлагаемый rx3apf:
Цитата
А сам бы я попробовал именно с отдельным (для порядка - с последовательным токоограничивающим резистором), подключив его на какую-нибудь ногу ADC. При включении - измерить, что на нем, потом включить и оставить под напряжением. 0.1 uF и параллельно 10 MOhm для утечки. Ну да, при выключении он разрядится через защитный диод входа, но не ниже 0.6V, а дальше - через резистор. До единиц секунд можно поймать, я полагаю (только вот керамика очень уж от температуры плавает...).

Могу только добавить, что сопротивление входов МК, обычно, порядка гигаом, емкость порядка пикофарад. Соорудить RC-цепочку с нужной постоянной времени, добавив небольшую емкость - совсем не сложно.
P.S. А может и добавлять ничего не придется. Поробуйте ацп-ировать значение на свободном входе АЦП, которое имеется, непосредственно, при включении питания. Естественно, до выключения на нем нужно постоянно поддерживать высокий уровень...
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jan 4 2010, 17:14
Сообщение #33


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(VladislavS @ Jan 3 2010, 18:32) *
Попробовал неинициализированную переменную проверять при старте. Хранится в памяти где-то 75 мс после выключения питания. После этого принимает произвольное значение, так как проверку ни на 0, ни на FF при старте не проходит. Маловато будет...

Что-то маловато 75 mS. Это все биты или только некоторые сбрасываются?
Давным-давно делал защиту от копирования на том принципе, что ОЗУ при включении всегда похожее состояние принимает. Именно похожее, а не одинаковое. Так у меня как-раз единицы секунд проходили от выключения до сброса в это состояние. Приходилось различать ситуацию, когда простото ненадолго выключили, и из-за этого ОЗУ в нормальное состояние не успело прийти.
А тут наоборот, можно на этом принципе время выключенного состояния оценить...
Например так:
1. Выделяем и в ОЗУ и в EEPROM по две 8-ми байтных переменных. 1-ю пару назовём ConstR (ОЗУ) и ConstE (EEPROM), а 2-ю соответственно VarR и VarE.
2. При запуске побитно сравниваем ConstR с ConstE и VarR с VarE. Считаем кол-во отличающихся бит. ConstN и VarN соответственно.
3. Если ConstN > 0.8*VarN, то {времени от выключения прошло много; ConstE=ConstR; VarE=VarR; VarR=!VarR; }
иначе{времени от выключения прошло мало; ConstE=ConstR; VarR=!VarE;}

Как алгоритм?
Go to the top of the page
 
+Quote Post
stells
сообщение Jan 4 2010, 17:54
Сообщение #34


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(VladislavS @ Jan 3 2010, 09:44) *
В стремлении к совершенству полез программировать и пока не могу понять КАК они детектируют кратковременное отключение питания. Осциллографом вижу, что питания от конденсатора до BOD хватает где-то на 4 мс как бы я не усыплял контроллер. Это на 3 порядка меньше требуемого значения.

типовое время записи в EEPROM для tiny13 - 3,4мс. в чем вопрос? с кнопки сигнал на компаратор, с конденсатора за диодом - питание контроллера, по прерыванию от компаратора можно менять режим. откуда 3 порядка у Вас появились?
ну или непрерывное АЦ-преобразование, раз компаратор не используется

Сообщение отредактировал stells - Jan 4 2010, 18:02
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 4 2010, 22:26
Сообщение #35


Местный
***

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



Цитата
типовое время записи в EEPROM для tiny13 - 3,4мс. в чем вопрос?

Вопрос в том ЗАЧЕМ и ЧТО надо писать в EEPROM при пропадании питания? Что мне это даст?

galjoen, спасибо, попробую завтра так сделать. А на каком микроконтроллере и с какой схемой питания так делали?

Цитата
Да, не ищите Вы "китайское решение". Вполне возможно, оно настолько "кривое", что его трудно будет угадать... Сделайте свое.

Собственно я и ищу своё. Совпадёт ли оно в конце концов с "китайским" всё равно узнать не представляется возможным - оригинальная прошивка защищена. Единственное ограничение - схема остаётся такой какая она есть.

Поймите меня правильно. Если бы вопрос стоял в переделке нескольких моих фонариков, то я бы уже давно поставил электролит 100 мкФ, который позволил бы находиться в режиме Power Down нужное время и с мыслью "зато всё сделано правильно" не стал бы поднимать вопрос. Только я думаю, что люди, обитающие на данном форуме даже во время новогодних праздников, не только ради денег рисуют схемы и пишут программы. Я уже несколько лет на AVR ничего не делал - всё на молодых специалистов и студентов скинул. А тут зацепил меня этот китайский контроллер.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jan 5 2010, 01:35
Сообщение #36





Guests






Цитата
Единственное ограничение - схема остаётся такой какая она есть.

А можно попросить схему в студию? Желательно с номиналами. А то не совсем ясно, что обсуждаем.
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 5 2010, 07:22
Сообщение #37


Местный
***

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



Я в первом сообщении писал про схему. Питание от литиевого акб 3.7-4.2В. Контроллер запитан через диод и конденсатор. Диод обычный - падает на нём 0.65 В. Номинал конденсатора не измерял, но по цвету похож на 0.1 - 1 мкф. С резистивного делителя VCC->10к->3k->GND подано напряжение на ADC1. PORTB1 используеся для управления стабилизаторами тока AMC7135.

Go to the top of the page
 
+Quote Post
alevnew
сообщение Jan 5 2010, 08:35
Сообщение #38


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

Группа: Участник
Сообщений: 90
Регистрация: 17-05-07
Пользователь №: 27 775



А может все проще - питание на проц всегда подается?
А с кнопки идет на просто на вход ?
Думаю, если проц спит больше всего времени в выключенном режиме, то не сильно нагружает аккумуляторы.

Или все совершенно точно ?


А если вот такая бредовая идея: к примеру после включения неинициализированное ОЗУ с высокой долей вероятности содержит в основном нули (или единицы, не суть важно).
Проц при включении считает кол-во единичных битов в озу и примерно оценивает время, сколько был проц выключен. Чем больше нулей, тем больше было время выключения. А после подсчета снова заполняет ОЗУ единичками.

Сообщение отредактировал alevnew - Jan 5 2010, 08:36
Go to the top of the page
 
+Quote Post
stells
сообщение Jan 5 2010, 08:56
Сообщение #39


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(@Ark @ Jan 4 2010, 19:35) *
Поробуйте ацп-ировать значение на свободном входе АЦП, которое имеется, непосредственно, при включении питания. Естественно, до выключения на нем нужно постоянно поддерживать высокий уровень...

подтяжкой поддерживать? попробовал на меге8 - за 10мкс напряжение падает до 0. если только подтяжку выключать перед отключением питания? но все-равно при Rвх=100МОм, Cвх=10пФ получатся миллисекунды
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jan 5 2010, 09:02
Сообщение #40


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(VladislavS @ Jan 5 2010, 01:26) *
А на каком микроконтроллере и с какой схемой питания так делали?

Делал на разных, начиная с 1816ВЕ35. Когда было внешнее ОЗУ - делал привязку к нему. Работало всегда. И на советских микроконтроллерах_с_внутренним_статическим_ОЗУ/внешних_микросхемах_статического_ОЗУ и на импортных. Когда была возможность использовал для этого больше байт ОЗУ. Часто, все неиспользуемые в программе байты ОЗУ, под это дело применял. Т.к. с используемыми, при недолгом выключении (единицы секунд), этот фокус не проходил. С динамическим ОЗУ не пробовал, но думаю, что с ним тоже будет работать.

Если заработает, то с вас переделанный фонарик smile.gif

alevnew, по опыту могу сказать, что нулей и едениц там примерно одинаково. Разные микросхемы ОЗУ из одной партии могут вести себя по разному. В принципе можно считать кол-во едениц/нулей, но без записи в EEPROM всё равно не обойтись. А в данном приложении EEPROM всё равно с избытком, а вот с ОЗУ м.б. напряг.
Go to the top of the page
 
+Quote Post
stells
сообщение Jan 5 2010, 09:06
Сообщение #41


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(alevnew @ Jan 5 2010, 11:35) *
А если вот такая бредовая идея: к примеру после включения неинициализированное ОЗУ с высокой долей вероятности содержит в основном нули (или единицы, не суть важно).
Проц при включении считает кол-во единичных битов в озу и примерно оценивает время, сколько был проц выключен. Чем больше нулей, тем больше было время выключения. А после подсчета снова заполняет ОЗУ единичками.

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

там точно конденсатор на питании контроллера?

Сообщение отредактировал stells - Jan 5 2010, 10:02
Go to the top of the page
 
+Quote Post
pt200
сообщение Jan 5 2010, 11:34
Сообщение #42


Участник
*

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



Цитата(VladislavS @ Jan 4 2010, 18:43) *
Цитата
Я делал такую потеху основываясь на битах BORF и PORF регистра MCUSR.
Если PORF - берем из епрома режим и работаем
Если только BORF - берем из епрома режим инкрементируем записываем и работаем.

До какого значение опускалось питание при этом?

Не мерял, но работает.

“меньше знаешь – крепче спишь” smile.gif

P.S. разломал недавно современную видюху на кондючки и был сильно удивлен "килофарадными" керамическими кондючками.
Go to the top of the page
 
+Quote Post
ae_
сообщение Jan 5 2010, 14:46
Сообщение #43


Участник
***

Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695



Цитата(pt200 @ Jan 5 2010, 19:34) *
...
P.S. разломал недавно современную видюху на кондючки и был сильно удивлен "килофарадными" керамическими кондючками.
1000 Ф конденсаторы на видео карте? может "кило-микрофарадные"="миллифарадные", т.е. 1000 мкФ ёмкость ?
хотя мне не встречалась керамика больше десятков мкФ, а тут килофарада. значит я сплю крепче smile.gif))
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jan 5 2010, 17:48
Сообщение #44





Guests






Цитата
Я в первом сообщении писал про схему...

Простите, но я просил не описание схемы (которое Вы дали, аж два раза), и не ее топологию. А точную, восстановленую по топологии, электрическую схему с номиналами. Только тогда можно что-то конкретно обсуждать, не занимаясь догадками...
P.S. Кстати, Вы уверены, что там Тинька стоит? Вполне может быть и PIC12, например. Или еще что-то...
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jan 5 2010, 18:25
Сообщение #45


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(@Ark @ Jan 5 2010, 20:48) *
P.S. Кстати, Вы уверены, что там Тинька стоит? Вполне может быть и PIC12, например. Или еще что-то...

Если топикстартер подключался программатором, стирал исходную программу, заливал свою и его программа работала, то я таки думаю, что он правильно идентифицировал микроконтроллер...
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jan 5 2010, 18:34
Сообщение #46





Guests






Цитата
Если топикстартер подключался программатором, стирал исходную программу, заливал свою и его программа работала, то я таки думаю, что он правильно идентифицировал микроконтроллер...

Безусловно. Осталось дождаться подтверждения этого факта топикстартером. И опубликования точной схемы, для конструктивного продолжения дискуссии...
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 5 2010, 20:29
Сообщение #47


Местный
***

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



Цитата
Безусловно. Осталось дождаться подтверждения этого факта топикстартером. И опубликования точной схемы, для конструктивного продолжения дискуссии...

Извини, но рисовать схему я не буду. Из неизвестного там только номинал конденсатора, но его я дома померить не могу - тупо нечем. Все остальное на 200% соответствует моему словеcному описанию.

Укол про PIC, будем считать, я пропустил мимо ушей.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jan 5 2010, 20:59
Сообщение #48


Гуру
******

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



Я все ж подозреваю (на 90%), что дело в сохранении содержимого памяти и после BOR. Пока из приведенных диаграмм вовсе не очевидно поведение напряжения на конденсаторе, поскольку "нуля" не видно (смотреть, само собой, надо по крайней мере 10-мегаомным делителем), как там дальше, за 1.8V ? Для пробы зашунтировать цепь питания у "прототипа" (сотню килоом) - переключение режимов должно бы перестать работать... А емкость вполне можно оценить - или скопом и хоть каким генератором прямоугольника, либо с помощью звуковой карты компьютера.

Сообщение отредактировал rx3apf - Jan 5 2010, 21:01
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 5 2010, 21:43
Сообщение #49


Местный
***

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



Цитата(galjoen @ Jan 4 2010, 20:14) *
1. Выделяем и в ОЗУ и в EEPROM по две 8-ми байтных переменных. 1-ю пару назовём ConstR (ОЗУ) и ConstE (EEPROM), а 2-ю соответственно VarR и VarE.
2. При запуске побитно сравниваем ConstR с ConstE и VarR с VarE. Считаем кол-во отличающихся бит. ConstN и VarN соответственно.
3. Если ConstN > 0.8*VarN, то {времени от выключения прошло много; ConstE=ConstR; VarE=VarR; VarR=!VarR; }
иначе{времени от выключения прошло мало; ConstE=ConstR; VarR=!VarE;}

Как алгоритм?

Не совсем понятна физика процесса.
Вот берем мы две ячейки ОЗУ. После включения они с точностью до 6-7 бит стремятся к одному значению. Теперь начинаем одной переменной давать сильное воздействие посредством инвертирования битов, а вторую не трогаем. Чем больше бит совпало в той что "теребили" тем дольше было выключено питание. А вот зачем в процессе участвует ConstR ? Ведь у неё ожидается достаточно стабильное значение ConstN?
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 5 2010, 22:21
Сообщение #50


Местный
***

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



Цитата
Я все ж подозреваю (на 90%), что дело в сохранении содержимого памяти и после BOR. Пока из приведенных диаграмм вовсе не очевидно поведение напряжения на конденсаторе, поскольку "нуля" не видно (смотреть, само собой, надо по крайней мере 10-мегаомным делителем), как там дальше, за 1.8V ? Для пробы зашунтировать цепь питания у "прототипа" (сотню килоом) - переключение режимов должно бы перестать работать... А емкость вполне можно оценить - или скопом и хоть каким генератором прямоугольника, либо с помощью звуковой карты компьютера.


Там же две диаграммы. На одной из них развернуто на 80 мс после выключения и видно, что через 35 мс напряжение уже упало совсем. Оно ненулевое, но это особенности ключа, через который я подаю импульсы питания для измерений. Если выключать кнопкой, то оно естественно до нуля падает. Ну пусть еще на 5 мс дольше - это погоды не делает.

Щуп 10 МОм - тут подвоха не стоит искать. По крайней мере, изменения диаграммы в зависимомсти от программы я вижу хорошо.

Точное значение ёмкости, как мне кажется, непринципиально. Видно же, что запитать от неё микроконтроллер на время, соизмеримое со временем размыкания и замыкания кнопки человеком не получается. Изобретать из-за этого измерительный стенд дома не очень хочется. Обещаю, на работе в понедельник измерю - делов то на 1 минуту, когда приборы есть. Дома у меня даже паяльника чтобы 0603 паять нет.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jan 5 2010, 22:23
Сообщение #51


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(VladislavS @ Jan 6 2010, 00:43) *
Не совсем понятна физика процесса.
Вот берем мы две ячейки ОЗУ. После включения они с точностью до 6-7 бит стремятся к одному значению. Теперь начинаем одной переменной давать сильное воздействие посредством инвертирования битов, а вторую не трогаем. Чем больше бит совпало в той что "теребили" тем дольше было выключено питание. А вот зачем в процессе участвует ConstR ? Ведь у неё ожидается достаточно стабильное значение ConstN?

ConstN это база. У разных микросхем, и при разных включениях одной микросхемы, число "плавающих" бит может существенно различатся. Исходим из предположения, что на биты, из которых состоят, ConstR и VarR эти факторы влияют одинаково.
Вам же не хочется для каждого фонарика ставить эксперименты с определением именно его значения ConstN. И изменять это число в программе. Вот для самонастройки на конкретный образец и используется ConstR.

Алгоритм я несколько упростил. Реально у меня ConstR и VarR являлись разными битами одного байта. Т.е. это были 2 битовые строки, в перемешанном виде размещённые в ОЗУ. Наверно непонятно. Объясню на примере. Если представить ОЗУ как битовую строку, то биты относящиеся к ConstR и VarR размещались случайным (заданным 1 раз при написании программы) образом, например, так:
ccvcvvcc cvvvccvc vccvvvcv cvcvccvv и т.д
где "c" биты, относящиеся к ConstR, а "v" биты, относящиеся к VarR.

Подредактировал из-за описок.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jan 5 2010, 22:39
Сообщение #52





Guests






Цитата
Извини, но рисовать схему я не буду.

Когда чел. задает вопрос и отказывается представить схему, то разговаривать не о чем ...
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jan 5 2010, 22:45
Сообщение #53


Гуру
******

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



Цитата(VladislavS @ Jan 6 2010, 01:21) *
Видно же, что запитать от неё микроконтроллер на время, соизмеримое со временем размыкания и замыкания кнопки человеком не получается. Изобретать из-за этого измерительный стенд дома не очень хочется.

И все ж предлагаю сделать простейший эксперимент (но именно с "прототипом", т.е. с платой, где прошивка не менялась) - зашунтировать питание сотней килоом. Если работа переключателя при этом не изменилась - то почти наверняка что-то со статистикой переброса битов памяти, непосредственно с питанием не связанной. Если перестало работать - банальное сохранение содержимого... Могу, в принципе, проверить то же самое с обломком моего драйвера, но там наверняка не tiny13 (иначе зачем бы там еще и отдельный EEPROM), а вот логика, скорее всего, похожая...
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 5 2010, 23:01
Сообщение #54


Местный
***

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



Цитата
И все ж предлагаю сделать простейший эксперимент (но именно с "прототипом", т.е. с платой, где прошивка не менялась) - зашунтировать питание сотней килоом.

В понедельник. Дома нет возможности.

Цитата
Когда чел. задает вопрос и отказывается представить схему, то разговаривать не о чем ...

Когда человек не способен на слух воспринять схему из одной микросхемы, одного диода, одного конденсатора и двух резисторов, то разговаривать действительно не о чем ...
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jan 5 2010, 23:27
Сообщение #55





Guests






Цитата
Когда человек не способен на слух воспринять схему из одной микросхемы, одного диода, одного конденсатора и двух резисторов, то разговаривать действительно не о чем ...

Когда человек не способен точно померить емкости и резисторы в схеме, и при этом задает вопросы, то разговаривать, действительно, не о чем...
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 6 2010, 09:25
Сообщение #56


Местный
***

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



@Ark, номиналы резисторов я указал дважды. Резисторы это такие маленькие черненикие детальки прямоугольной формы - номиналы написаны прямо на них.. Конденнсатор мой опыт позволяет идентифицировать как 0.1-1 мкФ, а померить без паяльника дома просто нечем.

Если не умеешь читать, то не встревай, пожалуйста, со своими PIC-ми.

Винимание! Внимание!

Совершенно случайно у соседа нашел китайский тестер с измерением емкостей. Показывает 1.2 мкф. Берем ближайший из ряда и получаем 1 мкф. В чём я изначально почти не сомневался.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jan 6 2010, 09:46
Сообщение #57


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

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



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


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


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(rx3apf @ Jan 6 2010, 01:45) *
И все ж предлагаю сделать простейший эксперимент (но именно с "прототипом", т.е. с платой, где прошивка не менялась) - зашунтировать питание сотней килоом. Если работа переключателя при этом не изменилась - то почти наверняка что-то со статистикой переброса битов памяти, непосредственно с питанием не связанной. Если перестало работать - банальное сохранение содержимого...

так автор несколько раз писал, что питание намного быстрее падает, чем требуется. если вот только содержимое хранится за счет собственной емкости ячеек?
можно попробовать написать простенькую программку с выводом значения какой-либо ячейки в последовательном коде (скажем 1бит/с) на свободную ногу контроллера и последующей записью другого (инверсного) значения. дергая потом кнопку, можно проверить время хранения записанного значения
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jan 6 2010, 10:53
Сообщение #59


Гуру
******

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



Цитата(stells @ Jan 6 2010, 13:30) *
так автор несколько раз писал, что питание намного быстрее падает, чем требуется. если вот только содержимое хранится за счет собственной емкости ячеек?

Писать-то писал... Просто я _очень_ сомневаюсь, что напряжение спадает до "настоящего" нуля в том случае, когда питается только микроконтроллер. После того, как все провалилось ниже предела работоспособности, потребление должно резко упасть и "остаток" может позволить продержаться содержимому памяти какое-то время. Уж чего проще - зашунтировать питание и посмотреть поведение ? Нет под рукой резистора - ну мультиметром на низких пределах, в конце концов...
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jan 6 2010, 11:02
Сообщение #60





Guests






Цитата
@Ark, номиналы резисторов я указал дважды. Резисторы это такие маленькие черненикие детальки прямоугольной формы - номиналы написаны прямо на них.. Конденнсатор мой опыт позволяет идентифицировать как 0.1-1 мкФ, а померить без паяльника дома просто нечем. Если не умеешь читать, то не встревай, пожалуйста, со своими PIC-ми.

А тип МК тоже "на глаз" определили? По цвету корпуса? biggrin.gif
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jan 6 2010, 11:18
Сообщение #61


Гуру
******

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



Цитата(@Ark @ Jan 6 2010, 14:02) *
А тип МК тоже "на глаз" определили? По цвету корпуса? biggrin.gif

Все ж даже как-то "неспортивно", честное слово... Если человек уже перешивал камень - то, наверное, так или иначе тип определился, разве нет ? А что до конкретной емкости - что, такая принципиальная разница, 0.1 или 1 uF ? Правда, факт применения 1 uF говорит, IMHO, именно в пользу моей версии с хранением содержимого на "остатках" питания (иначе я бы скорее ожидал 0.1 uF, а у меня в аналогичном драйвере, но с другим контроллером, правда - вообще дополнительно к керамике стоит танталовый электролит). А с остальными компонентами - не, неужели и в самом деле это так сложно - резисторный делитель, развязывающий диод ? Обязательно нужно рисовать схему ?
Go to the top of the page
 
+Quote Post
pt200
сообщение Jan 6 2010, 11:29
Сообщение #62


Участник
*

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



В пользу хранения каких то данных при питании от кондюка скажу, что тини13в с отключенным БОД и тактированием от 128 кГц генератора начинает работать при напряжении 0.9-1В !

Сообщение отредактировал pt200 - Jan 6 2010, 11:29
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jan 6 2010, 11:35
Сообщение #63





Guests






Цитата
Все ж даже как-то "неспортивно", честное слово... Если человек уже перешивал камень - то, наверное, так или иначе тип определился, разве нет ?

Почему-то не подтвердил это топикстартер. Да и точную полную схему, неужели так сложно нарисовать? Хотя бы из уважения к присутствующим. А так, действительно как-то "неспортивно". Наверное - "большой китайский секрет". smile.gif
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 6 2010, 12:10
Сообщение #64


Местный
***

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



Цитата
А тип МК тоже "на глаз" определили? По цвету корпуса?

Если бы вы хоть раз в руках держали AVR и PIC, то знали бы, что у 8-ногих AVR питание на 8-ю ногу заведено, а у PIC на 1-ю. Определив фирму производитель - подключаем программатор и считываем байты сигнатуры, которые однозначно называют нам тип микроконтроллера.

А вообще, как и номинал на резисторах, название микроконтроллера я просто ПРОЧИТАЛ на корпусе. Впрочем умению читать не всех сейчас учат.

Цитата
И все-таки точную и полную схему в студию.

Ребят, я понимаю что НГ и всё такое, но это уже за гранью добра и зла... sad.gif
Прикрепленное изображение


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

Падает. Прибор это видит.

Цитата
Есть пара идей, но надо точно знать, как выглядит обвязка.

С благодарностью выслушаю.

Я, кстати, уже сделал все остальные опции прошивки - нужные режимы яркости, защита АКБ от переразряда. Осталось только "память режимов" добить. А так пока при каждом включении новый режим.
Go to the top of the page
 
+Quote Post
stells
сообщение Jan 6 2010, 12:13
Сообщение #65


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(stells @ Jan 6 2010, 13:30) *
можно попробовать написать простенькую программку с выводом значения какой-либо ячейки в последовательном коде (скажем 1бит/с) на свободную ногу контроллера и последующей записью другого (инверсного) значения. дергая потом кнопку, можно проверить время хранения записанного значения

попробовал на меге8 - через 1с (быстрее не успеваю передернуть питание и переключить осциллограф в режим ожидания) значение в ячейке уже сброшено. по питанию 1мкФ+0,1мкф, всю остальную нагрузку поотключал. так что видимо и тини13 в ОЗУ не получится ничего сохранить, ни за счет конденсатора по питанию, ни за счет емкости ячейки памяти

кстати схемка все-таки полезной оказалась, я думал верхнее плечо делителя непосредственно на батарейке сидит

Сообщение отредактировал stells - Jan 6 2010, 12:39
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jan 6 2010, 12:44
Сообщение #66


Гуру
******

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



Цитата(stells @ Jan 6 2010, 15:13) *
кстати схемка все-таки полезной оказалась, я думал верхнее плечо делителя непосредственно на батарейке сидит

Кстати да. Я тоже был уверен, что делитель до диода, иначе, ясен пень, ни о каком хранении на "остатке" и речи быть не может (постоянная времени маловата)...
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 6 2010, 12:55
Сообщение #67


Местный
***

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



Цитата
попробовал на меге8 - через 1с значение в ячейке уже сброшено.

Да. Именно ЗНАЧЕНИЕ на моей tiny максимум 75 мс удалось продержать. Сейчас попробую биты считать всеже. А то с этими номиналами емкости и схемой отвлеклись от задачи.

Цитата
быстрее не успеваю передернуть питание и переключить осциллограф в режим ожидания

Тут я основательно подготовился. Соорудил из завалявшейся системы управления (контроллер, кнопки, жки) генератор импульсов и через ключ подаю питание с нужной для измерений времянкой.
Go to the top of the page
 
+Quote Post
stells
сообщение Jan 6 2010, 13:04
Сообщение #68


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



а не может быть эффект как-то основан на известной "фиче" с порчей нулевой ячейки EEPROM при отключении/включении питания?
Go to the top of the page
 
+Quote Post
SFx
сообщение Jan 6 2010, 13:33
Сообщение #69


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



че то мне кажется намного проще постоянно включенную tyni к питанию, и кнопку отдельно к ней прицепить. сколько она потребляет в спящем виде?
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jan 6 2010, 13:38
Сообщение #70


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Меня тоже удивило подключение делителя АЦП. И заставило засомневаться в сохранении данных в ОЗУ.
Теперь я уже склоняюсь к тепловой версии. Постоянная времени у всей этой тиньки как-раз порядка секунды... А попробуйте слегка погреть тиньку паяльником. В разных вариантах. Особенно интересно, что будет, если выключить надолго, ткнуть паяльником, убрать его и включить. Переключится? А вдруг в этом дело? Чем чёрт китаец не шутит?
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jan 6 2010, 13:59
Сообщение #71


Гуру
******

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



Цитата(SFx @ Jan 6 2010, 16:33) *
че то мне кажется намного проще постоянно включенную tyni к питанию, и кнопку отдельно к ней прицепить. сколько она потребляет в спящем виде?

Это принципиально невозможно для фонарей с торцевой кнопкой. Разве что дополнять корпус дополнительным проводником (печатного типа, на майларе), конструктивно весьма неудобно...
Go to the top of the page
 
+Quote Post
Maik-vs
сообщение Jan 6 2010, 14:35
Сообщение #72


Местный
***

Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101



Если бы резистор на 3 килоома был бы термистор, его можно было бы греть током с 7-ой ноги, а при включении девайсы АЦП-ом смотреть, как меняется напряжение на делителе. Если ОЗУ и т.п., то зачем целых 2 резистора тратить?! они ж денег стоят smile.gif...
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 6 2010, 15:20
Сообщение #73


Местный
***

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



Цитата
то зачем целых 2 резистора тратить?! они ж денег стоят

Ну это как раз понятно. В tiny на АЦП референс либо 1.1 В, либо VCC. Измерять что-то относительно VCC=2.2-3.6 В не представляется возможным. А чтобы мерять относительно 1.1 В нужен делитель.

В пользу температурного эффектв есть и "за", и "против":
за - у одного из фонариков в зависимости от нагрева время на которое его нужно выключить сильно плавает. Но там драйвер другой и я его схему не видел.
против - там внутри фонарика очень жарко может быть. Современный светодиодный фонарь это 1 A и больше тока, текущие через диод с падением 3.5 В в объёме брелка для ключей.

В любом случае, подумать в сторону тепла можно.

Цитата
Если бы резистор на 3 килоома был бы термистор, его можно было бы греть током с 7-ой ноги,

В оригинальной схеме ничего похожего на "режим прогрева" не наблюдается - напряжение на делителе во всех режимах повторят VCC. Да и не похож он на термостор. Да, да по цвету smile.gif

Кстати, я думаю делитель на VCC, а не на АКБ висит именно потому что для измерений напряжения используется. Яркость ШИМ-мом регулируется. И на VCC она хоть немного зафильтрована. Наверное поэтому же именно 1 мкФ, а не традиционные 0.1 мкФ стоят.
Go to the top of the page
 
+Quote Post
stells
сообщение Jan 6 2010, 15:24
Сообщение #74


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



блин, решение наверняка на поверхности лежит. я думаю, что если кто-то "раскусит" фокус, то все потом смеяться будут biggrin.gif

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

Сообщение отредактировал stells - Jan 6 2010, 16:10
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jan 6 2010, 16:09
Сообщение #75


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(VladislavS @ Jan 6 2010, 18:20) *
В любом случае, подумать в сторону тепла можно.

Особенно т-ра самого светодиода интересна, т.к. падение на нём сильно от т-ры зависит. Соответственно работа стабилизатора его тока. От предыдущего режима время не зависит?

А нас не сама т-ра интересут, а перегрев. От того горячо или холодно сильно зависить не должно. Если при ВКЛЮЧЕНИИ мы видим что что-то (опорное напряжение АЦП быстро устаканивается? м.б. и оно) остывает (нагревается? меняет т-ру?), то значит выключились недавно.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jan 6 2010, 16:55
Сообщение #76





Guests






Цитата
блин, решение наверняка на поверхности лежит. я думаю, что если кто-то "раскусит" фокус, то все потом смеяться будут

Я, кажется, раскусил этот китайский фокус... В качестве терморезистора используется диод в цепи питания...
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 6 2010, 17:03
Сообщение #77


Местный
***

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



Цитата
опробовал читать нулевую ячейку EEPROM.

Ну эту детскую болезнь Atmel уже давно побидила. Да и портилась она делаеко не при каждом включении.
Go to the top of the page
 
+Quote Post
stells
сообщение Jan 6 2010, 18:21
Сообщение #78


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(VladislavS @ Jan 6 2010, 20:03) *
Ну эту детскую болезнь Atmel уже давно победила. Да и портилась она далеко не при каждом включении.

еще полтора года тому назад я столкнулся с этим в тини26, хотя портилась конечно не при каждом включении

Цитата(@Ark @ Jan 6 2010, 19:55) *
Я, кажется, раскусил этот китайский фокус... В качестве терморезистора используется диод в цепи питания...

а с чего ему греться? токи-то миллиамперные или даже меньше (если учитывать то, что и без светодиода режим меняется)

Сообщение отредактировал stells - Jan 6 2010, 18:24
Go to the top of the page
 
+Quote Post
Polaris
сообщение Jan 6 2010, 18:22
Сообщение #79


Местный
***

Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964



А может, все-таки используется хранение в EEPROM? Тут же совсем не обязательно хранить что-то конкретное, важен сам факт попытки что-то туда записать (или стереть). А режим можно задавать не конкретной величиной, а адресом ячейки. И при старте восстанавливать содержимое. В AN103 пишут, что стирание/запись происходит побитно. Думаю, что 1,8 мс указаны для всего байта. Может быть, за 200 мкс один бит он успевает стереть? То есть, при возникновении прерывания от компаратора он выбирает ячейку и просто начинает стирание. И неважно, успеет стереть всю или нет, одного бита достаточно. А при следующем старте проверяет содержимое ячеек режима, та, что повреждена, дает предыдущий режим и восстанавливается.
Может, так?
Go to the top of the page
 
+Quote Post
stells
сообщение Jan 6 2010, 18:27
Сообщение #80


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(Polaris @ Jan 6 2010, 21:22) *
Может быть, за 200 мкс один бит он успевает стереть?

может и успеет, но что это даст? как различить время в выключенном состоянии в 1 и 10 секунд?
Go to the top of the page
 
+Quote Post
Polaris
сообщение Jan 6 2010, 19:09
Сообщение #81


Местный
***

Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964



Цитата(stells @ Jan 6 2010, 20:27) *
может и успеет, но что это даст? как различить время в выключенном состоянии в 1 и 10 секунд?

Даст то, что текущий режим сохранить можно, уже что-то smile.gif
Думаю, стоит посмотреть графики питания при включении
Go to the top of the page
 
+Quote Post
HALFer
сообщение Jan 6 2010, 19:10
Сообщение #82


Участник
*

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



что-то сильно зациклено на хранении. имхо все более примитивно. помнить тут вовсе не обязательно, достаточно чтобы после выключения программа продолжала выполняться. сколько там выдержка, 2-3 сек? уверен тинька с минимальным к-вом периферии протянет на 128кГц от 1мкФ. а дальше все просто. выключили - программа продолжает выполняться. разрядились до плинтуса - при включении будут повторная инициализация. а если разрядиться не успела, то ADC поймает момент появления питания и это будет знак для все еще выполняющейся программы. при этом она в eeprom пометит что "щас я перешел в режим N+1" и все.
Go to the top of the page
 
+Quote Post
stells
сообщение Jan 6 2010, 19:17
Сообщение #83


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(HALFer @ Jan 6 2010, 22:10) *
уверен тинька с минимальным к-вом периферии протянет на 128кГц от 1мкФ

так осциллограммки питания приводились. напряжение питания падает до 1В где-то через 2мс, это и есть плинтус
Go to the top of the page
 
+Quote Post
HALFer
сообщение Jan 6 2010, 19:21
Сообщение #84


Участник
*

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



осциллограммы это хорошо, но где опыт когда сидим осциллографом на девайсе и проверяем на работоспособность с таким паразитом как щуп? кто его знает как осциллограф повлияет на работу. сели щупом - клац-клац и срзу станет ясно.
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 6 2010, 19:47
Сообщение #85


Местный
***

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



HALFer, там по схеме параллельно 1 мкФ стоят 13 кОм. 10 МОм щуп там погоды не делает.

Цитата
Даст то, что текущий режим сохранить можно, уже что-то

Текущий режим очень даже неплохо сохраняется при старте с хорошим питанием. Зачем для этого экстримизмом заниматься? smile.gif
Go to the top of the page
 
+Quote Post
Polaris
сообщение Jan 6 2010, 19:53
Сообщение #86


Местный
***

Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964



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

Цитата(VladislavS @ Jan 6 2010, 21:47) *
Текущий режим очень даже неплохо сохраняется при старте с хорошим питанием. Зачем для этого экстримизмом заниматься? smile.gif

Невнимательно прочитал вводную, а по ходу топика сложилось впечатление, что момент сохранения - самый важный wink.gif Теперь вижу, что самое главное - надежное детектирования времени отсутствия питания
Go to the top of the page
 
+Quote Post
adc
сообщение Jan 6 2010, 20:12
Сообщение #87


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Послушайте, я наверное в танке сижу, причем очень глубоко)) Объясните пожалуйста почему это не может работать по следующему алгоритму?:
Включаем.
Код
1.Инициализация.
2.Читаем EEPROM (номер эффекта)
3.Инкрементируем
4.записываем в EEPROM следующий номер эффекта
5.Начинаем крутить выбранный  эффект
И так далее с первого пункта.
Go to the top of the page
 
+Quote Post
stells
сообщение Jan 6 2010, 20:17
Сообщение #88


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(adc @ Jan 6 2010, 23:12) *
Объясните пожалуйста почему это не может работать по следующему алгоритму?:
Код
3.Инкрементируем

потому что инкрементировать нужно только если питания не было 1-2с. а если больше - то инкрементировать не надо
Go to the top of the page
 
+Quote Post
HALFer
сообщение Jan 6 2010, 20:20
Сообщение #89


Участник
*

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



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

Сообщение отредактировал HALFer - Jan 6 2010, 20:21
Go to the top of the page
 
+Quote Post
stells
сообщение Jan 6 2010, 20:32
Сообщение #90


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



VladislavS, все ли точно в постановке задачи? такое ощущение, что уравнение с двумя неизвестными. что-то скоро закипит biggrin.gif
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 6 2010, 21:22
Сообщение #91


Местный
***

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



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

Абсолютно. У меня на руках 3 фонарика с тремя разными драйверами, которые ведут себя именно так как я описал. Короткое выключение питания - смена режима. Длинное выключение питания - нет смены режима.
Еще у меня россыпью два типа драйверов с одинаковой схемой, но разными топологиями и прошивками. Один из них я уже перепрошил и ставлю на нём опыты.
Go to the top of the page
 
+Quote Post
andrikk
сообщение Jan 6 2010, 22:12
Сообщение #92


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 23-07-08
Пользователь №: 39 167



глупое предположение, но может какие-то переходные процессы на LED драйвере присутствуют?
по включению нога PB1 на вход, проверяем наличие единицы, если есть, то горячий рестарт, нет - холодный.
без драйвера режимы переключаются?
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jan 6 2010, 22:27
Сообщение #93


Местный
***

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



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

Без нагрузки режимы переключаются. PB1 падает быстрей чем питание smile.gif
Go to the top of the page
 
+Quote Post
andrikk
сообщение Jan 6 2010, 22:34
Сообщение #94


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 23-07-08
Пользователь №: 39 167



похожий девайс
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jan 7 2010, 00:47
Сообщение #95


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

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



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

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


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

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

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

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

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


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


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(Rst7 @ Jan 7 2010, 03:47) *
Я вот тоже думаю, что дело в драйвере (и хотел это предложить раньше, да занят был). Если бы это был просто полевик, то его затвор вполне неплохо хранил бы напряжение ниже чем, примерно, полвольта.

так PB1 не является ADC-входом. его можно инициализировать, как вход компаратора, но тогда затвор драйвера должен хранить не полвольта, а больше 1,1В - напряжение втроенного ИОН
Go to the top of the page
 
+Quote Post
adc
сообщение Jan 7 2010, 09:04
Сообщение #97


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата(stells @ Jan 6 2010, 23:17) *
потому что инкрементировать нужно только если питания не было 1-2с. а если больше - то инкрементировать не надо

Ну тогда так:
-----------------------------------
1.Инициализация.
1.1 Смотрим питание (через ацп)
1.2 Сравниваем со значением ранее записанным.
1.3 Если напряжение выше, к примеру на 10%( чем ранее записанное значение), то пропускаем инкремент. (п.2 а потом п.5)
1.4 Если напряжение не выше 10% инкрементируем счетчик эффектов.
2.Читаем EEPROM (номер эффекта)
3.Инкрементируем
4.записываем в EEPROM следующий номер эффекта
5.Начинаем крутить выбранный эффект
6.Периодически читаем данные с АЦП, усредняем и записываем значение в память.Что дает нам средний уровень питающего напряжения под нагрузкой.
-----------------------------------
т.о. если источник питания(в случае фонарика батарейка) отключается на продолжительное время уровень напряжения на холостом ходу поднимается до определенной величины, что не успевает произойти если нагрузку отключают на короткий промежуток времени.
Эту версию просто проверить если запитать фонарик от стаб. ИП. :-)
зы:Все таинства скорее всего происходят при включении контроллера, а не при его выключении как думают многие )))
Go to the top of the page
 
+Quote Post
stells
сообщение Jan 7 2010, 09:35
Сообщение #98


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(adc @ Jan 7 2010, 12:04) *
если источник питания(в случае фонарика батарейка) отключается на продолжительное время уровень напряжения на холостом ходу поднимается до определенной величины, что не успевает произойти если нагрузку отключают на короткий промежуток времени.

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

Цитата(adc @ Jan 7 2010, 12:04) *
зы:Все таинства скорее всего происходят при включении контроллера, а не при его выключении как думают многие )))

безусловно... при выключении контроллер не может знать, на какое время его выключили
Go to the top of the page
 
+Quote Post
adc
сообщение Jan 7 2010, 09:40
Сообщение #99


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата(stells @ Jan 7 2010, 12:35) *
была такая версия, но автор топика сказал, что и без нагрузки контроллер "видит" длинное отключение sad.gif

Ну контроллер в каком то смысле тоже подобие нагрузки если постараться )))
Тут вопрос "видит" ли он короткое отключение?
Go to the top of the page
 
+Quote Post
stells
сообщение Jan 7 2010, 09:42
Сообщение #100


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(adc @ Jan 7 2010, 12:40) *
Ну контроллер в каком то смысле тоже подобие нагрузки если постараться )))

как? даже если можно постараться, то делать это нужно непрерывно. т.е. разряжать батарею постоянно
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 09:33
Рейтинг@Mail.ru


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