Самый маленький BLE модуль E104-BT05 на TLSR8266

pvvx

Активный участник сообщества
На самом модуле ET104-BT05 есть какие-то надписи, но сдувать его пока лень.
E104-BT05-TB.jpg
 

pvvx

Активный участник сообщества
AT команды на китайском и англ., но совпадают с модулем E104-BT01
http://www.ebyte.com/en/downpdf.aspx?id=160
http://www.ebyte.com/downpdf.aspx?id=71

Список команд из прошивки:
AT+RESET
AT+RESTORE
AT+BAUD
AT+PARI
AT+STOPB
AT+BONDMAC
AT+PEERMAC?
AT+BOND
AT+MTU
AT+DATDLY
AT+ADVEN
AT+ADVDAT1
AT+ADVDAT
AT+NAME1
AT+NAME
AT+IBCNUUID
AT+IBCMAJOR
AT+IBCMINOR
AT+IBCTXPWR
AT+ADVINTV
AT+CONMIN
AT+CONMAX
AT+CONTO
AT+DISCON
AT+CONSTA?
AT+UUIDTYPE
AT+UUIDSVR
AT+UUIDCHAR1
AT+UUIDCHAR2
AT+VER?
AT+UPAUTH=
AT+AUTH
AT+PWR
AT+LOGMSG
AT+IO0?
AT+IO1?
AT+IO2=
AT+IO3=
AT+PWMFRQ
AT+PWM0
AT+PWM1
AT+PWM2
AT+PWM3
AT+DISCSLEEP
AT+EBTTEST
AT+TEST_IO=
AT+ADVTEST=
Какие-то отвечают если поставить знак вопроса в конец команды...
 

pvvx

Активный участник сообщества
При factory настройках модуль E104-BT05-TB, если дать команду AT+SLEEP потребляет за цикл (1010 мс) до 0.25 мА. При этом реагирует на команды по UART, просыпаясь...
upload_2019-11-18_20-22-28.png
 

pvvx

Активный участник сообщества
Краткий список всех AT команд для модуля E104-BT05:
Код:
AT                AT command test
AT+RESET        Reset command
AT+RESTORE        Factory reset command
AT+BAUD            Query and set the serial port baud rate command
    0: 2400
    1: 4800
    2: 9600
    3: 19200
    4: 38400
    5: 57600
    6: 76800
    7: 115200
    8: 256000
AT+PARI            Query and Set Serial Port Parity Bit command
    0: None
    1: Odd
    2: Even
AT+STOPB        Query and Set Serial Port Stop Bit command
    0: 1 Stop position
    1: 2 Stop position
AT+MAC            Query MAC command (6 HEX)
AT+BONDMAC        Query and Set Bonging MAC address command (6 HEX)
AT+PEERMAC?        Query Connected device MAC command (6 HEX)
AT+BOND            Bonding MAC Address on/off command
    0: Off
    1: On
AT+MTU            Query and Set the MTU length
AT+DATDLY        Query and Set Data Output Delay command
    0: Off
    1: On
AT+ADVEN        Query and set the broadcast on/off command
    0: Turn off the broadcast
    1: Ordinary broadcast
    2: iBeacon broadcast
AT+ADVDAT        Query and Set Broadcast data command (26 HEX)
AT+ADVDAT1        Query and Set Broadcast data command (26 HEX, not saved)
AT+NAME            Query and Set Broadcast device name command (22 HEX/ASCII)
AT+NAME1        Query and Set Broadcast device name command (22 HEX/ASCII, not saved)
AT+IBCNUUID        Query and Set iBeacon UUID command (16 HEX)
AT+IBCMAJOR        Query and Set iBeacon Major command (2 HEX)
AT+IBCMINOR        Query and Set iBeacon Minor command (2 HEX)
AT+IBCTXPWR        Query and Set iBeacon RSSI command (1 HEX)
AT+ADVINTV        Query and Set Broadcast interval command (32..16000 * 0.625 ms)
AT+CONMIN        Query and Set Minimum connection interval command (6..3200 * 1.25ms)
AT+CONMAX        Query and Set Maximum connection interval (6..3200 * 1.25ms)
AT+CONTO        Query and Set Connection timeout command (100..3200 * 10ms)
AT+DISCON        Disconnection conmand
AT+CONSTA?        Query Connection Status Command
AT+UUIDTYPE        Query and Set the length of the transparent service UUID
    0: 2-bytes UUID
    1: 16-bytes UUID
