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

BLE модули TB-04/TB-03F (TLSR8253F512)

volaltd

Member
У вас тут был вопрос - есть или нет кондера от выхода?
Вам встречный вопрос - у вас есть наипростейший тестер, чтобы ткнуть в выходной пин и измерить? :)
Дык работать или ? Жалко разломать один модуль? Что это за "работа" такая?
У меня был вопрос что у ESP8266 есть разделительная емкость на 5.6пф между PCB-антенной и микрухой, далее TB03 мне не влазил в пластиковый корпус и была мысля сделать свою платку на базе TB04, но т.к. это всего лишь для домашнего применения, то глубоко лезти чтобы обжечься не хотелось. Опять же моих знаний не сильно хватает чтобы понять может для PCB емкость нужна для согласования сопротивления, а для выносной SMA-антенный будет как на схеме в даташите без нее. Пытался спросить у гуру, но в итоге как вы давно в курсе, получилось на проводах, эзернете и грабли достанутся GermanIvanov :)
Так в том и дело что не работа, а игрушки :)
 
Штырь тоже имеет направленность.
Насколько помню свое босоногое радиолюбительское детство, у штыря направленность выглядит как полусфера с "торнадо" по центру верхней части. :)
Ну это если не учитывать нарастающую с коэфф. усиления антенны "бубликообразность".
У меня объекты к счастью не летают, так что данными нюансами направленности штыря можно пренебречь... или не?

нужен ли конденсатор для TB04 между антеной и пином ) В доке ниче нету
у вас есть наипростейший тестер, чтобы ткнуть в выходной пин и измерить?
На мой непросвещенный взгляд проще сначала его впаять, и если будет хуже (пофигу) выпаять.
 

volaltd

Member
На мой непросвещенный взгляд проще сначала его впаять, и если будет хуже (пофигу) выпаять.
Этот метод работает до момента, когда у вас единственный случай "метода тыка", либо знаете способ достоверно измерить влияние, а с увеличением количества энтропии такие запаять-выпаять конкретно выматывают. Недавно запускал OpenWRT на HLK-7621 с MT7612E в качестве WiFi адаптера, убитая неделя экспериментов показала что начиная с 19.07.09 что-то сломали так, что это не антенна, не еепром с параметрами, не винда с выделением одинакового IP проводному/беспроводному интерфейсу, а глюки где-то в кернеле в плане бриджевания интерфейсов теряет пакеты через пару сек после установления связи.
 

volaltd

Member
Кстати судя по фотке в начале треда
кондер не нужен. В правом верхнем углу изображена цепочка кондеров и катушек очень похожая на ту, что описана в даташите.
Вот уже даже по этой фотке сложно понять это так задумано чтобы кондер под 45гр монтировался или это он мимо контактной площадки получился :) Отметил красным...

TB-04-ccc.jpg

А потом давайте еще вспомним что вроде как антенну нужно бы согласовывать с приемником-передатчиком, отсюда для PCB вероятно нужно одно, а для выносной с SMA - другое :)
В общем мне тоже интересно к чему придете в итоге и как долго нужно будет помучатся.
 

pvvx

Активный участник сообщества
Вот уже даже по этой фотке сложно понять это так задумано чтобы кондер под 45гр монтировался или это он мимо контактной площадки получился :) Отметил красным...

Посмотреть вложение 11962
Это он был сдут феном при снятии крышки.
А при подъеме крышки был сдвинут и кварц.
Это всё безразлично - я обратно паять корпус не собирался, а модуль после изучения назначался в помойку.
 

pvvx

Активный участник сообщества
Прежде чем использовать какой чип необходимо исследовать на сколько он стабилен.
Один из первых тестов - подконтрольно с током поднять в полтора раза напряжение питания и прочие - плавно поднимать питание с нуля до макс и обратно.
Ни один из ESP чипов первого теста не проходит.
У TLSR825x при напряжении более 3.6В, указанных как максимальные, уходит частота передачи и начинает нелинейно возрастать ток. 5В держит безгранично, но работать RF не может (уход частоты и возможно чего ещё).
Графики не сохранились, но недавно сделал ещё скорый тест по запросу, т.к. уже известно что чипу пофигу:
1648933505003.png
 

