Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как распознать кратковременное выключение на Tiny13
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3, 4, 5, 6, 7
VladislavS
Цитата(Maik-vs @ Jan 11 2010, 22:58) *
В общем, сначала нужно ответить на вопрос: зачем диод по питанию, коль скоро 1 мкф не обеспечивает не то, что 2 сек питания, а даже и запись в еепром?

Чтобы дым не шел от неправильно вставленной батарейки.

Цитата
А может быть, он всё же обеспечивает ОЗУ питанием на 2 секунды от перехода в "любимое состояние"? Оно, допустим, хранится в EEPROM и при включении сравнивается с RAM и потом RAM расписывается например нулями.

Какое напряжение, по твоему, для этого нужно? А то мой осциллограф никакого не видит.

Цитата
Зачем тогда нужен делитель напряжения?

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


Цитата
При отключении питания конденсатор АЦП остаётся заряженным внутри кристалла, где изоляция хорошая! И 14пф могут протянуть долго...

Я еще не успел досканально проверить эту идею, но слышу её не впервые. Кто-нибудь может подтвердить что такое есть?


Цитата
Не этот ли пичок мы видим на ногах 2,3 в самом начале на диаграмме из №137?

Не думаю, в этот момент напряжение еще не превысило 1.8 и проц еще не стартанул. Да и потом он еще много-много тактов будет в ресете.


Цитата
Зачем тогда диод, если AMC7135 линейный регулятор?

Чтобы проц не спалить неправильно вставленной батарейкой.

Цитата
Ещё одна ёмкость - 3 входа AMC7135, в дататшите обозванные "band-gap reference", которые можно подать на вход компаратора. Хотя утечка с неё по плате непредсказуема.


Этот самый "band-gap reference" я уже общупал со всех сторон. Очень быстро стартует. Я думал его с нарастающим питанием на ADC1 сравнивать - не получается перехода ни при каких условиях.


Цитата
Нужна полная схема - куда идут ноги 1,2,3,5? Не видно ни на схеме из №64 ни на плате из №94.

Никуда. Я же рисовал полную схему. На одной плате просто есть контактные площадки через которые эти ножки можно на землю подключить для управленичя режимами.

Есть более качественные фото плат:

Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Marian
Да по второй фотке видно, что схема нарисованна правильно.
ARV
заразили smile.gif

провел эксперименты на меге32 (чтобы в терминал выводить). сделал 3 массива по 5 байт в неинициализируемой области ОЗУ: один заполняю 0, второй 0xFF, третий символом 'A'. при включении питания выводил содержимое массивов и сумму всех байтов в каждом.

получил следующие результаты:
1. при быстром передергивании питания (менее 1 сек), при среднем (до 5 сек) и при длительном (более 30 сек) невозможно по содежимому ОЗУ определить, как долго оно было обесточено. наверное, при использовании каких-то особых методов анализа шанс определения времени есть, но мне он показался мнимым...
2. каждая ячейка в массивах стремится к своему "любимому" значению при подаче питания, причем с высокой степенью точности: из 30 экспериментов, например, первый байт первого массива у меня всегда был равен 62, второй 188 или 189 и т.д. отклонение в 1 бит, редко в 2.
3. имеется слабая тенденция в увеличении числа единиц при очень долгом обесточивании.

такие вот результаты...

P.S. экспериментировал на STK500 - питание дергал его выключателем.

программа:
Код
uint8_t __attribute__((section(".noinit"))) str1[5];
uint8_t __attribute__((section(".noinit"))) str2[5];
uint8_t __attribute__((section(".noinit"))) str3[5];

static void prn(uint8_t *s){
    uint16_t tmp=0;
    printf_P(PSTR("\n"));
    print_line('=',25);
    printf_P(PSTR("\n"));
    for(uint8_t i=0; i< 5; i++){
        printf_P(PSTR("%u "),s[i]);
        tmp += s[i];
    }
    printf_P(PSTR("\nSUM=%u"),tmp);
}

int main(void){
    printf_P(PSTR("\n\nTest RAM"));
    prn(str1);
    prn(str2);
    prn(str3);
    memset(str1,0,5);
    memset(str2,255,5);
    memset(str3,'A',5);
    while(1);
}


