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

aloika

Active member
В инструкции числится, что сразу 3 канала (одновременно):
Да, в даташите так написано.

А в SDK developer handbook то, что привел уже, и вот еще в другом месте:

6.1.1 AMIC and Low Power Detect
Refer to the introduction of “low-power detection” in this document, when Amic Audio and low-power
detection use the ADC module, ADC must be switched.
Similarly, if the two tasks of Amic Audio and other ADC task, ADC need to be switched. If the three tasks of
Amic Audio, low-power detect and other ADC task, ADC need to be switched.
825x/827x Amic needs to be set when the Audio task is on so that low power detection and Amic to ADC
module switching can be used.

Видимо, несмотря на заявленные в даташите возможности, они одновременную работу не гарантируют... или она глючит... или еще что. Но у меня работает более-менее.
 

pvvx

Активный участник сообщества
Да, в даташите так написано.

А в SDK developer handbook то, что привел уже, и вот еще в другом месте:

6.1.1 AMIC and Low Power Detect
Refer to the introduction of “low-power detection” in this document, when Amic Audio and low-power
detection use the ADC module, ADC must be switched.
Similarly, if the two tasks of Amic Audio and other ADC task, ADC need to be switched. If the three tasks of
Amic Audio, low-power detect and other ADC task, ADC need to be switched.
825x/827x Amic needs to be set when the Audio task is on so that low power detection and Amic to ADC
module switching can be used.

Видимо, несмотря на заявленные в даташите возможности, они одновременную работу не гарантируют... или она глючит... или еще что. Но у меня работает более-менее.
Там, в вашей цитате, разговор исключительно о low-power и относится только к SDK.
А вы же и я сами инициализацию ADC делаем, а не из примера к SDK.
 

aloika

Active member
Там, в вашей цитате, разговор исключительно о low-power и относится только к SDK.
А вы же и я сами инициализацию ADC делаем, а не из примера к SDK.
Да, там про low-power detection, которая по сути есть периодическое измерение напряжения на какой-нибудь выбранной ноге. Если напряжение меньше порога, значит, села батарейка и что-то надо делать - уходить в сон или еще что в зависимости от задачи. Измеряют напряжение с помощью ADC каналом misc. И вот они пишут - либо "музыка", т.е. каналы left и right, либо low power detection (канал misc), по очереди. А вместе нельзя почему-то. Хотя в даташите - можно, и по факту тоже, как оказалось, можно.

Почему они написали, что нельзя - непонятно. Видать, какие-то причины были у них.

(или логика такая - мы пример не написали, значит - нельзя :)
 

Slacky

Member
А вот можно я позадаю вопросы применительно к своему устройству? :))

Вот допустим хочу сделать счетчик воды. Но. В современых счетчиках используются две схемы - просто геркон (замкнут, разомкнут) и схема Namur.

Вот если забить на Namur, то все вроде гладко - выход из сна по замыканию на массу. Опять же, можно прерывания прикрутить.

А вот Namur сразу за собой тянет adc, а как по ним просыпаться я так и не понял.

А может ну его, этот Namur :))
 

pvvx

Активный участник сообщества
А вот можно я позадаю вопросы применительно к своему устройству? :))

Вот допустим хочу сделать счетчик воды. Но. В современых счетчиках используются две схемы - просто геркон (замкнут, разомкнут) и схема Namur.

Вот если забить на Namur, то все вроде гладко - выход из сна по замыканию на массу. Опять же, можно прерывания прикрутить.

А вот Namur сразу за собой тянет adc, а как по ним просыпаться я так и не понял.

А может ну его, этот Namur :))
Счетчик воды уже есть в MiThermometer. По прерываниям от GPIO и с отображением в Home Assistant.

Когда включен ADC имеем большое потребление. В чипе есть ещё "low power comparator"... Но он тоже жрет и смысла их использовать в режимах экономии питания нет. Это не даст хороших нормальных результатов.

Для возможности связи с устройством в BLE чип должен передавать рекламные пакеты с периодом до 10 сек как максимум. Для связи со всеми системами желателен период до 2.5 сек и менее. Т.е. чип уже просыпается каждый этот период и в эти моменты измеряйте что хотите - так общее потребление будет меньше.

