• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

BLE SoC PHY6202

pvvx

Активный участник сообщества
а можно краткую выжимку у PHY есть плюсы по сравнению с Telink?
Нет никаких плюсов.
Есть различия - основное в том, что PHY - это Cortex M0 и и имеет SWD интерфейс отладки (если включить). Я не использую.
А у Telink свой интерфейс - Telink SWire - всё по одному проводу.
У Telink чипов есть USB, если хватает ножек на корпусе - он есть во всех кристаллах.
У Telink есть все виды SDK - Zigbee, BLE одновременно с Zigbee и т.д.
У PHY ничего нет. Вот пытаемся сделать работающий BLE SDK...
 

cool2000

Member
Это я поторопился, проект extBlePeripheral, собирается только с библиотеками для gcc из SDK. Только добавил недостающее из keil, а в самих исходных текстах ещё много чего не хватает... :(
 

pvvx

Активный участник сообщества
Проблема не соединения и потери связи при напряжении более 2.5В связана с DC-DC.
В PDF PHY6222 два варианта подключения - без DC-DC и с ним. Там замыкается вход (который идет c дросселя при DC-DC) на +Питания - c этого входа всё равно работает LDO, а DC-DC видимо для экономии...
Выпаивать дроссель не стал, а просто замкнул выход DC-DC с дросселя к питанию 3.3В и всё ok.
 

pvvx

Активный участник сообщества
@cool2000 - перепроверил SDK на вариант сбоя соединения на PHY6222 без QC. Имеющийся PHY6222, самый сбойный, на Keil варианте работает без сбоев. Чего-то не хватает в GCC SDK.
 

pvvx

Активный участник сообщества
Проблема со стабильной работой соединения решена. Дополнительно добавлена следящая коррекция хода 32KRC генератора...
 

cool2000

Member
@cool2000 - перепроверил SDK на вариант сбоя соединения на PHY6222 без QC. Имеющийся PHY6222, самый сбойный, на Keil варианте работает без сбоев. Чего-то не хватает в GCC SDK.
Как раз сейчас ковыряюсь с восстановлением исходного кода SDK 3.1.3. %80 прошёл по минимуму для BLE Peripheral.
Идёт медленно, из-за множества мелких изменений и в библиотеках GCC нет части функции, которые есть в Keil.
 

pvvx

Активный участник сообщества
Как раз сейчас ковыряюсь с восстановлением исходного кода SDK 3.1.3. %80 прошёл по минимуму для BLE Peripheral.
Идёт медленно, из-за множества мелких изменений и в библиотеках GCC нет части функции, которые есть в Keil.
Там, в SDK 3.1.3, именно 80% лишнего кода :)
Я поглядел его вскользь в IDA. Взял от туда только направление - там корректируют RTC каждый раз. И написал свой вариант. Больше ничего нужного в SDK 3.1.3 вроде нет.
 

pvvx

Активный участник сообщества
Нашел ещё один тип - THB3.
1708728288939.png
Заказал... :) Будет седьмым в клоне PHY6222...

Кто видел устройства с модулем Tuya ZPU (PHY6225) ?
 

pvvx

Активный участник сообщества
Да, было бы интересно посмотреть. Маловат объем ОЗУ для Zigbee, всего 64К, флеш-память 1М. Чувствительность -100дБ, и даже есть сертификация FCC.
64к у большинства Zigbee, включая популярные координаторы. У старых вообще меньше...
У PHY6226 это наверно PHY6225 в другом корпусе.
Памяти у большинства PHY62xx = 64k + SRAM_BB 4KB + SRAM_cache 8KB.

---

Есть ещё бяда - на последнем TH05F у меня похоже что-то неладное с RF частотой. Путается, но не разрывает связь - по графику видны дубли tx-rx и загрузка OTA не 46..48 секунд, как у других, а 90+ секунд.
Они все эти PHY6222(QC) кривые в зависимости от партии, или PHY = куча брака?

RC генератор болтается, особенно на чипах с маркировкой без "QC". А болтается по причине болтанки напряжения где-то при переходах в/из sleep...
У QC что-то видимо стабильнее держится.
Может отключается какой-то лишний ключ питания, связанный с RC генератором? Он и от наводок работать будет, но нестабильно...
 