примерный результат:
Цитата
Test RAM
=========================
62 188 238 233 34
SUM=755
=========================
233 22 11 139 253
SUM=658
=========================
228 195 47 90 155
SUM=715

Test RAM
=========================
62 188 238 233 163
SUM=884
=========================
233 22 27 139 253
SUM=674
=========================
228 227 47 90 155
SUM=747
МП41
А Вы попробуйте понаблюдать не за ячейками ОЗУ, а за регистрами общего назначения.
stells
Цитата(Maik-vs @ Jan 11 2010, 22:58) *
При отключении питания конденсатор АЦП остаётся заряженным внутри кристалла, где изоляция хорошая! И 14пф могут протянуть долго... Тогда при включении питания выбираем ногу 2, висящую в воздухе (?) на вход АЦП и, собственно, АЦПуем smile.gif

да, есть какой-то эффект! (собственно об этом @Ark давно говорил)
взял один свой девайс с тини13 и попробовал. перед выключением цифровые буферы были подключены к одному из висящих в воздухе ADC, вход подтянут к питанию и подключен к АЦП (т.е. внутренний конденсатор заряжается до питания). при включении сразу отключал цифровые буферы от этого входа ADC, оцифровывал вход и отправлял в регистр сравнения ШИМ (смотрел скважность ШИМ). разницу в 1 и 5 секунд видно невооруженным глазом smile.gif
почему-то эффект виден только в том случае, если опорным напряжением АЦП является питание. если в качестве опорного используется внутренний ИОН, то ШИМ всегда зашкален (возможно ИОН не успевает установиться, нужно сдвинуть АЦПирование во времени)
ReAl
Цитата(stells @ Jan 12 2010, 09:26) *
разницу в 1 и 5 секунд видно невооруженным глазом smile.gif
Красиво :-)
stells
Цитата(ReAl @ Jan 12 2010, 12:26) *
Красиво :-)

в смысле? это сарказм? smile.gif

Цитата(stells @ Jan 12 2010, 10:26) *
разницу в 1 и 5 секунд видно невооруженным глазом smile.gif

измеренное значение напряжения на висячей ноге отправляется в регистр сравнения ШИМ и выводится на ногу. разницу в 1 и 5 секунд отсутствия питания видно невооруженным глазом... на экране осциллографа, естественно
питания нет 5с:
Нажмите для просмотра прикрепленного файла
питания нет 1с:
Нажмите для просмотра прикрепленного файла
Rst7
Цитата
да, есть какой-то эффект! (собственно об этом @Ark давно говорил)


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

А еще надо изучить с хорошим разрешением осциллограммы на неиспользуемых ножках при подаче питания (там, где такой выброс наблюдается). Если "таки да", то точка семплирования будет видна.
stells
Цитата(Rst7 @ Jan 12 2010, 12:36) *
Предлагаю проверить - нагреть паяльником тиньку. Если хорошо прогреть, то запоминание режимов может почти потеряться (из-за больших утечек).

смотреть надо на платке от фонарика (там вообще другие утечки будут), а у меня ее нет. видел в выходные в продаже такие фонарики (120р. гад всего-то и стоит), но не купил smile.gif
Rst7
Цитата
смотреть надо на платке от фонарика


А я и предлагаю топикстартеру smile.gif
rx3apf
Цитата(stells @ Jan 12 2010, 12:41) *
смотреть надо на платке от фонарика (там вообще другие утечки будут), а у меня ее нет. видел в выходные в продаже такие фонарики (120р. гад всего-то и стоит), но не купил smile.gif