"схема Namur"
1656378778892.png
От такого "контакта" можно полностью запитать чип, без всяких батареек, даже deep-sleep не потребуется, только suspend :) В питании достаточно LDO и кондера на сотни мкФ.
 

pvvx

Активный участник сообщества
В современых счетчиках используются две схемы - просто геркон (замкнут, разомкнут) и схема Namur.
Чип-питание при:
int32k+deep+pad: 0.41uA
int32k+deep+tmr: 0.92uA
int32k+deepret16k+pad: 1.41uA
int32k+deepret16k+tmr: 1.87uA

А резистор в 1МОм и замкнутый геркон – это 3.3 uA!
 

Slacky

Member
Для возможности связи с устройством в BLE чип должен передавать рекламные пакеты с периодом до 10 сек как максимум. Для связи со всеми системами желателен период до 2.5 сек и менее. Т.е. чип уже просыпается каждый этот период и в эти моменты измеряйте что хотите - так общее потребление будет меньше.
Ну я сперва так логику и видел. Но у Вас в ATC_MiThermometer при кончающейся батарейке модуль уходит спать на 2 минуты (если правильно в коде разобрался). А две минуты это уже долго ...
 

Slacky

Member
Чип-питание при:
int32k+deep+pad: 0.41uA
int32k+deep+tmr: 0.92uA
int32k+deepret16k+pad: 1.41uA
int32k+deepret16k+tmr: 1.87uA

А резистор в 1МОм и замкнутый геркон – это 3.3 uA!
А как без подтяжки? Но ведь время замыкания незначительное, в основном геркон разомкнут ...
 

pvvx

Активный участник сообщества
Ну я сперва так логику и видел. Но у Вас в ATC_MiThermometer при кончающейся батарейке модуль уходит спать на 2 минуты (если правильно в коде разобрался). А две минуты это уже долго ...
Он уходит спать когда батарейка CR2032 уже всё - если при измерении там уже 2В, то нагрузку от включения передатчика не выдержит и будет колбасить - чтобы чип не дрыгался в вечном включении/выключении и не более.
Так-же опасно что-то писать в Flash при таком напряжении на батарее...
А как без подтяжки? Но ведь время замыкания незначительное, в основном геркон разомкнут ...
50% времени замкнут или разомкнут :)
А ещё всё это в сырости...
 

pvvx

Активный участник сообщества
Да и если питание от солнечных батарей с суперкондером - то чип и уходит спать пока солнышко-зарадка не появится, а не разряжает до предела суперкондер...
 

nikolz

Well-known member
О борьбе за экономию батарейки...
---------------
Добавлю свою ложку дегтя в вашу бочку меда.
---------------
Например, устройства для дачи, сельхозугодий и т д
Устройства сезонные. Вопрос надо, чтобы батарейки хватала на 10 лет? или хотябы на 5?
Очевидно - нафига?
-------------------
Вопрос другой - а надо чтобы это устройство было вумное и могло автономно управлять поливалками форточками и пр.
Очевидно - еще бы!
--------------------
Поэтому прикольно читать на форуме годами обсуждаемое достоинство чипов которые потребляют не 1 мА а 0.1 мА не 0.1 а 0.01
А спрашивается, что же кроме замера температуры и влажности эти чипы умеют - а не фига, они тупые как 10 лет назад , как год назад.
-----------------
Вам не надоело обсуждать батарейку и температуру?
 

Slacky

Member
Он уходит спать когда батарейка CR2032 уже всё - если при измерении там уже 2В, то нагрузку от включения передатчика не выдержит и будет колбасить - чтобы чип не дрыгался в вечном включении/выключении и не более.
Так-же опасно что-то писать в Flash при таком напряжении на батарее...
50% времени замкнут или разомкнут :)
А ещё всё это в сырости...
Да, спутил. Я проверял, на счетчике замыкание проиходит где-то на цифре 2, а размыкание на цифре 6. Никто не гарантирует, что между этими цифрами воду не выключат и грекон на длительное время останется замкнут.

Но я подглядел, как у Вас. Там Вы просто перед измерением поключаетет подтяжку, потом выключаете. Но есть нюанс - у меня система становится нестабильной и фиксирует нажатие, если пальцем к пину прикоснуться, т.е. начинает ловить помехи ...
 

