• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

TLSR8251 + LCD + термометр = LYWSD03MMC XIAOMI Bluetooth термометр

pvvx

Активный участник сообщества
Через месяц работы такое устройство издаст короткий пип и перезагрузится :)
У Apple такое-же сделано так-же :) :)
Главное продать, а дальше ищите батарейки :p
 

pvvx

Активный участник сообщества
Оно вообще не запускается при батарейке разряженной совсем немного. Доходит до "пип" и умирает. И снова...
 

pvvx

Активный участник сообщества
Есть ещё такое:
1675772601416.png
1675772613865.png
А в нем стоит контроллер LCD с параметрами питания от 2.6В и выше, что под малой нагрузкой дает новая батарея при -5С. :)
И ничего - народ покупает.
В последних версиях LYWSD03MMC тоже экономия и стоит аналогичный контроллер LCD.
 

pvvx

Активный участник сообщества
И жрут эти контроллеры в 2 или 3раза больше предыдущих. Но в CGDK2 хотя-бы поставили CR2430 и в первой партии припаяли кондер :) , что немного спасет - работать будет немного дольше до замены батареи.
 

pvvx

Активный участник сообщества
Вот такие странности:
LYWSD03MMC и севшая CR2032 (нет старта вообще, если не прилепить кондер к батарее).
Подключаем кондер к батарейке и соединяемся (интервал ставим 1000 мс).
1675783633407.png
На 11-ой секунде отключаем кондер. Получаем провал до 1.55В при токе 4.1 мА и BOR чипа (1.8В).
Flash не рекомендуется писать при напряжении менее 2.0 В.

Если батарея ещё способна выдать что-то около 6 мА с провалом до 2-х вольт, то соединение держится только при интервале менее и равном 1 сек.
Если батарея ещё способна выдать что-то около 6 мА с провалом до 2.3 вольта, то соединение держится только при интервале менее и равном 1.2 сек.
Если батарея выдает ток, но не напряжение - тогда всё ок до 1.8 В.
И т.д. Такие приколы.
 

pvvx

Активный участник сообщества
Т.е. на холоде (-30С) новая батарея CR2032, не потерявшая ещё внутренне сопротивление, будет работать и при падении отдачи по напряжению до 1.8В
Я найду, как это было сделано у индусов - пришлю кусок, позже немного, наверное вечером
Индусы изучили все варианты?
 

pvvx

Активный участник сообщества
Эти статьи и PDF уже дано известны.
А имеющаяся фича каким-то образом связана с интервалами. И чем меньше, интервал, тем больше кушает, но держит соединение.
По статьям должно быть наоборот.
Временные параметры смотрел - всё в норме, и с чем связаны эти фичи (что нарушается) пока неизвестно, .
 

cryptozoy

Member
На длинных интервалах, когда от помех пакет не принимается, то следующий уже в рассинхроне из-за допуска отклонения частоты генератора 32.768 КГц. Для стабильности таких соединений нужно увеличить время работы приёмника (Window widening), чтобы принимаемый пакет не пролетал мимо временного окна. Вот тут всё становится понятно, когда меняешь интервалы и/или точность низкочастотного генератора: Online Power Profiler for Bluetooth LE
 

cryptozoy

Member
Именно поэтому кварцевый генератор лучше менее точного внутреннего RC генератора, который приходится регулярно калибровать в моменты работы процессора, дополнительно затрачивая энергию батареи. По крайней мере так это устроено у чипов серии nRF5, с которыми я работаю.
 

cryptozoy

Member
Количество пропущенных пакетов называется «Slave latency». Понятно, что каждый пропущенный пакет увеличивает время до следующего приёма ещё на один интервал. Рекомендую порегулировать и этот параметр для наглядности картины. Ну и на диаграмме после каждой регулировки смотрим изменение ширины «Window widening», то есть дополнительное время работы приёмника.
 

cryptozoy

Member
Роль в соединения естественно «Connection (peripheral)», в которой предназначено работать батарейным устройствам для экономии энергии (для соединения не требуется продолжительное время сканировать рекламные каналы).
 

cryptozoy

Member
Попробуйте попереключать «LF clock» с внешнего кварца на внутренний RC генератор при интервалах секунда и более. Вам понравится.
 

cryptozoy

Member
И выходит, что nRF52832 (в периферийной роли) с внешним кварцем и интервалами в 0.5 секунды потребляет так же, как и с интервалами в 1 секунду, но с RC генератором. А виновато дополнительное время работы приёмника в каждом пакете, которое увеличивается в 10 раз (с 52 до 552 мкс), потому что кварц имеет отклонение 20 ppm, а RC генератор 500 ppm.
 

cryptozoy

Member
Но если не увеличивать дополнительное время работы приёмника, то естественно соединение будет рваться. Возможно SDK кривой, и не учитывает все необходимые входные параметры данной задачи.
 

pvvx

Активный участник сообщества
На длинных интервалах, когда от помех пакет не принимается, то следующий уже в рассинхроне из-за допуска отклонения частоты генератора 32.768 КГц. Для стабильности таких соединений нужно увеличить время работы приёмника (Window widening), чтобы принимаемый пакет не пролетал мимо временного окна. Вот тут всё становится понятно, когда меняешь интервалы и/или точность низкочастотного генератора: Online Power Profiler for Bluetooth LE
Но всё хорошо работает, если провал напряжения питания по току мал. Работает до набора «Slave latency» до 4 сек.
И чем больше "провалы" то требуется уменьшить «Slave latency». И временную диаграмму я проверял - она не нарушается.
Происходит что-то другое. Типа сбоя мозгов у SoC при резких импульсах напряжения питания....
Какому чипу понравятся скачки напряжения с 3+ до 2-х В с дикими фронтами. Это 1/3 напряжения...
 

pvvx

Активный участник сообщества
И какая при этом калибровка спасет, если даже супер-пупер хорошие LDO стабилизаторы (Uref) имеют подавление входных импульсов до 90 дБ.
При скачках в 1/3 питания даже кварцевый генератор собьётся.
Это неисправимая халтура от экономии на конденсаторах у Xiaomi и побороть это программно невозможно. Только обойти - уменьшив интервал и тем самым увеличив потребление.
 

pvvx

Активный участник сообщества
Оф. прошивки не используют интервалы более 1 сек и при соединении жрут очень хорошо. Так-же SDK не содержит отдельной процедуры калибровки RC генератора и к чему его калибровать, если питание зависит от тока и предыдущих действий SoC.
 
Сверху Снизу