Сомнительно. 120 р - это фонарики с кластером из 5-mm диодов и директ-драйвом от кассеты AAA. А чтобы с драйвером на трех AMC7135 - это с приличным диодом, питанием от Li-ion и стоят они от $10..15, в Китае. 120 р - это только егойный диод, не из самых "крутых"...
ARV
я тут продолжал ковыряться с STK500 и мега32 (понятно, что это совсем не тини13 по строению порта)... причем без особых изысков все на Си тестировал. и я обнаружил другой интересный момент: показания АЦП зависят от того, как долго контроллер находился в состоянии сброса при поданном питании! smile.gif причем при кратком нажатии на сброс показания АЦП около 1000, а при длительном (минуты 3) опускаются до 390. т.е. я так понимаю, что в данном случае мы наблюдаем как раз постоянную времени разряда по внутрикристальным утечкам... интересно, длительность power-down режима так можно вычислить? wink.gif
Код
int main(void){
    ADMUX = _BV(REFS0);
    ADCSRA = _BV(ADEN) | _BV(ADSC) | _BV(ADPS2);
    while(ADCSRA & _BV(ADSC));
    printf_P(PSTR("\nADC=%u"),ADC);
    PORTA = 1;
    while(1);
}
VladislavS
Здорово что на АЦ что-то нащупали. Сейчас посленовогоднюю текучку раскидаю - пощупаю тоже. Только я вот думаю на какой ноге они могли бы это делать? На всех свободных при выключении нули. Остается только ADC1 - на ней 0.8 В висит. Не помешают ли они в момент включения?
stells
Цитата(VladislavS @ Jan 12 2010, 15:25) *
Только я вот думаю на какой ноге они могли бы это делать? На всех свободных при выключении нули.

на ногах-то нули, а вот после входного мультиплексора видимо что-то остается
МП41
На PB0 ведь какой-то широкий импульс сразу после включения появляется.
VladislavS
Цитата
На PB0 ведь какой-то широкий импульс сразу после включения появляется.

И пропадает сразу как выходим на режим. Наверняка ведь важно чтобы в момент выключения там 1 было.
Maik-vs
Цитата(VladislavS @ Jan 12 2010, 15:25) *
Здорово что на АЦ что-то нащупали. Сейчас посленовогоднюю текучку раскидаю - пощупаю тоже. Только я вот думаю на какой ноге они могли бы это делать? На всех свободных при выключении нули. Остается только ADC1 - на ней 0.8 В висит. Не помешают ли они в момент включения?

Нет, при выключении АЦП скоммутирован на делитель напряжения. Может быть, АЦП работает всё время, чтобы контролировать разряд батареи, или допустим подкорректировать скважность ШИМ шире, для компенсации понижения напряжения батарейки при разряде.
Похоже, память на 2 секунды найдена?
Показательно, что то же самое происходит и при сбросе(ARV, #162 ) - правильно, регистры обнуляются, порты запираются, конденсатор оказывается изолированным. В эксперименте stells (#155) АЦП зашкален, когда используется внутренний ИОН, потому что напряжение на конденсаторе значительно выше. Для этого у китайцев и стоит делитель, потоvу что они хотят сравнивать не с изменяющимся напряжением батарейки, а с образцовым bandgap reference, который, очевидно, есть простой стабилитрон.
stells
Цитата(Maik-vs @ Jan 12 2010, 21:09) *
Для этого у китайцев и стоит делитель, потоvу что они хотят сравнивать не с изменяющимся напряжением батарейки, а с образцовым bandgap reference, который, очевидно, есть простой стабилитрон.

Вы хотите сказать, что до выключения они держат подключенным к АЦП вход с делителя, а при включении измеряют напряжение на висящем входе (фактически на внутреннем конденсаторе)? может и так
ISV
VladislavS, кстати, у меня таки sku.7612 и на PIC12F629, покупал примерно полгода назад. Схема вообще элементарная - такой же планарный диод, за ним керамический кондюк 0.1uF и всё. Больше питание ни на одну ногу не приходит ни напрямую, ни параллельно с кондёром. Режимы нормально переключаются без СИДа. У моего С1-114 вход всего 1МОм, при этом вижу, что питание падает до ~0.3В весьма быстро, потом до нуля чуть медленней.
Для переключения режима надо разорвать питание максимум секунды на полторы. Попробовал зашунтировать кондёр резистором 47К - максимальный интервал уменьшился до ~0.5сек, хотя напряжение на 1 ноге по осциллографу падает практически мгновенно.
Таки используют какие-то хитрые остатки в памяти? Проц при падении напряжении питания уже остановлен, а для поддержки памяти напряжения в 0.2В и меньше хватает?
upd: нифига подобного. Повесил от второго БП постоянное напряжение 1В на питании проца - способность переключать режимы сохраняется.

Если мне кто-нть скинет настроенный MPLAB или поможет быстро "войти в курс", готов принять участие в исследовании аналогичного драйвера на PICe. В частности, есть чистые PIC10F202 и живая плата от фонаря Fenix L2D. И давняя мечта написать под него собственную прошивку ;-). Вот только знаний негусто, опыта почти ноль и времени свободного маловато...
ReAl
Цитата(stells @ Jan 12 2010, 11:34) *
в смысле? это сарказм? smile.gif
С чего это вдруг сарказм?
Красивое решение. Мне понравилось.
stells
Цитата(stells @ Jan 12 2010, 21:44) *
до выключения они держат подключенным к АЦП вход с делителя, а при включении измеряют напряжение на висящем входе (фактически на внутреннем конденсаторе)