AT+UUIDSVR        Query and Set the Bluetooth service UUID (2/16 HEX)
AT+UUIDCHAR1    Query and Set the Bluetooth read service UUID (2 HEX)
AT+UUIDCHAR2    Query and Set the Bluetooth write service UUID (2 HEX)
AT+VER?            Query Firmware version command
AT+UPAUTH=        Update air configuration password (6 HEX/ASCII)
AT+AUTH            Query and Set Air configuration authentication password command (6 HEX/ASCII)
AT+PWR            Query and Set TX power command
    0: +8dBm
    1: +4dBm
    2:  0dBm
    3: -4dBm
    4: -10dBm
    5: -14dBm
    6: -20dBm
    7: -28dBm
    8: -30dBm
    9: -37dBm
AT+LOGMSG        Query and Set Running status output command
    0: Off
    1: On
AT+IO0?            Read IO0 input command
AT+IO1?            Read IO1 input command
AT+IO2=            Set IO2 output command
AT+IO3=            Set IO3 output command
AT+PWMFRQ        Query and Set the PWM output period * 0.01 ms
AT+PWM0            Query and Set the PWM0 duty cycle (0..100%)
AT+PWM1            Query and Set the PWM1 duty cycle (0..100%)
AT+PWM2            Query and Set the PWM2 duty cycle (0..100%)
AT+PWM3            Query and Set the PWM3 duty cycle (0..100%)
AT+DISCSLEEP    Query and Set Sleep mode after disconnection command
    0: Off
    1: On
AT+SLEEP        Immediately enter sleep mode command
Далее можно приступать к разработке своих программ на Telink SDK.
На плате E104-BT05-TB выводы USB от самого модуля выведены, есть даже возможность переключить имеющийся разъем USB с CH340 на сам модуль путем перепайки резисторов на плате.
Не понятно почему не повесили переключателя или сразу не задействовали USB чипа TLSR8266. USB-COM в уже готовой прошивке на нем (текущая AT на 56 килобайт) увеличит код не более чем на 2 килобайта. Скорее всего этого не сделали ради sleep режимов. Но на данной плате с USB sleep то зачем? В рабочем режиме с активным USB потребление TLSR всего 10 мА (на 32 МГц CPU).
 

pvvx

Активный участник сообщества
Чтобы понять где и какие реальные выводы у модуля E104-BT05 пришлось сдувать ему крышу (крышку):
E104-BT05-Pins.gif
 

pvvx

Активный участник сообщества
Собрал свой тестовый Echo USB-COM на данный модуль и протестировал - всё нормально, отличия от TLSR8269 по конфигурации минимальны.
Потребление при запросе и ответе 10 блоков по 2 килобайта у USB-COM-Echo драйвера на E104-BT05 при штатной частоте CPU на 48 МГц + светодиодик на таймере качает на 1 мА:
upload_2019-11-19_18-18-51.png
upload_2019-11-19_18-21-15.png
 

nikolz

Well-known member
А какой смысл переплачивать в 2 раза за уменьшение длины модуля на 4 мм?
JDY-10 на TLSR8266 длина 18 мм цена 80 руб
 

pvvx

Активный участник сообщества
А какой смысл переплачивать в 2 раза за уменьшение длины модуля на 4 мм?
JDY-10 на TLSR8266 длина 18 мм цена 80 руб
E104-BT05-TB c USB разъемом, светодиодами, пинами для тестов, микросхемой USB-COM для отладки, стабилизатором питания и т.д.
Для тестов даже паяльник не включал. А вы там паяйте... :)
JDY-10 тоже пришли пачкой, но они стремные, с фиговой антенной.
 

pvvx

Активный участник сообщества
@nikolz Да, и у JDY-10 кварц 12 МГц, а у E104-BT05 на 16 МГц. Мне на 16 МГц больше нравится.
Вам они не подойдут, т.к. примеры из SDK от Telink не работают на 16 МГц без исправления PLL.
Каждый модуль имеет свои плюшки, но лучше всего ET104-BT10 - там чип получше.
 

nikolz

