• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Обсуждение TLSR8269

pvvx

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

pvvx

Активный участник сообщества
Лог шины i2c на часах с PHY6202 (на них у меня уже всё выведено на разъемы) ничего вразумительного не дал.
По старту питания, первые транзакции:
upload_2019-12-3_23-24-25.png
Код:
Decoded Protocol Result (7 бит адрес)
Setup Write to [0x24] + ACK
0x0F + ACK                
0x01 + ACK                
Setup Write to [0x24] + ACK
0x00 + ACK                
0x36 + ACK                
Setup Write to [0x10] + ACK
0x04 + ACK                
Setup Write to [0x00] + ACK
0x40 + ACK                
Setup Write to [0x24] + ACK
0x03 + ACK                
0x00 + ACK                
Setup Write to [0x24] + ACK
0x04 + ACK                
0x00 + ACK                
Setup Write to [0x24] + ACK
0x05 + ACK                
0xFF + ACK                
Setup Write to [0x24] + ACK
0x06 + ACK                
0xFF + ACK                
Setup Write to [0x24] + ACK
0x07 + ACK                
0x80 + ACK                
Setup Write to [0x24] + ACK
0x08 + ACK                
0x00 + ACK                
Setup Write to [0x00] + NAK
0x24 + NAK                
Setup Write to [0x00] + NAK
0x47 + NAK                
Setup Write to [0x24] + ACK
0x0B + ACK                
0x00 + ACK                
Setup Write to [0x24] + ACK
0x0C + ACK                
0x00 + ACK                
Setup Write to [0x24] + ACK
0x0D + ACK                
0x00 + ACK                
Setup Write to [0x00] + NAK
0xC0 + ACK                
Setup Write to [0x24] + ACK
0x0F + ACK                
0x01 + ACK                
Setup Write to [0x24] + ACK
Setup Write to [0x00] + ACK
Setup Write to [0x24] + ACK
0x21 + ACK                
0x00 + ACK                
Setup Write to [0x24] + ACK
0x22 + ACK                
0x00 + ACK                
Setup Write to [0x10] + ACK
0x8C + ACK                
Setup Write to [0x24] + ACK
0x24 + ACK                
0x00 + ACK                
Setup Write to [0x24] + ACK
Setup Write to [0x14] + ACK
Setup Write to [0x01] + ACK
0xC0 + ACK                
Setup Write to [0x24] + ACK
0x27 + ACK                
0x00 + ACK                
Setup Write to [0x24] + ACK
0x28 + ACK                
0x00 + ACK                
Setup Write to [0x24] + ACK
0x29 + ACK                
0x00 + ACK                
Setup Write to [0x24] + ACK
Setup Write to [0x20] + ACK
Setup Write to [0x01] + NAK
0x60 + ACK                
Setup Write to [0x24] + ACK
0x2C + ACK                
0x00 + ACK                
Setup Write to [0x24] + ACK
Setup Write to [0x20] + ACK
Setup Write to [0x24] + ACK
Setup Write to [0x00] + ACK
Setup Write to [0x10] + ACK
0xBC + ACK                
Setup Write to [0x24] + ACK
0x30 + ACK                
0x00 + ACK                
Setup Write to [0x24] + ACK
0x31 + ACK                
0x00 + ACK                
Setup Write to [0x24] + ACK
0x01 + ACK                
0x80 + ACK                
Setup Write to [0x00] + NAK
0x00 + ACK                
Setup Write to [0x10] + ACK
0x28 + NAK                
Setup Write to [0x24] + ACK
0x0D + ACK                
0xC7 + ACK                
Setup Write to [0x24] + ACK
Setup Read to [0x00] + NAK
Setup Write to [0x24] + ACK
0x00 + ACK                
Setup Read to [0x24] + ACK
0x36 + Missing ACK/NAK    
Setup Write to [0x24] + ACK
0x00 + ACK                
Setup Read to [0x24] + ACK
0x36 + Missing ACK/NAK    
Setup Write to [0x10] + ACK
Setup Read to [0x12] + ACK
Setup Write to [0x10] + ACK
Setup Read to [0x24] + ACK
0xC7 + Missing ACK/NAK    
Setup Write to [0x24] + ACK
0x01 + ACK                
0x00 + ACK                
Setup Write to [0x00] + NAK
0xA0 + ACK                
Setup Write to [0x10] + NAK
0xE0 + ACK                
Setup Write to [0x19] + ACK
Setup Write to [0x00] + ACK
Setup Write to [0x19] + ACK
0x1E + ACK                
0x00 + ACK                
Setup Read to [0x10] + ACK
0xE0 + ACK                
Setup Read to [0x10] + ACK
0x02 + ACK                
Setup Write to [0x19] + ACK
Setup Write to [0x26] + ACK
Setup Read to [0x04] + ACK
0x10 + ACK                
Setup Write to [0x19] + ACK
0x2E + ACK                
Setup Write to [0x19] + ACK
0x0F + ACK                
Setup Read to [0x19] + ACK
0x11 + NAK                
Setup Write to [0x19] + ACK
0xA3 + ACK                
Setup Read to [0x19] + ACK
Да и когда в меню выбирается замер с этого датчика то ничего нового в адресах i2c не появляется...
В режиме ожидания примерно такая-же пачка проходит каждые пол секунды.
 

