|
|
  |
Как распознать кратковременное выключение на Tiny13, Управление режимами фонарика кнопкой питания |
|
|
|
Jan 12 2010, 14:17
|
Местный
  
Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140

|
Цитата На PB0 ведь какой-то широкий импульс сразу после включения появляется. И пропадает сразу как выходим на режим. Наверняка ведь важно чтобы в момент выключения там 1 было.
|
|
|
|
|
Jan 12 2010, 18:09
|
Местный
  
Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101

|
Цитата(VladislavS @ Jan 12 2010, 15:25)  Здорово что на АЦ что-то нащупали. Сейчас посленовогоднюю текучку раскидаю - пощупаю тоже. Только я вот думаю на какой ноге они могли бы это делать? На всех свободных при выключении нули. Остается только ADC1 - на ней 0.8 В висит. Не помешают ли они в момент включения? Нет, при выключении АЦП скоммутирован на делитель напряжения. Может быть, АЦП работает всё время, чтобы контролировать разряд батареи, или допустим подкорректировать скважность ШИМ шире, для компенсации понижения напряжения батарейки при разряде. Похоже, память на 2 секунды найдена? Показательно, что то же самое происходит и при сбросе(ARV, #162 ) - правильно, регистры обнуляются, порты запираются, конденсатор оказывается изолированным. В эксперименте stells (#155) АЦП зашкален, когда используется внутренний ИОН, потому что напряжение на конденсаторе значительно выше. Для этого у китайцев и стоит делитель, потоvу что они хотят сравнивать не с изменяющимся напряжением батарейки, а с образцовым bandgap reference, который, очевидно, есть простой стабилитрон.
|
|
|
|
|
Jan 12 2010, 18:44
|

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

|
Цитата(Maik-vs @ Jan 12 2010, 21:09)  Для этого у китайцев и стоит делитель, потоvу что они хотят сравнивать не с изменяющимся напряжением батарейки, а с образцовым bandgap reference, который, очевидно, есть простой стабилитрон. Вы хотите сказать, что до выключения они держат подключенным к АЦП вход с делителя, а при включении измеряют напряжение на висящем входе (фактически на внутреннем конденсаторе)? может и так
|
|
|
|
|
Jan 12 2010, 19:15
|
Группа: Участник
Сообщений: 10
Регистрация: 12-01-10
Из: Оренбург
Пользователь №: 54 756

|
VladislavS, кстати, у меня таки sku.7612 и на PIC12F629, покупал примерно полгода назад. Схема вообще элементарная - такой же планарный диод, за ним керамический кондюк 0.1uF и всё. Больше питание ни на одну ногу не приходит ни напрямую, ни параллельно с кондёром. Режимы нормально переключаются без СИДа. У моего С1-114 вход всего 1МОм, при этом вижу, что питание падает до ~0.3В весьма быстро, потом до нуля чуть медленней. Для переключения режима надо разорвать питание максимум секунды на полторы. Попробовал зашунтировать кондёр резистором 47К - максимальный интервал уменьшился до ~0.5сек, хотя напряжение на 1 ноге по осциллографу падает практически мгновенно. Таки используют какие-то хитрые остатки в памяти? Проц при падении напряжении питания уже остановлен, а для поддержки памяти напряжения в 0.2В и меньше хватает? upd: нифига подобного. Повесил от второго БП постоянное напряжение 1В на питании проца - способность переключать режимы сохраняется.
Если мне кто-нть скинет настроенный MPLAB или поможет быстро "войти в курс", готов принять участие в исследовании аналогичного драйвера на PICe. В частности, есть чистые PIC10F202 и живая плата от фонаря Fenix L2D. И давняя мечта написать под него собственную прошивку ;-). Вот только знаний негусто, опыта почти ноль и времени свободного маловато...
Сообщение отредактировал ISV - Jan 12 2010, 19:21
|
|
|
|
|
Jan 12 2010, 20:44
|
Местный
  
Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140