Well-known member
@nikolz Да, и у JDY-10 кварц 12 МГц, а у E104-BT05 на 16 МГц. Мне на 16 МГц больше нравится.
Вам они не подойдут, т.к. примеры из SDK от Telink не работают на 16 МГц без исправления PLL.
Каждый модуль имеет свои плюшки, но лучше всего ET104-BT10 - там чип получше.
Понимаю, что сдуть крышку для вас не проблема, а припаять 4 провода уже проблема.
--------------------
вообще-то чип один и тот же TLSR8266F512ET32.
но вам для развлечения самый раз.
Приколько сколько Вы уже сил и времени затратили чтобы сделать свой адаптер UARt и свой драйвер USB.
-----------------------------
Пилите, Шура, пилите, они золотые.
 

pvvx

Активный участник сообщества
Понимаю, что сдуть крышку для вас не проблема, а припаять 4 провода уже проблема.
Есть большая разница - включить фен не включая паяльник на 30 сек и ткнуть крышку :p
вообще-то чип один и тот же TLSR8266F512ET32.
но вам для развлечения самый раз.
Разные кварцы и антенны :p
Приколько сколько Вы уже сил и времени затратили чтобы сделать свой адаптер UARt и свой драйвер USB.
Да, очень много - часа 2. И ещё надо пару часиков чтобы привести исходники в красивый вид.
Очень хорошо теперь тестировать всякое в чипах TLSR. Отладка сразу в COM порту и никаких драйверов не нужно.
Пилите, Шура, пилите, они золотые.
Где Шура? Это вас так зовут? :)
Как там поживают ваши закупленные за дорого EVK? Уже много написали программ на TLSR чипы (?) - тогда поделитесь, как включить DMA на ADC или что-то подобное, хоть прерывание по готовности.
А то следующий тест у меня - это тест ADC на TLSR.
Питание кажет хорошо по BLE, но там только 0..100% отображает винда... и не знает когда она эти проценты считала (чип уже отключен, а оно кажет в панелях BT у винды) :) :)
 

pvvx

Активный участник сообщества
вообще-то чип один и тот же TLSR8266F512ET32.
Там отношение и качество не то.
JDY-10 пришли просто россыпью валом, как хлам, а вот e104-bt05-tb упакованные каждый в свой антистат. пакетит и т.д. :p
Но вам покатит, вам же всё равно чем питаться :) :) Только зависть вас гложет...
 

pvvx

Активный участник сообщества
На вход ADС подал пилу 50 Гц -0.05..1.3В p-p, частоту ADC в TLSR8266 выставил в 48 кГц, 14 бит, максимальную длительность для 48 кГц ADC_SAMPLING_CYCLE_24, ref=ADC_REF_VOL_1V3.
Повесил доп. емкость по пиатнию в 470 мкФ, и на сигнал от прецизионного генератора пилы 0.1 мкФ (т.к. вход ADC чипа сам сильно шумит).
Задал передачу блоков по USВ по запросу - до 1024 samples за раз. Вылезло это:
upload_2019-11-20_18-29-5.png
Качество ADC не ахти и уточнять далее нет смысла.
 

pvvx

Активный участник сообщества
Такой у ADC ноль (вход замкнут на GND):
upload_2019-11-20_18-51-34.png
 

pvvx

Активный участник сообщества
1 кГц синус почти на весь размах:
upload_2019-11-20_19-56-32.png
Приложены wav c синусом и пилой 1 кГц:
 

Вложения

pvvx

Активный участник сообщества
C ADC у TLSR8266 наверно всё.
Резюме такое:
  1. как-то работает и достаточно быстро (делители от 4МГц тактовой задаются на sample и на сотни кГц)
  2. сильные помехи от внутренних коммутаций и прочих нагрузок (но значительно ниже чем у ESP32 и особенно ESP8266)
  3. сам ADC у серии TLSR8266 бракованный, про что явно указано в PDF - не работает PGA и audio режим: Since the TLSR8266/TLSR8266F512/TLSR8266F128/TLSR8266F1K doesn’t support audio input, address 0x33[5:4] shall always be set as 2b’00 to skip the period for L (Left) and R (Right) channel, i.e., Auto channel 1&2.
  4. нет возможности считывания по DMA или по прерыванию (работа с dFIFO указана только для audio режима).
Берем TLSR8269 - там у ADC всё работает.
 
Сверху Снизу