pvvx

Активный участник сообщества
Анализатор i2c в Saleae подвирает наверно из-за уровней стробов по шине, но устройство с адресом 0x24 - это сенсор x, y, z.
[inline]uint8 EM70xx_SLAVE_ADDR = (0x24);[/inline]
em70xx_bpm_dynamic(int in,int qsensor_x,int qsensor_y,int qsensor_z);
На него есть исходники в SDK к PHY6202. Микросхема нечто типа EM70xx - тоже до конца не выяснено что это, но исходники как работать с ней есть :)
Надо глянуть схемы демо-плат для PHY6202 - возможно там всё уже подписано....
 

pvvx

Активный участник сообщества
Да, всё есть в схеме http://wiki.phyplusinc.com/doc/PCB/PHY6202_48_braceletV1.4.pdf
KX023 is a tri-axis ±2g, ±4g or ±8g silicon micromachined accelerometer with integrated 256 byte buffer, orientation, tap/double tap, and activity detecting algorithms.
http://kionixfs.kionix.com/en/datasheet/KX023-1025 Specifications Rev 12.0.pdf
EM7028 Heart Rate Sensor with I2C Interface
https://datasheet.lcsc.com/szlcsc/Epticore-Microelectronics-Shanghai-EM7028_C91478.pdf
Часы сделаны по рефенс-дизайну из PHY6202_48_braceletV1.4.pdf, а я мучаюсь ... :) :)
 

pvvx

Активный участник сообщества
В итоге все микросхемы в часах с PDF и с примерами работы с ними в SDK, включая OTA и примеры приложений для Smart телефонов + работа с TFT, да всякие BLE ...
Отладчики и программаторы так-же все уже есть на PHY6202 и TLSR826x.
 

pvvx

Активный участник сообщества
Интересно в ваших часах стоят внешняя флешь. В моих нет. Место правда есть под нее. Для чего она используется. Архив данных видимо.
Как и указал, там шрифты и картинки на полные 4 Мегабайта.
Изменил загружаемый floader (ExtFlash8266PB5.bin) и махнул на него название в tlsrtool.ini.
Кнопки чтения и записи Flash стали работать с внешней flash:
upload_2019-12-4_10-2-14.png
Flash ID: 68-40-16 соответствует Boya Microelectronics BY25Q32BS на плате...
Автоматической такая опция в tlsrtool не будет. Надо устанавливать GPIO связанного с CS Flash и уточнять если надо команды имеющейся внешней flash - огромный интерфейс выйдет.
Проще собрать новый лоадер по исходникам в pvvx/TlsrTools (чуть позже туда кину версию исходника floadera c опцией смены на внешнюю flash и новую версию exe, с увеличенным буфером для чтения SPI Flash до 16 МБ).

