Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как распознать кратковременное выключение на Tiny13
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3, 4, 5, 6, 7
Rst7
Цитата
Да ну... Ёмкость ножки - единицы пикофарад


Да плюс емкость монтажа. Суммарно пик 10 наберется.

А емкость конденсатора устройства выборки-хранения - 14пФ.

Цитата
как вы думаете, чем занимается АЦП те 12 лишних тактов при первом преобразовании?


вот уж хз
VladislavS
Значит, вот до чего я продвинулся. Как мы тут уже нащупали, измерял напряжение на висящей в воздухе ножке cразу после включения. Коды получались где-то в диапазоне 560-580. Чтобы выявить хоть какую-то зависимость я питание жестко зафиксировал. Пытался найти просто границу. Что-то типа "если (код>570) то короткое, иначе длинное". Общая тенденция действительно прослеживается. Но процент ложных срабатываний очень высокий как я ни двигал границу. Причем ложные срабатывания как в одну, так и в другую сторону.
stells
Цитата(VladislavS @ Jan 13 2010, 22:56) *
Общая тенденция действительно прослеживается. Но процент ложных срабатываний очень высокий как я ни двигал границу. Причем ложные срабатывания как в одну, так и в другую сторону.

очень высоким назвать трудно, я заметил что-то в районе процентов десяти. чем объяснить - не знаю. может поэтому rx3apf и сказал, что выкинул эту прошивку?
кстати, а почему Вы решили перешить контроллер?

такое ощущение, что принцип найден. осталось нащупать нюансы для исключения ложных срабатываний
ARV
а может кто англоговорящий запостит вопрос на avr-freaks? что иноземцы скажут - китайцы-то все там выучены smile.gif только ссылочку на вопрос не забудьте здесь дать, чтобы следить за ходом мысли smile.gif
@Ark
Цитата
... такое ощущение, что принцип найден. осталось нащупать нюансы для исключения ложных срабатываний

Я предполагаю, что основная причина нестабильности результата - неизвестный (плавающий) потенциал на свободной ноге при включении. IMHO, при старте нужно, до того как подключать ее к АЦП, установить на ней нулевой уровень принудительно. И только потом перевести в третье состояние и подключить а АЦП...
stells
есть предположение, что процент ложных срабатываний зависит от того, чем занимается контроллер в момент срабатывания BOD. может быть есть возможность выловить момент отключения питания до срабатывания BOD и заставить контроллер сохранить напряжение на конденсаторе более или менее постоянным?

Цитата(Maik-vs @ Jan 13 2010, 22:07) *
Раз так плотно изучаем свойства АЦП, как вы думаете, чем занимается АЦП те 12 лишних тактов при первом преобразовании?

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

Возможно. У родной прошивки бывает при включении режим перескакивает. Похоже из-за дребезга контактов. На электронном ключе ложных срабатываний я не замечал ни разу. Всетаки это схема из китайского фонаря и качество всех сопутствующих компонентов тоже влияет на работу схемы.

Цитата
кстати, а почему Вы решили перешить контроллер?

1. Китайцы считают, что наличие в фонаре 18 !!! режимов работы это его конкурентное преимущество. Нормальному же пользователю достаточно 1-2 уровней яркости без всяких мигалок.

2. В оригинальной плате регулировка яркости организована ШИМ-мом. Если открыть даташит на светодиод, то можно посчитать, что световой поток будет выше если его питать 350 мА постоянного тока вместо 1А 35% скважности. На этой платке очень легко сделать 1А, 700мА и 350мА без ШИМ. Повышается эффективность и не жужит к тому же.

3.Есть такая болезнь - флэшеголизм. Это когда фонарики дома уже складывать не куда, каждый из них по 100 раз разобран, перепаен, подточен, подмазан, переделан. Естественно, написать свою прошивку для него сам бог велел.

4.Действительно интересно КАК они это сделали.

Цитата
такое ощущение, что принцип найден.

Возможно и удастся дожать чтобы по этому принципу работало. Будет наш метод!
Но ни на одной диаграмме с китайской прошивки ничего похожего не видно. Я уже под микроскопом все всплески просмотрел. Вот на 5-й ноге при старте что-то подозрительное. С компаратором они там выёживаются что-ли...