точно, наверняка так и есть. в пользу этого говорит то, что ADC0 висит в воздухе, а именно он при включении оказывается подключенным к АЦП
VladislavS
Обещаю завтра всё опробовать, но я что-то запутался... Где находится та ёмкость, напряжение на которой надо измерять? Между мультиплексором и АЦП или в самом АЦП? Тогда мне стоит испробовать следующее:
- При штатной раоте АЦП постоянно подключен ко входу ADC1 и делает свои дела.
- При пропадании питания я должен успеть отключить АЦП от входа? Для этого ADEN=0 надо сделать? Или преключить мультиплексор на свободную ногу? Или он сам отключится при срабатывании BOD?
- При включении переключить мультиплексор АЦП к любой свободной ноге, настроенной на вход без пулапа.
- Включить АЦП и одновременно запустить преобразование.
- На основании показаний АЦП ставлю нужный режим и перехожу к штатной работе.

На бумаге вроде красиво выглядит - посмотрим что в железе получится...
stells
Цитата(VladislavS @ Jan 12 2010, 22:49) *
Или он сам отключится при срабатывании BOD?

по идее сам отключится. а при включении подключится на ADC0, на ней бы и надо мерить, если конечно она (reset) определена как вход/выход
VladislavS
ISV, добро пожаловать на форум!

All, вот видите!!! Не только у меня фонарик с "волшебной" кнопкой есть!

Цитата(stells @ Jan 12 2010, 23:08) *
по идее сам отключится. а при включении подключится на ADC0, на ней бы и надо мерить, если конечно она (reset) определена как вход/выход

Ресет естественно не отключен, иначе SPI-программирование не будет работать.
А вот мультиплексор то при включении действительно на ADC0 включен. Получается, искать свободную ногу и не надо - вот она! Интересно, подключен ли физически аналоговый вход ADC0 при использовании первой ноги как ресет?
stells
Цитата(VladislavS @ Jan 12 2010, 23:44) *
Интересно, подключен ли физически аналоговый вход ADC0 при использовании первой ноги как ресет?

думаю, что да. я, когда проводил эксперимент на своей тиньке, удивился: почему я никогда не могу намерять нулевое напряжение на этом внутреннем кондере? даже если контроллер очень долго выключен, все-равно почти половина питания есть. а потому, что у меня ресет подтянут к питанию smile.gif из-за этого и с внутренним ИОНом эксперимент не работал - кондер подзаряжался при включении от этой подтяжки

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

нашел. не Вы говорили:
Цитата(rx3apf @ Jan 3 2010, 16:56) *
P.S. А сам я нафиг выдрал эту плату управления, потому как достала она меня этим постоянным переключением режимов и идиотским стробоскопом..
VladislavS
Ну если подключен, то я не понимаю как это вообще может работать. Проц без единицы на ресете не может работать. Либо при выключенном АЦП этот пресловутый конденсатор отключен от мультиплексора, либо одно из двух...
stells
Цитата(VladislavS @ Jan 13 2010, 08:22) *
Проц без единицы на ресете не может работать.

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