Если интересно что во флешке 25Q32 у часов - обе fullflash часов закинул туда: Lefun_x2.zip
 

pvvx

Активный участник сообщества
BLE передача ADCPM данных и декодирование в javascript через декодер из rochars/imaadpcm :)
Sample Rate на 16 кГц, диф. входы PGA висят, трогаем руками для проверки сигнала :) :
upload_2019-12-29_9-44-41.pngupload_2019-12-29_9-48-17.pngupload_2019-12-29_9-48-47.png
В качестве начальных исходников использовался пример из Telink ble_sdk_release_v3.3.0_20191012\vendor\826x_ble_remote ...
 

pvvx

Активный участник сообщества
Для "Ok Google" пойдет на все 100%.
Большая часть работы выполняется аппаратно:
upload_2019-12-29_10-5-15.png
Аттенюация в PGA есть:
upload_2019-12-29_10-21-48.png
Принятые блоки от PGA+ADC(14 бит) укладываются в указанный пользователем буфер в памяти...
Обрабатываются и далее чип передает блоки ADCPM по 128 байт с предиктором и квантователем...
В спецификции 4.0 максимальная длина PDU составляет 39 байт, а в версии 5.0 длина пакета данных увеличена до 257 байт.
TLSR826x поддерживает BT 5.0 и для передачи использует увеличенный размер пакета...

А то @nikolz у нас сильно волновался - как передать "Ok Google" на BLE чипах от Ti ... Но в них только прерывание по готовности 10 бит ADC и нет никаких PGA :p
 

pvvx

Активный участник сообщества
АЧХ диапазона 10Гц - 10кГц включенных фильтров из SDK при 16 кsps:
upload_2019-12-29_11-28-12.png
Такой кривой ADPCM. Автоматическая аттенюация не дает снять пилу в пару Герц чтобы поглядеть какое там реальное разрешение в битах, но на ADPCM вообще глядеть нечего, т.к. он не создан для измерительной аппаратуры...
 

pvvx

Активный участник сообщества
Итог теста DFIFO c ADC, модуль E104-BT10.
CLK CPU 16 MHz.
ADC цифрует на 16 000 000/(260+15*16) = 32 000 sps. (меньше не дано)
DFIFO выполняет децимацию в 8 раз с неким коэф. для амплитуды (зависит от коэф. децимации), и складывает в кольцевой буфер в RAM c изменением указателя записи (4 000 sps). Это всё происходит аппаратно.
Далее софт:
CPU периодически ожидает накопления более 384 замеров в DFIFO.
Перед передачей каждые 4-ре замера из DFIFO складываются и делятся на 2. (подбор для данной децимации, чтобы не вылезало за uint16).
Собирается пакет из 96 замеров, пришлепывается счетчик и передается как блок в 194 байта (BT/BLE 5.0 - MTU до 256 байт).
Итоговая скорость передачи - 1 000 замеров в сек до 16 бит.

Для теста на вход ADC в модуле воткнут генератор пилы 0.1 Гц с максимальной для выбранного Ref (1.25В) у ADC амплитудой p-p.

Прием BLE от модуля данных ведется в Chrome:
upload_2020-1-6_6-56-1.png
В нем и сохраняется в csv файл...

Проверка принятого:
TstAdcDfifoPila.gif
Параметры ADC не очень - много шуму от работы самого чипа...
Но хотя-бы DFIFO освоилось в TLRS8269...
 

pvvx

Активный участник сообщества
По загрузке канала RF передачи (короткими пакетами) для теста выше имеем:
upload_2020-1-6_7-47-3.png
(принято на щуп осла и диод Д405Б рядом с модулем)
 