pvvx

Активный участник сообщества
Я пробовал и ноги, которые имеют связь с ADC, сажать pulldown, включать делители на их входах... Вдуг цедят в потроха(?). Что-то меняется но не особо...
Вешать резистор на выход DC-DC я пробовал изначально...
Но т.к. слишком много сразу менял для каждого экспа, может чего и пропустил. Времени дергать по одному параметру/условию нет.
И неясно, с чего вдрух потребление у чипа плюс всё остальное менее 2 мкА, к примеру у TH05F c отключенным LCD и при 3.3В, когда в даташитах от PHY пишется о большем токе?
 

pvvx

Активный участник сообщества
В SDK есть включение Zigbee модуляции и для PHY6222. И тайминги в Zigbee не настолько критичны, как в BLE. Zigbee же тормоз ещё тот.... Батареек разработчикам Zigbee не жалко, а так-же объем кода раз в десять нужен больше для простейшего устройства Zigbee 3.0. В итоге жрет это Zigbee в дцать раз больше, если сравнивать с BLE при одинаковом объеме передачи данных. Но юзеры всё так-же ведутся на рекламу, что Zigbee - это энергоэффективный протокол. Наверно сравнивали с WiFi :)
 

pvvx

Активный участник сообщества
Особо обманутые Zigbee всегда в пример приводят датчик температуры и влажности Xiaomi Aqara. :love:
По этому делать Zigbee на PHY - это когда совсем уже нечего будет делать, после BLE PAwR на Coded PHY cо стандартным (теперь с BT5.4) шифрованием BLE рекламы :)
 

cool2000

Member
И неясно, с чего вдрух потребление у чипа плюс всё остальное менее 2 мкА, к примеру у TH05F c отключенным LCD и при 3.3В, когда в даташитах от PHY пишется о большем токе?
В предыдущих ревизиях datasheet у них было указано 3.5мкА. Потом написали 13.5, наверное из-за кривого SDK?😉

В описании Tuya ZPU ещё интересная фраза есть:
This device is intended only for OEM integrators
 

pvvx

Активный участник сообщества
Во всех прошивках от Tuya в Flash по адресу 0x11001000 записана только калибровка ADC.
Но она не сильно помогает. Различия замеров ADC при наличии и со стертым значением калибровки не столь глобально (для замеров батареи).
 

pvvx

Активный участник сообщества
А насколько сильно результаты измерений отличаются от реальных значений напряжения?
Это сложно сказать. При измерении напряжение батареи проседает и отличается от напряжения в sleep.
Любой источник имеет внутреннее сопротивление...
1708793085242.png
Это при 10 Ом.

И если читать документацию, то на разных входах ADC разные коэффициенты.
И принимается не 32 замера для усреднения, а 30. B итоге кривой множитель.
Значение для P11 я подбирал сам - среднее по больнице. Для другого вывода порта тоже... :)
И в одном случае вывод подключен к +Vbat через резистор 0, а у других я делаю вывод в порт "1" + pullup - измеряется не батарейка, а GPIO выход
 

pvvx

Активный участник сообщества
Та с батарейками вообще всё сложно. Если CR2032 измерять без нагрузки - то там физико-химический эквивалент напряжения. При определенной температуре, пока батарея ещё работает, всегда около 3В.
А при нагрузке - напряжение падает. Подсевшая CR2032 - это за 100..200 Ом внутреннего сопротивления. При токе 3 мА - падение 0.3В, при TX это уже за 6мА -> 2.4В на батарее.
По этому если измерять через делитель с кондером, как это сделали в Tuya, то там всегда будет +3В, т.к. кондер зарядится во время sleep :)
 

cool2000

Member
Итак: добил patch.c и patch_ext_adv.c (отсутствовавший в SDK для сборки GCC). rf_phy_driver.o а также libphy6222_host.a и libphy6222_sec_boot.a пока взял из SDK 3.1.3. Проект собрался. Старался делать близко к тексту исходного patch.c, но надо бы ещё раз пройтись по всем функциям.
Найдётся у вас время и желание посмотреть?
 
Сверху Снизу