Jump to content

    

dontsov

Участник
  • Content Count

    110
  • Joined

  • Last visited

Community Reputation

0 Обычный

About dontsov

  • Rank
    Частый гость

Recent Profile Visitors

1751 profile views
  1. Эта версия мне наиболее вероятной кажется. Я порылся в "бракованной" партии из 30шт, где думал причиной является флюс. И там было 2 экземпляра у кого причиной были "бракованные" конденсаторы. 1мкФ показывал сопротивление 1кОм.
  2. Да. Но того, что обрывается быть не должно. Это нормальное потребление 15мкА. А 600мкА быть не должно.
  3. Отличная версия, я ее проверю. нет, не шлифовали
  4. Прошлые фото были другой платы. Выложил текущей. "токопроводящего мостика" более того, у меня питание через 2 переходных отверстия =(. Однако у меня при изгибе плата работает правильно, а без влияния она потребляет 1мА. Это как можно объяснять? Я беру Омметр и измеряю сопротивление до стабилизатора - мегаомы (бесконечность), после стабилизатора - 3.7кОм (!). Гну плату ,измеряю после стабилизатора - мегаомы.
  5. Фото другой платы. Я трассировку показал. Могу сфотографировать больную плату. Почему тогда потребление высокое (как будто замыкание) и становится нормальным после изгиба?
  6. Нормальное потребление платы 7-12мкА. У некоторых плат из партии в 300шт ток 200-600-2000мкА. Если вытащить и чуть изогнуть плату, то потребление ПАДАЕТ до нормы. Через несколько минут может подняться опять. Параметры ПП: 2-х слойная плата, 1мм толщина. Резонит. Самая дешевая точность. Вопросы: 1. Может ли это быть дефектом платы на производстве? 2. Нужно ли делать электроконтроль ПП после производства? На видео демонстрирую: Фото ЭТОЙ платы (знаю про плохую трассировку):
  7. 5 тестовых устройств с WDTCR |= bit( WDIE ) в ISR(WDT_vect) продолжают исправно работать, когда без него через сутки точно зависали. Дополнительно убрал WDE из WDTCR = bit( WDCE ) | bit( WDE ), т.к. бит отвечает за перезагрузку МК.
  8. Прошу помощи! Счетчик импульсов (watchdog в режиме генерации прерываний) на attiny85 считает импульсы просыпаясь раз в 250мс и раз в сутки выходит из цикла и общается по i2c. Возникла проблема — очень редко (!) attiny85 перезагружается после общения по i2c. Как я это понял: я вижу на сервере увеличение на единицу счетчика перезагрузок и MCUSR в setup(). MCUSR обычно 1, а становится равен 8 (1000 - WDRF: Watchdog Reset Flag. Завершение работы таймера.). Подозрения на некорректную настройку watchdog. Проблема проявляется крайне редко и не понятно как отловить. Код: main.cpp main.cpp "избранное": int16_t wakeup_period_min; volatile int wdt_count; ISR( WDT_vect ) { wdt_count--; } void resetWatchdog() { MCUSR = 0; WDTCR = bit( WDCE ) | bit( WDE ); WDTCR = bit( WDIE ) | bit( WDP2 ); // 250 ms wdt_reset(); } #define ONE_MINUTE 240 void setup() { info.service = MCUSR; //причина перезагрузки noInterrupts(); ACSR |= bit( ACD ); interrupts(); resetWatchdog(); wakeup_period_min = WAKEUP_DEFAULT_PER_MIN; if (storage.get(info.data)) { //не первая загрузка info.resets = EEPROM.read(storage.size()); info.resets++; EEPROM.write(storage.size(), info.resets); } else { EEPROM.write(storage.size(), 0); } } void loop() { power_all_disable(); set_sleep_mode( SLEEP_MODE_PWR_DOWN ); resetWatchdog(); for (unsigned int i = 0; i < ONE_MINUTE && !button.pressed(); ++i) { wdt_count = wakeup_period_min; while ( wdt_count > 0 ) { noInterrupts(); if (button.pressed()) { interrupts(); break; } else { counting(); interrupts(); sleep_mode(); } } } wdt_disable(); .... ....Связь по i2c .... } Выдержка из даташита Какие гипотезы тестируются: 1. по даташиту нужно "To avoid the Watchdog Reset, WDIE must be set after each interrupt." добавил в ISR(WDT_vect): WDTCR |= bit( WDIE ); 2. Убрать WDE из WDTCR = bit( WDCE ) | bit( WDE ); Почему я уверен, что устройства не зависают: а) attiny продолжает считать импульсы корректно б) я посмотрел статистику и 70% attiny вышли на связь через WAKEUP_DEFAULT_PER_MIN, который получают в setup(). В остальных случаях через Х * WAKEUP_DEFAULT_PER_MIN из-за проблем со связью. Почему я думаю, что проблема в начале функции loop(), а не в цикле подсчета импульсов: a) attiny выходит на связь через дефалтный период, а не хаотично. б) attiny выходит на связь ПОСЛЕ цикла подсчета импульсов, значит ошибка была не в цикле, а перед ним. Проблема появляется с вероятностью около 0,0002%. К сожалению, моих знаний не достаточно, чтобы предположить, что может быть причиной перезагрузки. Прошу помощи!
  9. Подскажите, сколько должен потреблять модуль ESP8266-01 при EN=LOW после сеанса работы? У меня жрет 10 мкА, но я встречал экземпляры которые потребляли 0 мкА. Мне нужно, чтобы у всех было около 0 мкА.Алгоритм:ESP включает подачей HIGH на пин CHIP_EN микроконтроллер attiny85. После взаимодействия по i2c (attiny85 slave, ESP master), attiny85 получает команду на сон от ESP и через 25 мс CHIP_EN переводит в LOW.Еще одна проблема, которая может быть связана: светодиод после выключения остается тускло светиться потребляя 3-4мкА...Итого мы имеем 10 мкА жрет недовыключенный ESP или его память + 5мкА утекает через TX пина ESP.Опытным путем установлено, что модули с памятью cFeon потребляют 0 мкА.Электрическая схема: Код ESP:void loop(){... // цикл связиmasterI2C.sendCmd('Z'); // готов спать, attinyESP.deepSleep(0, RF_DEFAULT);}Что пытался сделать и НЕ ПОМОГЛО:1. Увеличивал время до выключения ESP до 100мс.2. Вручную отключал подтягивающие резисторы после i2c у attiny85 (в tinycore была до 2020г ошибка - оставались INPUT_PULLUP)3. Вручную переводил RX, TX, 0, 2 у ESP в INPUT.4. В соседнем треде, мне рассказали, что неплохо бы соблюдать тайминги ESP:Добавил конденсаторы 0.1 мкФ между CHIP_EN-GND и 0.033 между RESET-GND.Убрал конденсатор 1мкФ между RESET-GND на самом модуле ESP-01S. Железо:1. ESP01-Sпамять:DP201625V080ASIGP2B285Aток 10 мкА + светодиод TX 5 мкА2. ESP01-SпамятьHB203525V080ASIGP2F117Aток 10 мкА + светодиод TX 5 мкА3. ESP01-S память: cFeon 080B-104HIP K80HL09 1940HKY ток почти 0 мкА + тусклое свечение светодиода 5 мкА4. ESP01памятьT25S80PQ19t2P24049ток то 6 мкА, то 15 мкА Куда копать, чтобы снизить потребление любых попадающих в руки ESP-01? Или дело не в электрической схеме, а драйвере памяти ESP и надо просто покупать cFeon?
  10. Исполнитель найден. Отлично справился.
  11. Проекту Ватериус требуется помощь! Напомню, это автономное устройство для передачи показаний импульсных счётчиков воды по Wi-Fi. Требуется программист для доработки прошивки Attiny85 (tinycore) и веб сервера ESP (WifiManager), сборка под Platformio IDE. Не хватает времени самому доработать прошивку. Задачи простые, но важные. 1. Добавить настройку периода отправки 2. Добавить ручную настройку веса импульса Требуемые материалы, программаторы предоставляются. Оплачиваемо.
  12. Aliexpress посоветовал магазин предлагаемых вами корпусов: https://aliexpress.ru/store/4423085 Вдруг кому будет полезно. Хотя цены кусаются.
  13. Да, увидел на их модулях есть конденсаторы на 0.1мкФ в EN и в RST. По даташиту минимум 100мкс. Итак 3300 ом + 0.033мкФ = 100мкс. На EXT_RSTB Итак 3300 ом + 0.1мкФ = 330мкс. На CHIP_EN Верно думаю? А какого номинала лучше конденсаторы? И обычная керамика или какие-то особенные?
  14. Посмотрел, спасибо! Т.е. нужен конденсатор на Reset, правильно я понимаю? Чтобы при вставки батареек ESP корректно "ожила". EN у меня раз в сутки включается. А какую функцию они будут выполнять? У меня программная защита от дребезга, если вы про него.