Обсуждение 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) );
И т.д. про другие подстройки...
Вы батенька - Хам.
Не более вашего. Ваш ход первым.
 
Сверху Снизу