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

BLE SoC PHY6202

pvvx

Активный участник сообщества
Чё иностранщина пишет: С 1 января по 1 июля 2023 года российские власти растаможили товары Microchip Technology – более 42 миллионов $.
Вот тут списочек всех закрывшихся: https://www.arduino.cc/en/about . -> arduino следующая :)
 

cool2000

Member
Дурино не жалко ни разу. Microchip вроде у китайцев есть пока, в т.ч. и оригинал.

Добавил команды установки стандартных значений (0x26/0x56).
Получилось в итоге менять мощность Tx?
Как подстроить RTC? Убегают со страшной скоростью - на минуту (минимум) за час.
 

pvvx

Активный участник сообщества
Как подстроить RTC? Убегают со страшной скоростью - на минуту (минимум) за час.
Пока нету. Синхронизация с RTC вызывается часто при основной режиме работы (только реклама) и там незя городить сложную функцию, т.к. это увеличит потребление.
Надо разбираться есть ли какая другая подстройка, т.к. ход RTC влияет и на тайминг BLE - при большом уходе будет рваться соединение...
 

pvvx

Активный участник сообщества
> Получилось в итоге менять мощность Tx?
Вписал, но не проверял. Указанная функция и так применялась при старте...
И там странности в той функции - работают значения от 0 до 0x1F, а дальше, только при значении 0x3F переключается питание RF.
Выходит какой-то кривой вариант - 0...31 и специальное значение 63 c переключением питания 🤪
 

pvvx

Активный участник сообщества
> Получилось в итоге менять мощность Tx?
Не работает - наверно где-то перезаписывается....
 

pvvx

Активный участник сообщества
Оказывается работает.
Но на ток питания не сказывается! Чудо какое-то.
При записи 0 - приемник рядом показывает -60 дБм
При записи 63 - приемник рядом показывает -42 дБм
При этом, в данном промежутке это и производилось:
1706887684976.png
 

pvvx

Активный участник сообщества
Сложно обнаружить разницу в потреблении в режиме рекламы, т.к. на короткое по времени усреднение замеров сказывается кратность измерений батареи, показа времени, сохранения истории (там может попасть и стирание сектора), а так-же кто-то может вылезти с активным сканированием (Xiaomi Gateway 3 иногда включает активное сканирование).
И жрет этот TH-05 дофига просто так, в основном на драйвере LCD (~17..18 мкА на всё в спячке).
Итог по одному замеру среднего за 420 секунд при 3.3В и всё включено - расчет и запись истории, показ часов:
При RF TX = 63 - 25.598 мкА
При RF TX = 0 - 25.240 мкА
Порядки менее 0.1 мкА можно не учитывать - там зависимости и от температуры и влажности :)
 

pvvx

Активный участник сообщества
И это не абсолютное значение, а как откалибровал PowerProfiler. Но разница между замерами действительна на уровнях 0.1 мкА...
 

pvvx

Активный участник сообщества
А так посчитал nRF Power Profiler II, но на среднем рабочем напряжении у CR2032 в 2.85В:
При числе 63, на телефоне рядом прием -39..42 дБм
1706891032529.png
При числе 0, на телефоне рядом прием -60..66 дБм
1706891096663.png
Чудо чип - на 20 дБм мощности разница в потреблении ~0.5 мкА 🤪
 

cool2000

Member
Чудо чип - на 20 дБм мощности разница в потреблении ~0.5 мкА
Да, это странно.
Может из-за слишком короткой длительности передачи?

Не похоже, что режим максимальной мощности включается . -20дБ .. 0 как-то не ложится на интервал 0 .. 31.
63 похоже на специальное значение для +5дБ.
 

cool2000

Member
Похоже что отваливается соединение из-за RTC. Отключил всё кроме питания, всё так же продолжает отваливаться.

Действительно, какие-то проблемы с интернетом. Отвалилась Tuya интеграция в HA и не восстанавливается.
 

pvvx

Активный участник сообщества
Видимо недостаточно просто присвоить значение: g_rfPhyTxPower = cfg.rf_tx_power;
Надо ещё выполнить вызов: rf_phy_set_txPower(g_rfPhyTxPower);.
Все wakeupProcessX() выполняют функцию rf_phy_ini() в которой rf_phy_set_txPower(g_rfPhyTxPower).
Лишний вызов rf_phy_set_txPower() не требуется.

> Действительно, какие-то проблемы с интернетом.

Всё стало тормозить. В основном DNS. Включили какие-то фильтры и всё тормозит. VPN протоколы теперь просто тормозят и частично вырезаются пакеты. У меня megafon.
 

pvvx

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

pvvx

Активный участник сообщества
Похоже что отваливается соединение из-за RTC. Отключил всё кроме питания, всё так же продолжает отваливаться.
Не из-за RTC, а из-за коррекции счета таймингов где-то в кодах...
В ROM чтение счетчика RTC происходит с проверкой переключения значения счетчика, а в загружаемых кодах - без. И в некоторых частях делается and 0xffffff счетчика, как будто он 24-х битный, как описано в PDF. Но он 32-х битный.
 

pvvx

Активный участник сообщества
1707247215772.png1707247235745.png1707247347860.png
Нашел на али TH05-V1.3 (фото с али).
Заказал, но непонятно, придет старый TH05 или такой вариант...
 

pvvx

Активный участник сообщества
Как вам удалось выяснить, что счётчик RTC 32-разрядный?
1. Функции в ROM не используют `and 0x00ffffff` и работают как с 32-х разрядным счетчиком при переполнении (вычитают из 0xffffffff).
2. Считывал и смотрел, сколько насчитает. Если бы был 24-х битным, то там вроде всего 512 секунд... Но счетчик идет дальше - дожидался счета до 30 бит, 31-й наверно тоже работает :)

В HTML я натворил бардака - добавил всякого, но не раскрасил и не сделал зависимостей от `connect` и скрытия лишних элементов если они не поддерживаются (см. биты DEV_SERVICES)
И график не отображается, если вкладка при его старте не активна...
 

pvvx

Активный участник сообщества
В HTML есть "команды", а прошивка имеет debug команды - чтение/запись побайтно любого адреса и чтение/запись dword - для работы с 32-х битными регистрами...
Jtag и прочим не пользуюсь - они не работоспособны при наличии sleep.
Если совсем вручную - в map или asm есть все адреса переменных и т.д. Читаете и пишите в эксплорере :)
 

pvvx

Активный участник сообщества
Debug Printf не работает. Обработка LOG() в SDK конфликтует с sleep и какими-то таймингами BLE, т.к. не дописана - работа с UART не ставит флагов занятости/освобождения в pm менеджере и т.д..
Но всё это нафиг не сдалось, т.к. работает соединение и всё можно гнать через BLE.
 
Сверху Снизу