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

BLE модули TB-04 (TLSR8251)

pvvx

Активный участник сообщества
Ai-Thinker TB-04
1604869781740.png1604869766105.png
DOCs: https://docs.ai-thinker.com/blue_tooth
https://github.com/Ai-Thinker-Open/Telink_825X_SDK
https://github.com/Ai-Thinker-Open/Telink_Mesh
https://github.com/Ai-Thinker-Open/Telink_SIG_Mesh
AiTBxxForAndroid
AiTBxxForWeChat

TB-04 module
TB-04-KIT
...
--------------------------------------
Пришли с прошивкой "AT ver 0.5"... Перепрошил для первичного теста в: Ai-Thinker BlE AT V0.7.4
"AT" как всегда не доделана, но есть все исходники на github. При настройках AT командами и прочих режимах модуль жрет 3.3 мА по 3.3В при активном BLE (не "AT+MODE=0") и немного зависит от "AT+RFPWR=0..9". После смены установок обязательно требуется перезапуск, хотя-бы самими командами AT. Большинство из настроек поданных в AT просто записываются в Flash и отрабатывают только при перезапуске.

Намерял, при:

Ble-advertising-interval 3 сек:

AT+ADVINTV=3000 ()
AT+LSLEEP=1
AT+RFPWR=4
По 3.3В средний ток 15 мкА совместно с advertising.

Deep-Sleep с активными ногами:
В "AT+SLEEP" при 3.3В выходит 500 нА (+- 20 нА, точнее замерять нет желания - надо все распаивать, промывать, сушить... ).

adv_AT_RFPWR_4.gif
Время активности при просыпании и выдачи advertising с учетом всех хвостов выше пары мкА составляет 6..6.5 мс.
Имеет три стандартных пика передатчика с амплитудой до 15 мА при "AT+RFPWR=4" и более 25 мА при "AT+RFPWR=9".
На среднее потребление это сказывается мало, т.к. пики короткие - менее 310 мкс.

Т.е. примерный средний ток во времени активности для выдачи ADV: 6 мс 5.3 мА по 3.3В.
Ток в sleep - всегда менее 15 мкА, в deep-sleep - 500 нА.
 

pvvx

Активный участник сообщества
Слепил и для TLSR825x -TlsrTools8251 Alternative programmer for TLSR8251
Программатор через SWS на BluePill (STM32F103C8T6), всё аналогично TlsrTools для TLSR826x
1604962919242.png
 

pvvx

Активный участник сообщества
TlsrComProg825x
TLSR825x programmator via COM port
(!) Limitations: Only TLSR825x Chip Used!
Telink SWIRE simulation on a COM port + COM Flasher.
Flash programming for TLSR825x chips using only a COM port. (modules TB-02, TB-04, ...)

SCH
 

pvvx

Активный участник сообщества

pvvx

Активный участник сообщества
Производитель модулей ai-thinker говорит так:
1605087938446.png
По эскизу в PDF от ai-thinker на модули видно, что установлен QFN32.
Telink глаголит:
1605088369062.png
А реальность для галочки будет установлена когда вскрою какой из пачки TB-04 :)
 

pvvx

Активный участник сообщества
Дошли руки - сдул крышку у одного TB-04:
TB-04_xx.jpg
 

pvvx

Активный участник сообщества
С данными чипами есть странность:
TB-04-ccc.jpg
Согласно даташиту DS_TLSR8253-E_Datasheet for Telink BLE SoC TLSR8253.pdf чип имеет 48 килобайт SRAM:
1605319857800.png1605319864882.png
Но! Работают все 64 килобайта! : 0x840000..0x850000. Запись в них и последующее чтение через время тестового файла-патерна = OK.
Что-то мудрят китайцы.... похоже это кристалл от TLSR8258F512....
 

nikolz

Well-known member
С данными чипами есть странность:
Посмотреть вложение 10113
Согласно даташиту DS_TLSR8253-E_Datasheet for Telink BLE SoC TLSR8253.pdf чип имеет 48 килобайт SRAM:
Посмотреть вложение 10114Посмотреть вложение 10115
Но! Работают все 64 килобайта! : 0x840000..0x850000. Запись в них и последующее чтение через время тестового файла-патерна = OK.
Что-то мудрят китайцы.... похоже это кристалл от TLSR8258F512....
возможно, что 8253 это 8258, партии которых отбракованы при тестировании временных параметров памяти.
 

pvvx

Активный участник сообщества
возможно, что 8253 это 8258, партии которых отбракованы при тестировании временных параметров памяти.
По ходу вы опять не угадали :)

Глядим что дают Ai-Thinker:
https://github.com/Ai-Thinker-Open/Telink_825X_SDK
При сборке примеров используется boot коды для 8258:
ifeq ($(RETENTION_RAM_SIZE), 32KB)
BOOT_FLAG := -DMCU_STARTUP_8258_RET_32K
else
BOOT_FLAG := -DMCU_STARTUP_8258_RET_16K