nikolz

Well-known member
Да, спутил. Я проверял, на счетчике замыкание проиходит где-то на цифре 2, а размыкание на цифре 6. Никто не гарантирует, что между этими цифрами воду не выключат и грекон на длительное время останется замкнут.

Но я подглядел, как у Вас. Там Вы просто перед измерением поключаетет подтяжку, потом выключаете. Но есть нюанс - у меня система становится нестабильной и фиксирует нажатие, если пальцем к пину прикоснуться, т.е. начинает ловить помехи ...
счетчик воды надо делать с видео камерой. Один раз в месяц переслали цифры с фото и все.
 

pecherskih

New member
Коллеги, добрый день. Я перехожу с nrf52 на TLSR8258. В связи с этим появились определенные трудности. Я установил среду TelinkSDKv1.3.1 и загрузил в нее SDK Bluetooth LE Single Connection. Разобрался как компилировать примеры и загружать их в процессоры при помощи программатора Telink BDT. С этим все ОК. Но я плохо разбираюсь в Eclips-е. При попытке из среды прошить процессоры в режиме программатора или Debug, у меня вываливается ошибка.
err1.png
 

pecherskih

New member
При этом в свойствах проекта так же присутствует ошибка. При этом папка C:\TelinkSDK\opt\tc32\include присутствует, но она пустая. У меня вопрос. Это можно как то исправить, что бы программировать, и если это возможно, ещё и отлаживаться в Eclips-е?err2.png
 

Slacky

Member
При этом в свойствах проекта так же присутствует ошибка. При этом папка C:\TelinkSDK\opt\tc32\include присутствует, но она пустая. У меня вопрос. Это можно как то исправить, что бы программировать, и если это возможно, ещё и отлаживаться в Eclips-е?
Я вообще telink-ide не использую. Хватает обычного Эклипса и cross compiller. Нужно только некоторые переменные описать и makefiile прикрутить.

А по теме - может такой путь для хедеров указать?

telink-eclipse.jpg
 

pecherskih

New member
Я вообще telink-ide не использую. Хватает обычного Эклипса и cross compiller. Нужно только некоторые переменные описать и makefiile прикрутить.

А по теме - может такой путь для хедеров указать?

Посмотреть вложение 12159
Увы. В моем Эклипсе пути прописываются только там, где я показывал. В другом месте нет такого пункта. Я не силен в Эклипсе, но понимаю так что его каждый под себя настраивает. Китайцы это и сделали, но видать что то не докрутили. Пробовал на другом компе с 32 и 64 битным Windows, всё бес толку.err3.png
 

pvvx

Активный участник сообщества
Но я подглядел, как у Вас. Там Вы просто перед измерением поключаетет подтяжку, потом выключаете. Но есть нюанс - у меня система становится нестабильной и фиксирует нажатие, если пальцем к пину прикоснуться, т.е. начинает ловить помехи ...
Это часть относится к варианту по умолчанию - это просто датчик контакта который неспешно передается каждый рекламный пакет. Это чтобы кому оно нафиг не сдалось (не собирается что-то подключать к термометру) лишний раз не кушало батарейку.
В броузере, в HTML, конфигурации данный пин переключается ещё на два типа:
1. Датчик открытия (геркон). При изменении сразу, не более 2 мс до передачи, передается пакет доп. BLE рекламы - несколько штук, чтобы точно долетело. А так-же через выставленное время передается подтверждение состояния.
2. Счетчик (геркон). Через выставленное время передается состояние счетчика. Так-же состояние счетчика сразу передается при переходе через счета через кратность 65535, чтобы приемник не потерял переполнение...
И в этих случаях к GPIO врубается подтяжка и события изменения отрабатываются по прерываниям, с пробуждением чипа.
 

pecherskih

New member
Я вообще telink-ide не использую. Хватает обычного Эклипса и cross compiller. Нужно только некоторые переменные описать и makefiile прикрутить.

А по теме - может такой путь для хедеров указать?

Посмотреть вложение 12159
Пытался прописать путь C:\TelinkSDK\opt\tc32\lib\gcc\tc32-elf\4.5.1-tc32-1.3\include в своем проекте, но после указания пути, кнопочка ОК остается серой и не новый путь не сохраняется
 
Сверху Снизу