Цитата
IMHO, при старте нужно, до того как подключать ее к АЦП, установить на ней нулевой уровень принудительно.

Ну это запросто - попробую.

Цитата
что иноземцы скажут - китайцы-то все там выучены

Думаю это всеже не китайская разработка.

Цитата
может быть есть возможность выловить момент отключения питания до срабатывания BOD

Есть, АЦП у меня в Free Runing и молотит выборки 11.5 кГц. То есть, через 87*2 мкc он может понять что его выключают.
Maik-vs
Цитата(Rst7 @ Jan 13 2010, 22:22) *
Да плюс емкость монтажа. Суммарно пик 10 наберется.

нету там монтажа. Контактная площадка под ногу и всё.

Цитата(stells @ Jan 13 2010, 23:50) *
может быть как-раз ждет установления напряжения на конденсаторе УВХ?


Вот очень это интересно. Ведь при последующих преобразованиях ничего ждать не надо - конденсатор подключен к входу, ну пусть через резистор, но постоянная времени несущественна. При первом преобразовании - чего ждём? Или конденсатор УВХ разряжается/заряжается до какого-то значения - а зачем? Разрядить его об землю и подключить к входу. Или делается дополнительное преобразование, чтобы запомнить - что? напряжение смещения? Тогда получается, что нужно периодически делать "первое" преобразование, чтобы учитывать изменение температуры, напряжения питания etc.
ARV
по-моему, лишние циклы не сильно связаны с зарядом и т.п. конденсатора, просто надо ждать, пока завершатся переходные процессы в аналоговых схемах АЦП. в ДШ так и написано:
Цитата
The first conversion after the ADC is
switched on (ADEN in ADCSRA is set) takes 25 ADC clock cycles in order to initialize
the analog circuitry
Rst7
Цитата
нету там монтажа. Контактная площадка под ногу и всё.


А Вы думаете это мало? Особенно с учетом того, что на другой стороне земля. В любом случае, сравнимо с 14пФ.
stells
Цитата(VladislavS @ Jan 14 2010, 00:42) *
Возможно и удастся дожать чтобы по этому принципу работало. Будет наш метод!
Но ни на одной диаграмме с китайской прошивки ничего похожего не видно. Я уже под микроскопом все всплески просмотрел. Вот на 5-й ноге при старте что-то подозрительное. С компаратором они там выёживаются что-ли...

а мысль-то интересная! я все думал, как бы так оцифровать напряжение на конденсаторе без подключения его к какой-либо ноге? а он похоже на входе компаратора сидит. может можно что-то компаратором детектировать?
Rst7
Цитата
а он похоже на входе компаратора сидит.


Каким образом? Компаратор от АЦП живут раздельной жизнью.
stells
Цитата(Rst7 @ Jan 14 2010, 13:41) *
Каким образом? Компаратор от АЦП живут раздельной жизнью.

кондер находится на выходе мультиплексора, а выход мультиплексора идет на инвертирующий вход компаратора. т.е. компаратор "видит" кондер при включенном бите ACME регистра ACSR

задача сделать соизмеримыми напряжение ИОН (1,1В) и напряжение на конденсаторе.
если перед отключением контроллера разрядить конденсатор (его обкладку, которая смотрит на вход, заземлить), то остаточное напряжение на нем будет -0,9В. тогда при коротком отключении на этой же обкладке окажется потенциал 1,1В, а при длинном - 2В.

а BOD точно работает на 1,8В? может быть все-таки 2,7В? тогда ситуация получше будет: при коротком отключении на кондере будет 0,65В.
Rst7
Цитата
кондер находится на выходе мультиплексора


Не согласен.
stells
Цитата(Rst7 @ Jan 14 2010, 13:47) *
Не согласен.

почему? опять смотрим эквивалентную схему аналогового входа
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
Rst7
Цитата
опять смотрим эквивалентную схему аналогового входа


