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

BLE SoC PHY6202

pvvx

Активный участник сообщества
I2C неверно инициализирован.
  • Линии: нужно 18(SDA),20(SCL), а не 12,13
  • Нет вызова pin mux (hal_gpio_fmux_set(SCL, FMUX_IIC0_SCL); hal_gpio_fmux_set(SDA, FMUX_IIC0_SDA));
  • Slave address CHT8310 0x80, а не 0x40
Это только то, что увидел навскидку.
Зачем, если то, что дано работает?
У вас наверно другой модуль, не THB2
 

pvvx

Активный участник сообщества
C:
#define I2C_SDA P18
#define I2C_SCL P20

measured_data_t measured_data;

void init_i2c(void) {
        hal_gpio_fmux_set(I2C_SCL, FMUX_IIC0_SCL);
        hal_gpio_fmux_set(I2C_SDA, FMUX_IIC0_SDA);
...
...
int read_i2c_bytes(uint8 addr, uint8 reg, uint8 * data, uint8 size) {
    int i = size;
    AP_I2C_TypeDef * pi2cdev = AP_I2C0;
    pi2cdev->IC_ENABLE = 0;
    pi2cdev->IC_TAR = addr; 
    HAL_ENTER_CRITICAL_SECTION();
    pi2cdev->IC_ENABLE = 1; 
    pi2cdev->IC_DATA_CMD = reg;
        //while(!(pi2cdev->IC_RAW_INTR_STAT & 0x10));
    while(i--)
        pi2cdev->IC_DATA_CMD = 0x100;
    HAL_EXIT_CRITICAL_SECTION();
    uint32 to = osal_sys_tick;
    i = size;
    while(i) {
        if(pi2cdev->IC_STATUS & 0x08) { // fifo not empty
  ...
void deinit_i2c(void) {
        AP_I2C_TypeDef * pi2cdev = AP_I2C0;
        pi2cdev->IC_ENABLE = 0;
        hal_clk_gate_disable(MOD_I2C0);
        hal_gpio_pin_init(I2C_SCL, IE);
        hal_gpio_pin_init(I2C_SDA, IE);
}
И скорее всего вы всё попутали...
Ослик кажет, что всё хорошо.
 

pvvx

Активный участник сообщества
@cool2000 - Адрес в I2C вообще-то 7 бит. Как он мог стать 0x80 ? :unsure:

Плюс CHT8310 можно назначить любой адрес. Но в переданном коде используется адрес по умолчанию, после полного сброса CHT8310.

У CHT8310 есть беда - он не соответствует документации или все кривые - влажность занижает ужасно, почти на 10%.
Код использует значения из PDF.
 

pvvx

Активный участник сообщества
I2C неверно инициализирован.
  • Линии: нужно 18(SDA),20(SCL), а не 12,13
Это только то, что увидел навскидку.
Вы вообще работали с каким MCU?
Файл: gpio.h
Код:
typedef enum
{
    GPIO_P00   =   0,    P0  =  GPIO_P00,
  ...
    GPIO_P18   =   12,   P18  =  GPIO_P18,   Analog_IO_5 = GPIO_P18,
    GPIO_P20   =   13,   P20  =  GPIO_P20,   Analog_IO_6 = GPIO_P20,
  ...
    GPIO_DUMMY =  0xff,
} gpio_pin_e;
Измерение батарейки, реакция на кнопку, мигания светодиода будет когда кто соизволит написать OTA для эксплорера.
В имеющемся hex OTA есть.
По результату ОТА будет кинут исходный код на guthub :)
 

cool2000

Member
Вы вообще работали с каким MCU?
Да, недосмотрел :(. В исходной прошивке используется Tuya wrapper.
gpio_pin_e tkl_gpio_to_phy6222_gpio(UINT32_T pin_id)
У CHT8310 есть беда - он не соответствует документации или все кривые - влажность занижает ужасно, почти на 10%.
Вроде было обещано другое
CHT8310 is a low voltage digital humidity and temperature sensor with ±2%RH(Typ.) accuracy for humidity and ±0.2°C(Typ.) accuracy for temperature.
Each chip is specially calibrated for temperature and humidity accuracy in factory before shipment to customers. There is no need for re-calibration anymore.
Может на заводе плохо отмыли плату?
 

pvvx

Активный участник сообщества
Кто такая "исходная прошивка"?

> Может на заводе плохо отмыли плату?

Халтура и есть халтура. Пайка ужасна и ляп на плате много - это же Tuya = устройства созданные в китайских платках, а не на нормальном производстве.
К примеру, на термометре с LCD TH05 сразу накрылся датчик... Благо их купил пачку - можно ковырять другой...
И так далее со всеми Tuya.
 

pvvx

Активный участник сообщества
Я не видел ни одного Tuya устройства, которое можно использовать. Все батарейные – жрут так, что замучаешься менять батарейки. Их сделали только для того, чтобы кто-то купил и выбросил.
“Умные розетки” с лейбой поддержки Tuya отваливаются из сети WiFi гарантированно несколько раз за неделю – логи в HA только об том и кричат. Некоторые “Умные розетки”, с ESP, ещё хуже...
Zigbee розетки лейбой поддержки Tuya, являясь роутерами, не шарят в Zigbee 3.0.
Это всё и говорит о том, что нет никакого смысла строить для них альтернативные прошивки, так как пользователи вас сожрут вопросами по причине качества и ненадежности самих устройств от Tuya. И весь негатив выльют на вас.
 

pvvx

Активный участник сообщества
И я не желаю спонсировать “Материю”, за членство в которой Tuya выплачивает хорошие бабки совместно с Apple, продвигая протокол основанный на IP во все бытовые устройства. Этот протокол не годится для устройств с малым потреблением, а создается для выплат им за сертификацию.
 

pvvx

Активный участник сообщества
@cool2000 как дела с OTA?
А то народ уже жаждет записывать "Test firmware files v01" из THB2
 

pvvx

Активный участник сообщества
Доки дополнены english версиями, прошивка BTH2 переехала и ждет ОТА от @cool2000.
Всё остальное уже работает, включая кнопки и всякие UUID (c Notify) с измерениями T, H, %BAT c информацией по версии и т.д., доступные при соединении. Пароль для OTA в прошивке "12345678".
Потребление ниже (7.9мкА) чем у Aqara lumi.weather (12.5 мкА). При этом в 20-ть раз BTH2 передает больше точек измерений за единицу времени.

Нету программы OTA от @cool2000, чтобы вставить в неё настройки. :cry:
 

cool2000

Member
Доки дополнены english версиями, прошивка BTH2 переехала и ждет ОТА от @cool2000.
Всё остальное уже работает, включая кнопки и всякие UUID (c Notify) с измерениями T, H, %BAT c информацией по версии и т.д., доступные при соединении.
C перевода java на js
Ни тем ни другим не владею, от слова совсем и нет необходимого понимания процесса...
Пароль для OTA в прошивке "12345678".
Ещё бы знать, в какое поле его вставлять
 

pvvx

Активный участник сообщества
Ещё бы знать, в какое поле его вставлять
В программе PhyOTA, еле различимыми символами, крашенными под фон окна.
Читайте китайскую грамоту к программе, которая говорит что надо выставить галочки в конфиге, в меню справа сверху... тогда вылезает 2 варианта экрана OTA. В одном из них и есть пароль...
Но какой файл прошивки нужен PhyOTA - это загадка столетия. Вариантов, что создается в SDK и прочих приложениях от PHY более 5-ти.
 

pvvx

Активный участник сообщества
Но какой файл прошивки нужен PhyOTA - это загадка столетия. Вариантов, что создается в SDK и прочих приложениях от PHY более 5-ти. И нет никакой гарантии, что эти варианты с их разметкой подходят для PhyOTA. Их ещё можно "конвертировать" в разные *.bin и кол-во комбинаций становится ....
В итоге идти надо с обратной стороны - с исходника OTA в SDK.
 
Сверху Снизу