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

BLE SoC PHY6202

pvvx

Активный участник сообщества
Разобрался с неизвестным акселерометром в китайских браслетах-часах с PHY6202 и TLSR8266.
Код:
    /* Config acceleration sensor: 150 smps (50 points x,y,z per sec) */
    kxi2c_write(pi2c, 0x1E, 0x00);
    kxi2c_write(pi2c, 0x2E, 0x00); // stop
    kxi2c_write(pi2c, 0x20, 0x47);
    kxi2c_write(pi2c, 0x23, 0x98);
    kxi2c_write(pi2c, 0x24, 0x40);

    kxi2c_write(pi2c, 0x2E, 0x4F); // start
Далее считываем точки (x,y,z) из FIFO поступающие туда по 150 штук в секунду в виде 16 бит со знаком (пачка в x,y,z в виде 6 байт = 3 точки):
Код:
    if(kxi2c_read(pi2c, 0x2F, &reg, 1) != PPlus_SUCCESS) { // читаем флаги и глубину заполненного FIFO
        LOG("acc: getflg error!\n");
        ......
    }
    size = reg & 0x1f;
    if(size) {
        if(kxi2c_read(pi2c, 0xA8, acc_data, size*2) == PPlus_SUCCESS) {
            int16_t *p = (int16_t *)acc_data;
            acc_count += size;
        } else LOG("acc: read points error!\n");
        if(reg & 0x40) { // сбой чтения потока из FIFO чипа (переполнение)?
            LOG("acc: reset\n");
            acc_count = 0;
            size = 0;
            kxi2c_write(pi2c, 0x2E, 0x00); // stop
            kxi2c_write(pi2c, 0x2E, 0x4F); // новый start
        }
    }
Глубину FIFO чипа пока не определял. Но и так хорошо - уже весь поток передается в Web Bluetooth...
Т.е., при описанном конфиге чипа, каждые 100 мс считываем по 15 точек (5 блоков x,y,z = 5*3*2 = 30 байт). На эти процедуры у PHY6202, при i2c в 400 кГц, уходит около 2 ms. Между ними проц - спать...
 

pvvx

Активный участник сообщества
Описание выводов PHY6202 для SDK к часам с первой страницы:
Код:
/*
P32/P00 - EM7028, ACCx SDA
P33/P01 - EM7028, ACCx SCL
P34/P02 - TFT LED ENA
P00/P03 - TFT D/C
P01/P04 - TFT RST
P02/P05 - TFT CS
P03/P06 - TOUCH KEY INT

P09/P09 - TX
P10/P10 - RX
P25/P11 - TFT SDA, FLASH SDI
P24/P12 - FLASH CS
P23/P13 - EM7028 INT
P14/P14 - VBATT
P15/P15 - VUSB
P16/P16 - FLASH SDO
P17/P17 - TestPoint3
P18/P18 - KEY (none)
P20/P20 - MOTOR ENA
TRXV/P25 - +VCC
P31/P30 - TFT SCL, FLASH CLK
*/

/* em70xx.c */
#define GPIO_EM70xx_SDA P32
#define GPIO_EM70xx_SCL P33
#define GPIO_EM70xx_INT P23

/* acc.c */
#define GPIO_KX023_SDA P32
#define GPIO_KX023_SCL P33

/* touch_key.c */
#define GPIO_TOUCH_KEY_INT P3

/* battery.c */
#define GPIO_VBATT        P14
#define ADC_VBATT        ADC_CH2P_P14
#define GPIO_VUSB        P15
#define PIN_BATT_CHARGE GPIO_VUSB

/* lcd_TFT.c */
#define GPIO_TFT_LED_ENA    P34
#define GPIO_TFT_DC            P0    
#define GPIO_TFT_RST        P1   
#define GPIO_TFT_CS            P2   
#define GPIO_TFT_SDA        P25 // MOSI
#define GPIO_TFT_SCL        P31    // SCLK
#define GPIO_NC1              P7     // MISO