Смотрим. Выход INPUT MUX разветвляется (отходит сигнал ADC MULTIPLEXER OUTPUT) перед SAMPLE & HOLD COMPARATOR'ом.
stells
Цитата(Rst7 @ Jan 14 2010, 13:59) *
Смотрим. Выход INPUT MUX разветвляется (отходит сигнал ADC MULTIPLEXER OUTPUT) перед SAMPLE & HOLD COMPARATOR'ом.

не понял. и о чем это говорит?
Нажмите для просмотра прикрепленного файла
Вы хотите сказать, что конденсатор находится на выходе этого sample&hold comparator? а может все-таки на выходе input mux?
Rst7
Цитата
Вы хотите сказать, что конденсатор находится на выходе этого sample&hold comparator?


Не на выходе, а внутри.
stells
Цитата(Rst7 @ Jan 14 2010, 14:28) *
Не на выходе, а внутри.

где это можно увидеть? этот sample&hold - простой компаратор, который сравнивает 2 напряжения: с аналогового входа и ЦАПа
Rst7
Цитата
этот sample&hold - простой компаратор


Для тех, кто в танке. В англоязычной литературе термин sample-hold amplifier/comparator - вполне устоявшийся термин. И обозначает законченный узел выборки-хранения.

Так-же рекомендую изучить блоксхему аналогичного узла в какой-нибудь AVR'ке с наличием диффусилителя и подумать о смысле конденсатора на выходе входного мультиплексора, а не за всеми каскадами усиления и коммутации wink.gif
stells
Цитата(Rst7 @ Jan 14 2010, 14:43) *
Для тех, кто в танке. В англоязычной литературе термин sample-hold amplifier/comparator - вполне устоявшийся термин. И обозначает законченный узел выборки-хранения.

но при этом конденсатор может быть у него на входе
Цитата(Rst7 @ Jan 14 2010, 14:43) *
Так-же рекомендую изучить блоксхему аналогичного узла в какой-нибудь AVR'ке с наличием диффусилителя и подумать о смысле конденсатора на выходе входного мультиплексора, а не за всеми каскадами усиления и коммутации wink.gif

смотрим для тини25:
Нажмите для просмотра прикрепленного файла
если конденсатор на входе этого компаратора, то и "тот" компаратор его "увидит"
Rst7
Цитата
смотрим для тини25:


Неверно смотрите smile.gif

В последней ревизии даташита (с буковкой K), ADC multiplexer output совсем из другой точки берется smile.gif

Нажмите для просмотра прикрепленного файла
stells
Цитата(Rst7 @ Jan 14 2010, 15:01) *
В последней ревизии даташита (с буковкой K), ADC multiplexer output совсем из другой точки берется smile.gif

ну, может быть. может даже быть, что китайская программа на других контроллерах будет неработоспособна, а вот на тини13 работает smile.gif
Rst7
Цитата
ну, может быть.


Не "ну может быть", а так и есть smile.gif Проверить-то не долго.
stells
Цитата(Rst7 @ Jan 14 2010, 15:08) *
Проверить-то не долго.

проверять для других контроллеров нет смысла, речь идет конкретно о тини13. пока замечено только то, что единственным компонентом, способным длительное время что-то хранить, является конденсатор УВХ. вокруг него и идет пляска. или есть другие предположения?
Rst7
Цитата
или есть другие предположения?


Да предложения уже высказывались. Саморазогрев.

И повышение напряжения батареи после снятия нагрузки, кстати.
stells
Цитата(Rst7 @ Jan 14 2010, 15:17) *
Да предложения уже высказывались. Саморазогрев.
И повышение напряжения батареи после снятия нагрузки, кстати.

как/на чем смотреть этот саморазогрев?
при работе без нагрузки и от БП режимы тоже переключаются
Rst7
Цитата
как/на чем смотреть этот саморазогрев?
при работе без нагрузки и от БП режимы тоже переключаются


Да хз. Просто подходящей активности на ножках для окучивания S/H-конденсатора при штатной прошивке тоже не наблюдается.
stells
Цитата(Rst7 @ Jan 14 2010, 15:25) *
Просто подходящей активности на ножках для окучивания S/H-конденсатора при штатной прошивке тоже не наблюдается.