endif
Следовательно код собирается с Telink_825X_SDK\components\boot\8258\cstartup_8258_RET_16K.S или cstartup_8258_RET_32K.S
В них указатель стека назначается на верх 64 килобайт SRAM:
...
tloadr r0, DAT0 + 4
tmcsr r0
tloadr r0, DAT0 + 12
tmov r13, r0
...
DAT0:
.word 0x12 @IRQ @0
.word 0x13 @SVC @4
.word (irq_stk + IRQ_STK_SIZE)
.word (0x850000) @12 stack end ( 64 килобайта)

...

Стек более в коде не переназначается :p

Аналогично и тут, atc1441 грузит это для TLSR8251, у которого по заявлению Telink всего 32 килобайта памяти(!):
и у него всё работает! :)
 

pvvx

Активный участник сообщества
Ещё у Telink есть такая фича для TLSR8251:
1605371541745.png
Но TLSR8251xxx не поставляется в UQFN (Нет в Ordering information).
Видимо разбивка маркировки краской на корпусе чипа имеет чисто маркетинговый ход, а кристалл у всех 8258 (?)
 

pvvx

Активный участник сообщества
На это указывает и то обстоятельство, что я пока не нашел в коде общих кодов либов для 825x никаких if в зависимости от ID чипа (регистр 0x7e), что для другой серии было на каждом шагу...
reg_prod_id REG_ADDR16(0x7e)
Есть различия только по reg_revision_id(?) REG_ADDR8(0x7d) (сравнение != 0x01 -> изменить напругу питания в потрохах).

Ну а смысл в том, что в SDK от Ai-Thinker меняйте в Telink_825X_SDK\make\boot.mk BOOT_FLAG на правильное значение. Вдрух Telink слепит новую партию чипов и размер SRAM будет по документации...
 

nikolz

Well-known member
На это указывает и то обстоятельство, что я пока не нашел в коде общих кодов либов для 825x никаких if в зависимости от ID чипа (регистр 0x7e), что для другой серии было на каждом шагу...
reg_prod_id REG_ADDR16(0x7e)
Есть различия только по reg_revision_id(?) REG_ADDR8(0x7d) (сравнение != 0x01 -> изменить напругу питания в потрохах).

Ну а смысл в том, что в SDK от Ai-Thinker меняйте в Telink_825X_SDK\make\boot.mk BOOT_FLAG на правильное значение. Вдрух Telink слепит новую партию чипов и размер SRAM будет по документации...
Вы не поняли, что я написал.
Я говорил о тестировании партии чипов в производстве.
Сделали партию . взяли выборку проверили диапазон параметров. Например время стирания для всей памяти в 64 КБ оказалось выше. тогда считаем память нормальная по параметрам 32 и маркируем всю партию как 51 если нормально 48 то 53, вместо 58.
так делается при отладке технологии. После внесения изменений в тех процесс параметры чипов становятся лучше и чипы 51 вообще исчезают, как исчезли 50, затем исчезают 53 и остаются 58 .
т е все они делаются по единой технологии и на одних и тех же масках, но по мере отладки худших становится все меньше и меньше.
 

pvvx

Активный участник сообщества
Перепрошил для первичного теста в: Ai-Thinker BlE AT V0.7.4
....
Время активности при просыпании и выдачи advertising с учетом всех хвостов выше пары мкА составляет 6..6.5 мс.
При коротких периодах ADV SDK использует другой режим sleep - не deep-sleep, а обычный sleep без перезагрузки.
В нем потребление во время сна больше, но период активности сокращается на общую стартовую инициализацию и составляет уже ~3.6 мс:
1605376268815.png
 

pvvx

Активный участник сообщества
Вы не поняли, что я написал.
Я говорил о тестировании партии чипов в производстве.
Сделали партию . взяли выборку проверили диапазон параметров. Например время стирания для всей памяти в 64 КБ оказалось выше. тогда считаем память нормальная по параметрам 32 и маркируем всю партию как 51 если нормально 48 то 53, вместо 58.
так делается при отладке технологии. После внесения изменений в тех процесс параметры чипов становятся лучше и чипы 51 вообще исчезают, как исчезли 50, затем исчезают 53 и остаются 58 .
т е все они делаются по единой технологии и на одних и тех же масках, но по мере отладки худших становится все меньше и меньше.
Какоё ещё время стирания у SRAM?
SRAM либо есть, либо нет и использует большую часть кристалла...
Отбирать брак только в верхних сегментах никто не будет.
 

pvvx

Активный участник сообщества
И самый главный вопрос - почему тогда её не подавили efuse - ведь оно ЖРЕТ(!), даже если не используется, а в чипе есть ключи по питанию сегментов!
Если не отключена - лишняя жручка в sleep и чипы должны отличаться по потреблению в sleep (не deep-sleep) в документации!
 

pvvx

Активный участник сообщества
Дока BLE_SDK_Developer_Handbook (Kite BLE SDK 3.4.0) на китайском к https://github.com/Ai-Thinker-Open/Telink_825X_SDK
есть и тут:
 
Сверху Снизу