/* Test/LEDs */
#define GPIO_GREEN    P17    // TST3
#define GPIO_YELLOW   P18    // K9
#define GPIO_RED      P20    // MOTOR ENA
 

pvvx

Активный участник сообщества
Документация, SDK и т.д.: Welcome [Phyplus Wiki]
Ничего более публиковать не могу, т.к. лицензия в каждом файле:

Phyplus Microelectronics Limited является конфиденциальной и частной собственностью.
Все права защищены.
ВАЖНО: Все права на это программное обеспечение принадлежат Phyplus Microelectronics
Limited ("Phyplus"). Использование Вами данного Программного обеспечения ограничено
конкретные права, предоставленные в соответствии с условиями делового контракта,
конфиденциальное соглашение, соглашение о неразглашении и любые другие формы
договоров в качестве клиента или партнера Phyplus. Вы не можете использовать это
Программное обеспечение, если вы не согласны соблюдать условия этих соглашений.
Вы признаете, что Программное обеспечение не может быть изменено, скопировано,
распространяются или раскрываются, если они не встроены в Phyplus Bluetooth Low Energy
(BLE) интегральная схема, либо в виде продукта, либо интегрирована в ваш
товары. За исключением вышеуказанных целей, вы не можете использовать,
воспроизводить, копировать, готовить производные произведения, изменять, распространять, выполнять,
показывать или продавать данное Программное обеспечение и / или его документацию для любых целей.
 

pvvx

Активный участник сообщества
А конкретнее - не могу выложить в github, только частный обмен при запросе в личке...
И вторая беда у PHY62x2 - проприетарная среда сборки. Но это не особо тянет, т.к. запросто переводится на gcc.
 

pvvx

Активный участник сообщества
upload_2019-12-20_9-28-3.png
Всё - часы можно на тапочки вешать.. :)
 

pvvx

Активный участник сообщества
Часы на тапочке...
С определением кол-ва шагов будет похуже, чем с сердечным ритмом:
upload_2019-12-20_9-50-16.png
 

pvvx

Активный участник сообщества
Осталось установить Характеристики неизвестного датчика акселерометра-педометра, при указанных настройках в представленном ранее коде:
upload_2019-12-20_17-19-3.png
Длина вектора при 1 g:
|a| = √ax2 + ay2 + az2 = √48642 + 47842 + 47522 = √23658496 + 22886656 + 22581504 = √69126656 = 16√270026 ≈ 8314.244162880954
Предел показаний (значений точек) ±32767, т.е. ±4 g.
Кол-во бит: 12 старших (младшие 4 в установленном режиме 50 замеров 3D в сек не работают).
Шум: ±220 единиц (±0.027 g).
 

pvvx

Активный участник сообщества
Т.к. поступило несколько запросов типа "Есть мысль для личных целей сделать небольшой внешний дисплей для смарта." то оповещаю скопом (а не каждому в личке и прочим каналам связи) - драйвер дисплея на часах из заголовка темы работает и опробован ещё в том году. Если мои нужды не совпадают с вашими, писать на заказ что-то не собираюсь.
Вариант передачи готовых изображений в Web Bluetooth на часы уже опробован.
Передача картинок со смарта подразумевает ПО на смарт с подготовкой картинок, что я писать не намерен.
 

pvvx

Активный участник сообщества
Часы имеют встроенную дополнительную Flash со шрифтами и в SDK есть библиотека работы с utf-8 текстом и прочих графических фигур для вывода на экран...
Шаблоны картинок-заставок записываются так-же в эту дополнительную flash (пример из SDK упрощен и оперирует картинками только из основной Flash)
В SDK есть пример и приложение для теста под Android.
Показывает пример передачи сообщений на часы. Три вида
- типа звонок и на экране будет мигать картинка звонка и работать вибра
- 2 типа сообщений с разными картинками оповещения (зачем не знаю)
upload_2020-1-29_3-20-14.png
Правда там, в примере SDK, используется совсем маленький экран - на большом экране это всё показывает в уголку и очень мелко:
upload_2020-1-29_3-29-38.pngupload_2020-1-29_3-29-47.png
 

