• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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.
 
Сверху Снизу