зато автор пишет, что есть какие-то телодвижения на ножке компаратора. с чего бы его запускать, если только не сравнивать что-то внутри кристалла?
smk
А Вы не хотите попробовать покоммутировать делитель, например позакорачивать нижний резистор не снимая питания с контроллера, и посмотреть что будет происходить? Посмотреть ток в питании контроллера?
ISV
дядьки, а хотите я одним махом вашу стройную версию по поводу емкости на АЦП сломаю? ;-)
напомню, что в аналогичном драйвере (точнее, вообще в большинстве китайских фонарей) применяется PIC12F629, в котором вообще нет АЦП. А переключение режимов работает точно так же - разрывом питания до 2 сек. Более того, напомню, что в моём варианте драйвера кроме диода и кондера по питанию другого обвеса у проца нет вообще.

я не уверен, что для каждого проца используется исключительно характерная ему особенность... думаю, таки существует какое-то общее решение.
stells
взбодрил biggrin.gif
rx3apf
Цитата(ISV @ Jan 14 2010, 22:10) *
я не уверен, что для каждого проца используется исключительно характерная ему особенность... думаю, таки существует какое-то общее решение.

Вот у меня парочка на f629 - там по питанию довольно солидный танталовый электролит. И, кажется, резисторный делитель стоит до развязывающего диода...
VladislavS
Цитата
И, кажется, резисторный делитель стоит до развязывающего диода...

А что он там делает, если нет АЦП? ISV утверждает что вообще резисторов нет.
rx3apf
Цитата(VladislavS @ Jan 14 2010, 22:48) *
А что он там делает, если нет АЦП? ISV утверждает что вообще резисторов нет.

Пардон, наврал я - на тех платах, что с 629, делителя нет и керамический конденсатор (плата-бутерброд, с импульсным преобразователем, разрисовывать не хочется). С делителем и большим конденсатором - это другая, на процессоре маркировка стерта, и внешний i2c EEPROM.
stells
Цитата(ISV @ Jan 14 2010, 22:10) *
в аналогичном драйвере (точнее, вообще в большинстве китайских фонарей) применяется PIC12F629

набросайте схемку, если не сложно
точнее интересует к какой ноге тогда драйверы подключены и какие драйверы используются
VladislavS
Ну, на самом деле, в 12f629 есть компаратор с Vref на одном из входов. Подобрав делитель можно за батарейкой следить. Не так гибко как с АЦП, но всёже.

Цитата
набросайте схемку, если не сложно

Можно словесно - мы не такие привередливые. smile.gif

Цитата
точнее интересует к какой ноге тогда драйверы подключены и какие драйверы используются

Ну драйверы те же AMC7135 - линеный стабилизатор тока.
ISV
Цитата(stells @ Jan 15 2010, 01:10) *
набросайте схемку, если не сложно
точнее интересует к какой ноге тогда драйверы подключены и какие драйверы используются
рисовать сложновато smile.gif. но всё настолько просто, что можно и на словах:
с + питания платы через диод на 1 ногу проца, с неё же на землю керамика 0.1uF (отпаивал и замерял)
7 нога на управление АМС7135
8 нога земля
остальные в воздухе - никуда не звонятся
таким образом, на плате ровно 6 деталей: PIC12F629, 3 штуки AMC7135, диод и конденсатор.
@Ark
Цитата
дядьки, а хотите я одним махом вашу стройную версию по поводу емкости на АЦП сломаю? ;-)...

Вы тоже "на танке"? smile.gif Это не версия, а техническое решение - как это сделать в рамках предложеной схемы. Причем, не изменяя ее, как того захотел автор топика... Как там сделали китайцы - это их проблемы. wink.gif
P.S. Я бы, вообще, такие изделия делал на PIC10...
ILYAUL
Цитата(ISV @ Jan 14 2010, 22:10) *
... применяется PIC12F629, в котором вообще нет АЦП. А переключение режимов работает точно так же - разрывом питания до 2 сек. Более того, напомню, что в моём варианте драйвера кроме диода и кондера по питанию другого обвеса у проца нет вообще.

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