pvvx

Активный участник сообщества
Telink сменил дизайн своего сайта
Telink | Chips for a Smarter IoT
и начал активно выкладывать всё в GitHub
TelinkGithub - Overview
Ещё немного и поменяет лицензии в хидерах исходников и можно будет выкладывать свои наработки с исходниками...
 

nikolz

Well-known member
Telink сменил дизайн своего сайта
Telink | Chips for a Smarter IoT
и начал активно выкладывать всё в GitHub
TelinkGithub - Overview
Ещё немного и поменяет лицензии в хидерах исходников и можно будет выкладывать свои наработки с исходниками...
это уже давно, забыл Вам про это сказать.
 

nikolz

Well-known member
Telink сменил дизайн своего сайта
Telink | Chips for a Smarter IoT
и начал активно выкладывать всё в GitHub
TelinkGithub - Overview
Ещё немного и поменяет лицензии в хидерах исходников и можно будет выкладывать свои наработки с исходниками...
что скажите на такое замечание:
цитата :
---------------------
На модулях используется только кварц на 12 MHz, причём с достаточно большой ёмкостью (12 pF).
Часового кварца нет, в документации говорится про встроенный на ±100 ppm. Что опять же приведёт к повышенному энергопотреблению.
------------------------------
А если говорить про стек BLE, то Nordic тут значительно впереди. Причём даже конкурентов мирового уровня, а не просто китайцев, которые качеством ПО никогда не отличались.
 

pvvx

Активный участник сообщества
что скажите на такое замечание:
цитата :
---------------------
На модулях используется только кварц на 12 MHz, причём с достаточно большой ёмкостью (12 pF).
Часового кварца нет, в документации говорится про встроенный на ±100 ppm. Что опять же приведёт к повышенному энергопотреблению.
------------------------------
А если говорить про стек BLE, то Nordic тут значительно впереди. Причём даже конкурентов мирового уровня, а не просто китайцев, которые качеством ПО никогда не отличались.
Кто вам сказал:
1) Что ПО писали китайцы?
2) С кварцами у Telink всё хорошо. Не то, что у Nordic. Есть встроенная аппаратная коррекция емкости. Управляется программно. Читайте читайте документацию.
3) RTC тоже корректируется. RC генератор во все времена и народы жрал меньше и здорово.
Кароче гуляйте и обтекайте своей безграмотностью :p
 

nikolz

Well-known member
Кто вам сказал:
1) Что ПО писали китайцы?
2) С кварцами у Telink всё хорошо. Не то, что у Nordic. Есть встроенная аппаратная коррекция емкости. Управляется программно. Читайте читайте документацию.
3) RTC тоже корректируется. RC генератор во все времена и народы жрал меньше и здорово.
Кароче гуляйте и обтекайте своей безграмотностью :p
кто сказал, написано, но вы не читаете.
Вы батенька - Хам.
 

pvvx

Активный участник сообщества
кто сказал, написано, но вы не читаете.
А - понял, это вы выдумали. :)
Вот и читайте в описании у Telink про:
// customize freq_offset adjust cap value, if not customized, default ana_81 is 0xd0
//ana_81<4:0> is cap value(0x00 - 0x1f)
analog_write(0x81, (analog_read(0x81)&0xe0) | ((*(unsigned char*) CUST_CAP_INFO_ADDR)&0x1f) );
И т.д. про другие подстройки...
Вы батенька - Хам.
Не более вашего. Ваш ход первым.
 

pvvx

Активный участник сообщества
Пришли модули E180-Z6907A, ZigBee 3.0, TLSR8269. Кому надо прошивку из них - пишите, считаю и скину...


https://aliexpress.ru/item/4001326919796.html 251 рупь 1..2 шт.

https://www.platan.ru/cgi-bin/qwery.pl/id=2014826345 от 20 шт по 353 рупь :)
 
Сверху Снизу