да и вообще вход ресет самый хитрый, он же и при 12В должен работать
ARV
Цитата(stells @ Jan 13 2010, 07:50) *
думаю, что да. я, когда проводил эксперимент на своей тиньке, удивился: почему я никогда не могу намерять нулевое напряжение на этом внутреннем кондере? даже если контроллер очень долго выключен, все-равно почти половина питания есть. а потому, что у меня ресет подтянут к питанию smile.gif
думаю, вы ошибаетесь в этом предположении: в моих экспериментах с мега32 вывод сброса никак не связан с ADC0, а тем не менее никогда результат АЦП не получался нулевым и даже менее 390!

тут происходят процессы переноса заряда из конденсатора АЦП на емкость внешнего пина и всяких промежуточных цепей (там же по идее куча затворов полевичков и паразитных емкостей имеется "по пути") и обратно. видимо, из-за этого и не выходит чистого 0 на "свободном" входе АЦП.
stells
Цитата(ARV @ Jan 13 2010, 08:38) *
тут происходят процессы переноса заряда из конденсатора АЦП на емкость внешнего пина и всяких промежуточных цепей (там же по идее куча затворов полевичков и паразитных емкостей имеется "по пути") и обратно. видимо, из-за этого и не выходит чистого 0 на "свободном" входе АЦП.

так получается не конденсатор стекает на ножку, а наоборот что-то натекает на него... но не суть, может Вы и правы, дело не в подтяжке ресета. могу проверить и отпаять резистор подтяжки, но проще автору все сейчас проверить
VladislavS
Немого повозился на обеде. Пока не стал сильно мудрить. 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).
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Rst7
Цитата
PB4 (ADC2) никуда не подключен. При включении питания подключаю на него АЦП и измеряю.


Погодите, а куда включен коммутатор при снятии питания?
VladislavS
ЗЫ: ещё я посмотрел на своей прошивке как выглядит запись одного байта в EEPROM. Один в один совпадает с тем что видим на 6-й мс китайской прошивки.

Цитата(Rst7 @ Jan 13 2010, 13:29) *
Погодите, а куда включен коммутатор при снятии питания?


Дальше идет код, который я уже постил. АЦП подключаю навсегда к ADC1 - на нём где-то 4В * 3/13 = 0.9 В. И оставляю его в Free Running режиме. Когда пропадает напряжение, при 1.8 срабатывает BOD. ADC1 при этом, по идее, должнбыть 1.8 * 3/13 = 0.4 В. Но ни как не около 1В, которые показывает осциллограф и тем более не 2В, которые намеряет АЦП.
Rst7
Цитата
ADC1 при этом, по идее, должнбыть 1.8 * 3/13 = 0.4 В. Но ни как не около 1В, которые показывает осциллограф и тем более не 2В, которые намеряет АЦП.


Это по Вашей идее smile.gif А по моей в момент срабатывания BOD'а напряжение на конденсаторе хранения с одной стороны (на одной обкладке относительно земли - на той, которая подключена ко входу) будет 0.4 вольта, а с другой - 1.8/2=0.9 вольта - см. эквивалентную схему устройства выборки-хранения в даташите. Итого на конденсаторе имеем -0.5 вольта относительно полпитания. При включении имеем полпитания как 2 вольта, минус 0.5 на конденсаторе => полтора вольта относительно земли. Плюс подключение собственной емкости ножки с нулевым потенциалом относительно земли - это еще немного снизит напряжение. Итого - очень похоже на картинку. Потом, понятное дело падает - это входное сопротивление щупа.
stells
Цитата(VladislavS @ Jan 13 2010, 13:35) *
ADC1 при этом, по идее, должнбыть 1.8 * 3/13 = 0.4 В. Но ни как не около 1В, которые показывает осциллограф и тем более не 2В, которые намеряет АЦП.

видимо все-таки что-то натекает на конденсатор, я же тоже вижу при включении после длинного отключения около половины питания. ну и ладно, есть некоторая постоянная составляющая, вот и все
Rst7
Можно увеличить усиление канала 2? Хочу оценить отношение емкости ножки и s/h-конденсатора.
stells
Цитата(Rst7 @ Jan 13 2010, 13:43) *
При включении имеем полпитания как 2 вольта

а вот и половина питания smile.gif
Rst7
Цитата
а вот и половина питания


Ну да. При долгом выключении будет именно так smile.gif