pvvx

Активный участник сообщества
Выше график от теста во время соединения и передачи информации. Всё работало, но связь поганая после 3.6 В - кучи перезапросов...
ADC при этом показывает правильное напряжение :)
 
У TLSR825x при напряжении более 3.6В, указанных как максимальные, уходит частота передачи и начинает нелинейно возрастать ток. 5В держит безгранично, но работать RF не может
То есть, по крупному счету, контроллер питания чипу не нужен? Питание можно паять напрямую к LiOn акку, просто во время зарядки девайс работать не будет? Я сейчас примерно так и делаю, только на всякий случай подаю питание через диод (второй диод шунтирую сьемной перемычкой, типа если батарейка совсем дохлая - снимаю)
IMG_20220403_072347.jpg
Периодически в голове крутится мысль, а не поставить ли вместо перемычки полевой ключ, который по команде от чипа сможет или открывать или закрывать эту "перемычку".
Ну, в смысле, чип померил батарейку и увидел что вольтаж упал ниже 3 вольт. Чип выставляет еденичку на управляющей ноге полевика, тот открывается и у чипа питание опять выше 3.3.
 

volaltd

Member
Периодически в голове крутится мысль, а не поставить ли вместо перемычки полевой ключ, который по команде от чипа сможет или открывать или закрывать эту "перемычку".
Ну, в смысле, чип померил батарейку и увидел что вольтаж упал ниже 3 вольт. Чип выставляет еденичку на управляющей ноге полевика, тот открывается и у чипа питание опять выше 3.3.
А чем вам дешёвый low-drop XC6206P332 с утечкой 1-3мка не подходит?
 

volaltd

Member
В основном тем, что я забыл о его существовании. :) Также определенную роль играет то, что они приедут с али только через месяц.
С али есть смысл везти только если сразу нужно 20шт, а так можно с почти любой платы датчика температуры-влажности на 5в выпаять. Или у вас задача изучить возможные сбои TLSR в случае тотального краха мирового полупроводникового производства? :)
 
С али есть смысл везти только если сразу нужно 20шт, а так можно с почти любой платы датчика температуры-влажности на 5в выпаять. Или у вас задача изучить возможные сбои TLSR в случае тотального краха мирового полупроводникового производства? :)
Датчики тоже надо месяц с али ждать :) Мне как минимум 5 шт надо, 4 "радара" и одна метка.
Посмотрел даташит, у этого LDO есть небольшой недостаток по сравнению с двумя диодами. min V in у нее 1.8 вольт , и значит она тянет за собой в схему плату защиты аккумулятора.
В окончательной конструкции 4056 понятно дело, так и так нужна, но в моем варианте она пока лишняя.
 

volaltd

Member
Даташит на серию, у которой выходные напряжения с шагом 0.1в или по вашему линейник с полевиком как степ-ап умеет... Опять же TLSR через диод без защиты аккум не уложит? :)) По мне так возможные грабли в виде плавающих параметров сока из-за плавания питания не стоят колхоза на диодах и полевике, а потраченное время на эту шишку вполне может сравнятся с ожиданием чипов из чипдипа )
 
Опять же TLSR через диод без защиты аккум не уложит?
Судя по вышеприведенному графику, TLSR отрубится при 2.4 вольта, при этом на аккуме, до диода, будет около 3 вольт.
Справедливости ради отмечу, что никто не мешает TLSR софтово уходить в шатдаун при проседании батарейки ниже заданного значения.
 

volaltd

Member
Ога, оно ресет подожмет чтобы ядро код не выполняло, но с чего вы решили что те же микроамперы при этом не будут потребляться? )
 