1. Полностью согласен. У моего коллеги , есть такой фонарик с PIC12F629 , я заитересовавшись темой сегодня его разобрал , что бы режимы самому померить , а там PIC. Плюнул. Попробую ещё раз выпросить , срисовать и померить.
2. Резистивный делитель , наверняка и только для провеерки батарейки .
3. TiNY не знает , при нажатии на кнопку , что с ним произойдёт , т.е это может произойти в любом месте программы . Времени чтобы оценить "обстановку" у него нет. Его тупо выключают. Так , что можно исходить из того , что он оценивает что-то (сижу вычитываю DS), что он может использовать при включении , как более или менее точное указание на то , сколько он "тупил". Я не думаю , что китайцы использовали , что-то кроме написанного в DS.
ISV
собственно, у меня есть и другие платы фонарей на PIC12F629, но описанная - самая простая. но ни на одной из них не обнаружено посторонних делителей.

сейчас просмотрел внимательней коробочку с драйверами и остатками он них. выявилось 2 типа: на PIC12F629 и на неизвестном проце без маркировки (не затёрто, а просто девственно отсутствует). так вот, у второй группы всегда присутствует либо делитель, либо схема с отдельным электролитом на ADC0. видимо, все они на tiny13.

в последнюю плату долго въезжал smile.gif. питание проца и 24с02 идет напрямую снаружи, без диодов. при этом, оно еще и зашунтировано 1к резистором (это в фонаре, где каждый миллиампер с аккума на счету!!!). через диод запитан электролит 4.7uF, оттуда же на 1 ногу ADC0, между 1 и 3 ногами стоит резистор 43к. вот такая загадочная схема.

Цитата(@Ark @ Jan 15 2010, 01:55) *
Вы тоже "на танке"? smile.gif Это не версия, а техническое решение - как это сделать в рамках предложеной схемы.
ну, так то да... не ради массово-практического решения, а как интересная задачка smile.gif

Цитата(@Ark)
Причем, не изменяя ее, как того захотел автор топика... Как там сделали китайцы - это их проблемы. wink.gif
да много как они делают.. что ни драйвер, то своя схема и свои хитрые китайские решения.

Цитата(@Ark)
P.S. Я бы, вообще, такие изделия делал на PIC10...
делают. широко известные Fenix'ы LD/PD серии сделаны на 10F202, но в PIC10 нет eeprom'a, а хочется хранить собственные настройки режимов.
@Ark
Цитата
но в PIC10 нет eeprom'a, а хочется хранить собственные настройки режимов.

Так и храните! Не отключайте батарею, да и все. smile.gif На ее ресурс это практически не повлияет. Ток потребления в режиме спячки - 100nА. Наверное, саморазряд батареи больше....
stells
Цитата(ISV @ Jan 14 2010, 23:45) *
с + питания платы через диод на 1 ногу проца, с неё же на землю керамика 0.1uF (отпаивал и замерял)
7 нога на управление АМС7135
8 нога земля

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

хотя нет, момент отключения у ПИКа никак не зарегистрировать. но все-равно, что-то на ней может оставаться
VladislavS
Цитата(ILYAUL @ Jan 15 2010, 00:04) *
3. TiNY не знает , при нажатии на кнопку , что с ним произойдёт , т.е это может произойти в любом месте программы .

Согласен.

Цитата(ILYAUL @ Jan 15 2010, 00:04) *
Времени чтобы оценить "обстановку" у него нет. Его тупо выключают.

Злобное заблуждение. После выключения он живет ещё где-то 500 мкс. Запускаем ADC в Free Runing и имеем новую выборку каждые 86 мкс. Времени чтобы "подготовиться" к выключению вагон и тележка.

Цитата(ILYAUL @ Jan 15 2010, 00:04) *
Так , что можно исходить из того , что он оценивает что-то (сижу вычитываю DS), что он может использовать при включении , как более или менее точное указание на то , сколько он "тупил".

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

Цитата(ILYAUL @ Jan 15 2010, 00:04) *
Я не думаю , что китайцы использовали , что-то кроме написанного в DS.

