• Система автоматизации с открытым исходным кодом на базе 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.
 
Сверху Снизу