|
ISV, добро пожаловать на форум! All, вот видите!!! Не только у меня фонарик с "волшебной" кнопкой есть! Цитата(stells @ Jan 12 2010, 23:08)  по идее сам отключится. а при включении подключится на ADC0, на ней бы и надо мерить, если конечно она (reset) определена как вход/выход Ресет естественно не отключен, иначе SPI-программирование не будет работать. А вот мультиплексор то при включении действительно на ADC0 включен. Получается, искать свободную ногу и не надо - вот она! Интересно, подключен ли физически аналоговый вход ADC0 при использовании первой ноги как ресет?
|
|
|
|
|
Jan 13 2010, 04:50
|

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

|
Цитата(VladislavS @ Jan 12 2010, 23:44)  Интересно, подключен ли физически аналоговый вход ADC0 при использовании первой ноги как ресет? думаю, что да. я, когда проводил эксперимент на своей тиньке, удивился: почему я никогда не могу намерять нулевое напряжение на этом внутреннем кондере? даже если контроллер очень долго выключен, все-равно почти половина питания есть. а потому, что у меня ресет подтянут к питанию  из-за этого и с внутренним ИОНом эксперимент не работал - кондер подзаряжался при включении от этой подтяжки кстати, а не может отсутствие подтяжки ресета быть причиной сбоев фонариков, о которой Вы говорили? при помехе по ресету как раз и будет короткое отключение и смена режимов нашел. не Вы говорили: Цитата(rx3apf @ Jan 3 2010, 16:56)  P.S. А сам я нафиг выдрал эту плату управления, потому как достала она меня этим постоянным переключением режимов и идиотским стробоскопом..
Сообщение отредактировал stells - Jan 13 2010, 05:19
|
|
|
|
|
Jan 13 2010, 05:38
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
Цитата(stells @ Jan 13 2010, 07:50)  думаю, что да. я, когда проводил эксперимент на своей тиньке, удивился: почему я никогда не могу намерять нулевое напряжение на этом внутреннем кондере? даже если контроллер очень долго выключен, все-равно почти половина питания есть. а потому, что у меня ресет подтянут к питанию  думаю, вы ошибаетесь в этом предположении: в моих экспериментах с мега32 вывод сброса никак не связан с ADC0, а тем не менее никогда результат АЦП не получался нулевым и даже менее 390! тут происходят процессы переноса заряда из конденсатора АЦП на емкость внешнего пина и всяких промежуточных цепей (там же по идее куча затворов полевичков и паразитных емкостей имеется "по пути") и обратно. видимо, из-за этого и не выходит чистого 0 на "свободном" входе АЦП.
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
Jan 13 2010, 10:26
|
Местный
  
Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140

|
Немого повозился на обеде. Пока не стал сильно мудрить. PB4 (ADC2) никуда не подключен. При включении питания подключаю на него АЦП и измеряю. Код ADMUX=(0<<REFS0)| 2; ADCSRA=(1<<ADEN)|(1<<ADSC)|(0<<ADATE)|(0<<ADIF)|(0<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|(0<<ADPS0); while(ADCSRA & (1<<ADSC)); DDRB=(0<<DDB5)|(1<<DDB4)|(0<<DDB3)|(0<<DDB2)|(1<<DDB1)|(1<<DDB0); PORTB=(0<<PORTB5)|(0<<PORTB4)|(0<<PORTB3)|(0<<PORTB1)|(0<<PORTB0); temp=ADC; после всего temp равно 560 где-то. 2.1 В. Ставлю щуп на PB4. Желтый луч - питание, Зеленый - PB4 (ADC2). Хорошо видно подключение АЦП и момент оцифровки.
Во-первых, напряжение далеко не 2.1 В, как это намерил АЦП. Во-вторых, в начале оно выше чем было на АЦП в момент выключения. В-третьих, занчение АЦП меняется от длительности выключенного состояния, но зависимость достаточно сложная. От питания, самом собой, тоже зависит. В-четвертых, на китайской прошивке ничего подобного и в помине нет ни на одной ножке. Ну да хрен с ними - мы идем своим путем. То же самое, но поставил фузы на, чтобы стартовал через (14CK + 4 ms).
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|