nikolz

Well-known member
вот что пишут китайцы про этот чип (перевод гугл)
т е они подтверждают что эталоном является NRF
а чип 6212 китайская копия NRF52832, вернее сказать
ядро копия NRF51822, так как процессор не Cortex-M4,
а более старый Cortex-M0.

1584165843496.png
 

pvvx

Активный участник сообщества
Это вы к чему?
У каждого чипа свои плюшки.
С PHY работать проще и он дешевле, да его характеристики по совокупности лучше подходят для применения в простых BLE устройствах.
Intel 9 там не требуется.
 

pvvx

Активный участник сообщества
Сравнивать PHY с Nordic нет никакого смыслу - простейшая отладочная плата "от производителя" отличается по цене в десятки раз.
Так называемая тут "скорость вхождения", т.е. простота SDK у PHY и кол-во простых и нужных примеров - аналогично. Среда разработки сделана намного проще, что дает более быстрое итого.
Прикрутить экран или какой датчик на чип Nordic - это эпопея даже для знающего его в несколько дней. На PHY - пол часа.
 

pvvx

Активный участник сообщества
Как я знаю, вам это не понять, т.к. у вас нет практики и знаний по электронике, по тому можно привести аналогию:
Возить домой картошку лучше на обычной машине, чем на эксклюзивной, гоночной или специальной дорогой марке. Оно проще и дешевле в обслуживании и содержании.
А китайцы как раз и замещают такой класс на свои чипы. Нафиг им эксклюзив, который нужен единицам и для каких-то соревнований...
Пусть Nordic теперь и соревнуется по цене и востребованности :) Что уже и произошло.
 

pvvx

Активный участник сообщества
Так-же, если вы следите за ходом истории или занимаетесь техническим маркетингом, то сами всё видите. Большие корпорации неуклюжи и их заносит надолго не в тему. Но главная задача у них – расширение рынка. Nordic его ныне и теряет из-за того, что не учел современные реалии, что для распространения товара он должен быть доступен любому, а их SDK и прочие необходимые части не доступны не специалистам, т.е. товар недоступен большей части рынка. Спешный разворот идет, но он долог для такого монстра и требует перестройки всего, включая и увольнение старых работников не могущих переориентироваться на обычного потребителя. А они составляют костяк фирмы и не хотят, и не умеют быстро переориентироваться :p Тем временем рынок сам за них это производит со скрипом – их чипы уже вписали в Arduino, но итоги пока никакие…
 

pvvx

Активный участник сообщества
В итого – погляжу на их поведение и “поднасру” по вашему – к примеру, возьму и выпущу Arduino или подобное на китайские чипы. Это окажет большее влияние, чем ваш писк в форумах :p
Частично это уже происходит с чипами от Telink…
 

greyfox13

New member
Некоторое время назад покупал китайский пульсометр Kyto 2809. Выдавал по всем каналам какую-то ерунду. Взял отвертку - внутри nRF51422. Устаревший, памяти мало. Но выпуска 4й недели 2019г. Взяв nRF SDK v10 (также устаревшую) сколхозил свою прошивку. Теперь и по ANT+ и по BT предается то, что нужно. Плюс бонусом прикрутил сервис DFU OTA, чтоб не раскручивать больше.
Это я к чему. Древнее барахло еще производят, покупают и используют. Нордическая SDK содержит кучу примеров, по которым можно собрать что нужно. И она не такая уж и непонятная. Не без проблем конечно. Интересно на чем Polar'ы и Suunto делают...

ЗЫ pvxx, вы хвастались, что стали спецом в шагометрах/акселерометрах и т.д. Сможете опознать чип с маркировкой "19 NC" в две строчки. Откликается на nonshifted адрес 0x32. Корпус типа LGA12. Гуглю сам, но вдруг вам уже попадались. Сэкономлю время.
 
Сверху Снизу