Кстати, к топикстартеру. Есть активный щуп с полевиком на входе? Дабы избавится от разряда через 10МОм щупа? Или слепить из подручных материалов?
stells
Цитата(Rst7 @ Jan 13 2010, 13:43) *
При включении имеем полпитания

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


Есть еще собственная емкость ножки.
VladislavS
Цитата(Rst7 @ Jan 13 2010, 13:45) *
Можно увеличить усиление канала 2? Хочу оценить отношение емкости ножки и s/h-конденсатора.

Легко. Код такой же как на самой первой диаграмме. Щуп 10 МОм 15 пФ.
Нажмите для просмотра прикрепленного файла

Вот тут запустил три преобразования АЦП подряд. Как в книжке - первое 25 тактов, еще 2 по 13.
Нажмите для просмотра прикрепленного файла

Забыл написать. Питание отключается генератором импульсов где-то на 166 мс перед съемом этих диаграмм. Щуп при этом держу на ножке, естественно.
stells
Цитата(Rst7 @ Jan 13 2010, 13:57) *
Есть еще собственная емкость ножки.

да, хорошо бы конечно перед умиранием контроллера подзаряжать эту емкость. лучше непрерывно это делать при выполнении основной программы, тогда и погрешность снизится. но все-таки это не принципиально, задача не стоит точно что-то измерить, а только оценить остаточное напряжение относительно некоторого порога
VladislavS
Цитата
Есть активный щуп с полевиком на входе? Дабы избавится от разряда через 10МОм щупа? Или слепить из подручных материалов?

Щупа нет. Слепить что-то в приемлемое время не смогу.

Ну так что, пытаться с помощью АЦП измерять отклонение от пол питания?
stells
Цитата(VladislavS @ Jan 13 2010, 14:18) *
Ну так что, пытаться с помощью АЦП измерять отклонение от пол питания?

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

1.в рабочем цикле переключаем мультиплексор с делителя на свободную ножку, подзаряжая ее таким образом
2.при включении оцифровываем свободную ножку, оцифровываем напряжение на делителе, нормируем их друг по отношению к другу (или не надо, не могу сообразить?), вычитаем и отправляем в ШИМ
3.принимаем решение о выборе порога переключения режимов
VladislavS
Цитата(stells @ Jan 13 2010, 14:26) *
1.в рабочем цикле переключаем мультиплексор с делителя на свободную ножку, подзаряжая ее таким образом

Не осознал. Кого подзаряжаем? Если и правда НОЖКУ, то я могу туда пулап подцепить.
МП41
Будет фонарик работать, если вход ADC1 закоротить?
stells
Цитата(VladislavS @ Jan 13 2010, 14:48) *
Не осознал. Кого подзаряжаем? Если и правда НОЖКУ, то я могу туда пулап подцепить.

пуллап не хорошо, она должна быть заряжена до того же напряжения, что и кондер УВХ, хотя... на кондере УВХ (левой его обкладке, той, что подключена к входу) напряжение после включения составляет 1,5-2В, если ножку подтянуть внутренним пуллапом к питанию, то в момент выключения на ней останется 1,8В, примерно то, что надо. но можно пока этого и не делать
VladislavS
Я вот ещё что заметил. В сообщении #138 диаграмма китайской прошивки на 5-й ноге.

Взял второй вариант платы - там другая прошивка, так как запись в EEPROM и включение нужного режима происходит уже через 400 мкс после старта. Диаграммы 5-й ноги этой прошивки.

Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла

Мне кажется, или это АЦП работает на этой ноге?
Rst7
Цитата
Диаграммы 5-й ноги этой прошивки.


На пятой ноге (PB0) нет АЦП.
VladislavS
Пардон, заработался... sad.gif
Maik-vs
Цитата(Rst7 @ Jan 13 2010, 13:57) *
Есть еще собственная емкость ножки.

Да ну... Ёмкость ножки - единицы пикофарад, а вот утечка с неё гораздо больше, чем с внутреннего конденсатора...

Раз так плотно изучаем свойства АЦП, как вы думаете, чем занимается АЦП те 12 лишних тактов при первом преобразовании? Как-то очень не кошерно выглядит это свойство атмельских АЦП.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.