Вопрос тут возник по поводу проекта AdScanerTrg . Никак не могу найти место в коде где он определяет какие устройства должны находится при сканировании, а какие нет.
Помимо термометра, у меня дома есть как минимум три BLE устройства. Браслет и двое часов MiFit. Они видны в списке когда я прошиваю устройства через web-ota, но не отображаются среди устройств найденных AdScanerTrg. При этом он иногда находит соседский телевизор самсунг.
sshot-15.jpg
Что нужно поменять в коде чтобы выводить в этом списке все обнаруженные устройства, а не только термометры?

ps: Явной фильтрации устройств я в прошивке не нашел, грешу на изначальные настройки adv сканирования где то тут:
C:
void start_adv_scanning(void) {
    //scan setting
    blc_ll_initScanning_module(mac_public);
    //bluetooth low energy(LE) event
    blc_hci_le_setEventMask_cmd(HCI_LE_EVT_MASK_ADVERTISING_REPORT);
    blc_hci_registerControllerEventHandler(scanning_event_callback); //controller hci event to host all processed in this func
    //set scan parameter and scan enable
    blc_ll_setScanParameter(SCAN_TYPE_PASSIVE, SCAN_INTERVAL_10MS, SCAN_INTERVAL_10MS, //SCAN_INTERVAL_100MS, SCAN_INTERVAL_100MS,
                              OWN_ADDRESS_PUBLIC, SCAN_FP_ALLOW_ADV_ANY);
    blc_ll_setScanEnable(BLC_SCAN_ENABLE, DUP_FILTER_DISABLE);

    blc_ll_addScanningInAdvState();  //add scan in adv state
    blc_ll_addScanningInConnSlaveRole();  //add scan in conn slave role
}
Второй вопрос: Вычистил scan calback до вот такого состояния

C:
//////////////////////////////////////////////////////////
// scan event call back
//////////////////////////////////////////////////////////
_attribute_ram_code_
__attribute__((optimize("-Os")))
int scanning_event_callback(u32 h, u8 *p, int n) {
    if (h & HCI_FLAG_EVENT_BT_STD) { // ble controller hci event
        if ((h & 0xff) == HCI_EVT_LE_META) {
            //----- hci le event: le adv report event -----
            if (p[0] == HCI_SUB_EVT_LE_ADVERTISING_REPORT) { // ADV packet
                //after controller is set to scan state, it will report all the adv packet it received by this event
                event_adv_report_t *pa = (event_adv_report_t *) p;
                u32 adlen = pa->len;
                u8 rssi = pa->data[adlen];
                if (adlen /* && adlen < 32*/ && rssi != 0) { // rssi != 0
                    u32 i = 0;
                    while(adlen) {
                        pad_uuid16_t pd = (pad_uuid16_t) &pa->data[i];
                        u32 len = pd->size + 1;
                        if(len <= adlen) {
                            if(len >= sizeof(ad_uuid16_t) && pd->type == GAP_ADTYPE_SERVICE_DATA_UUID_16BIT) {
#if (ADV_SERVICE_ENABLE)
                                advDataValue++;
                                if (advDataCCC // Notify on?
                                        && (blc_ll_getCurrentState() & BLS_LINK_STATE_CONN)) {
                                    u8 *p = my_fifo_wptr(&ad_fifo);
                                    if(p) {
                                        p[0] = len + 1 + 6;
                                        p[1] = rssi;
                                        memcpy(p + 2, pa->mac, 6);
                                        memcpy(p + 2 + 6, pd, len);
                                        my_fifo_next(&ad_fifo);
                                    }
                                }
#endif
                            }
                        } else
                            break;
                        adlen -= len;
                        i += len;
                    }
                }
            }
        }
    }
    return 0;
}
AdScanerTrg2.htm как выводил расширенные данные от термометра, так их и выводит. Они их сам как то распарсивает что-ли?
 

nikolz

Well-known member
долго не заходил погулять.
Думал увижу как BLE измеряет расстояние на футбольном поле.
а тут шаром покати - поле все заросло сорняками.
Очевидно тема, вернее мечтатели, сдулись.
 
Сверху Снизу