Я не думаю что это сделали китайцы. Они лишь печатный станок запустили.
stells
да, даташит у этого AMC7135 оставляет желать лучшего. хотя, с другой стороны, управляется он ШИМом контроллера и, если в момент отключения на выходе контроллера 0, то ничего на ноге по идее не останется
akken
[quote name='VladislavS' date='Jan 15 2010, 08:29' post='704607']

Информация о времени отключения может появиться в контроллере:

1- с делителя
2- с драйвера
3- с питания
4- внутри самого контроллера

Можно поочередно отключать ножки ( кроме питания, конечно) и проследить поведение схемы. Стабильное питание уже проверено, дальше под наибольшим подозрением драйвер
и внутренности тини.
Попробуйте методом исключения.
ILYAUL
Цитата(VladislavS @ Jan 15 2010, 08:29) *
Злобное заблуждение. После выключения он живет ещё где-то 500 мкс. Запускаем ADC в Free Runing и имеем новую выборку каждые 86 мкс. Времени чтобы "подготовиться" к выключению вагон и тележка.


Запускаем ADC в Free Runing - при условии , что работаем на 200 кгц - 5*25=125мкс , 500-125=375мкс в остатке. Зачем значение АЦП нужно и, что с ним делать и как Вы собираетесь привязать его к режиму в котором работает фонарик совершенно не понятно ? Поехали далее + для того что бы его запустить нужно понять , что это надо бы сделать. Значит прерывание . Итого в остатке ~ 350мкс . ( с учётои init регистров АЦП) А дальше интереснее всего - значение надо сохранить , единственно возможное место EEPROM - типовое значение записи 3,4 mc . И делаем это , когда обращаться к EEPROM вообще не рекомендуется - исчезновение питания. Ну и зачем нам знать значение АЦП , если мы его однозначно не сохраним ( нам как-то вот времени не хватать) и толка от него никакого.
VladislavS
Цитата(ILYAUL @ Jan 15 2010, 12:52) *
Запускаем ADC в Free Runing - при условии , что работаем на 200 кгц - 5*25=125мкс , 500-125=375мкс в остатке.

А у меня АЦП вообще всегад запущен - за батарейкой следит. Поэтому, 13 тактов выборка. Делители следующие 9.6МГц/8=1.2МГц тактовая процессора. 1.2МГц/8=150кГц тактовая АЦП. 150кГц/13=11538 выборок в секу или каждые 86 мкс.


Цитата(ILYAUL @ Jan 15 2010, 12:52) *
Зачем значение АЦП нужно и, что с ним делать и как Вы собираетесь привязать его к режиму в котором работает фонарик совершенно не понятно ?

1. Следить за разрядом аккумулятора.
2. Опровергнуть утверждение, что tiny НЕ МОЖЕТ УЗНАТЬ ЧТО ЕГО ВЫКЛЮЧАЮТ. Может!
3. Если посмотришь код, который я выкладывал, то увидишь что на прерывании АЦП, раз уж оно работает, еще и ШИМ сделан. А таймер спит и экономит энергию в это время.

Цитата(ILYAUL @ Jan 15 2010, 12:52) *
А дальше интереснее всего - значение надо сохранить , единственно возможное место EEPROM - типовое значение записи 3,4 mc

Зачем его сохранять? Тем более в EEPROM? Можно выполнить какие-нибудь другие действия. Не важно какие - главное МОЖНО.
МП41
VladislavS, на чём Вы пишите свою прошивку?

Вопрос к тому клоню, что если это не C-образный компилятор, то попробуйте сохранять значение в какой-нибудь регистр общего назначения, например, в r20. У меня в таком регистре без питания очень долго информация сохранялась (на почти полностью разряженном электролите). Может "физика" у этих регистров отличная от SRAM.
P.S. Я не знаю, можно ли из IAR'a получить монопольный доступ к регистру r20.
Rst7
Цитата
P.S. Я не знаю, можно ли из IAR'a получить монопольный доступ к регистру r20.


Можно. Не к r20, а к r4...r15, что, собственно, один хрен.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.