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

CH582M (СH581, CH582, СH583)

pvvx

Активный участник сообщества
Вот вы можете подсказать, где пример "extended advertising"? Это базовая часть BT5.0. Или чип не поддерживает 5.0?
Поиски "CH582"/"CH583" "extended advertising" или Coded PHY в SDK или google отличаются молчанием.
Скорее всего чип или WCH не поддерживает BT5.0? (т.е. осталась в 2016 году?) (И вы это решили пропагандировать на Хабре :love:)
 

pvvx

Активный участник сообщества
Понятно, что со своими вопросами всегда разбираться самому.

Раскопки показывают, что есть пример SYNC_ADV broadcaster.c и в нем назначение EXT_NONCONN_NONSCAN_UNDIRECT рекламы. Но нужно полный Coded PHY, а не 1M PHY.

Т.е. необходимо задать TGAP_ADV_PRIMARY_PHY и TGAP_ADV_SECONDARY_PHY на GAP_PHY_VAL_LE_CODED. А так-же где то назначить тип Coded: S2 или S8 (GAP_PHY_OPTIONS_S2/GAP_PHY_OPTIONS_S8).

Но задание типа PHY есть только для connHandle. А мне не надо соединение, мне и другим потребуется расширенная реклама на Coded S8 и желательно 2 штуки одновременно с перемежением GAP_ADTYPE_EXT_CONN_UNDIRECT и GAP_ADTYPE_EXT_SCAN_DIRECT. Иначе никакого LongRange с возможностью соединения и сканирования.
Соединение чаше всего можно сделать на 2M PHY, т.к. оно требуется для одиночной настройки устройства находящегося в руках.

PS: пойду слеплю это на другом SoC, чем париться с этими загадками от WCH.
 

pecherskih

Member
Ещё раз - у меня просто есть с чем сравнивать, а вы ещё не набрали пачку BLE чипов. За тот год потыркал более десятка SOC с BLE и я не являюсь специалистом - я только учусь :p
В исходниках. А далее надо приложить среднее от других BLE и тогда часть становится понятна.
Так-же есть рекомендации какие функции и с какими параметрами должны быть. WCH этому придерживается или гонит отсебятину?
Добрый день. Да все мы тут учимся, как же без этого. На счет команд стека для ch582 скажу следующее. Врать не буду, сравнить мне не с чем, так глубоко в стек я раньше не лазил. Нордиком я пользовался пару лет назад, уже и не помню. Что касается ch582, то описания команд даже на китайском я не нашел. Только в хедере CH58xBLE_LIB.H есть небольшие пояснения. Я выписал эти команды (для роли центрального), вот они, если интересно.

Есть несколько команд, чтобы узнать сервисы периферического устройства.
GATT_DiscAllPrimaryServices() обнаружение всех сервисов устройства
GATT_FindIncludedServices() обнаружение всех сервисов из диапазона адресов
GATT_DiscPrimaryServiceByUUID() обнаружение конкретного сервиса по UUID

Для обнаружения характеристик и дескрипторов устройства служат следующие команды:
GATT_DiscAllChars() обнаружение всех характеристик из диапазона
GATT_DiscCharsByUUID() обнаружение характеристик по UUID
GATT_DiscAllCharDescs() обнаружение всех дескрипторов характ.из диапазона

После обнаружения сервисов, характеристик и дескрипторов устройства, мы можем отправлять команды для работы с ними.
GATT_ReadCharValue() чтение значения характеристики по указателю
GATT_ReadUsingCharUUID() чтение значения характеристики по UUID
GATT_ReadLongCharValue() чтение по указателю длинного значения характ.
GATT_ReadMultiCharValues() чтение нескольких значений характ. по указателю
GATT_WriteNoRsp() запись значений характеристики без подтверждений
GATT_SignedWriteNoRsp() запись значений характеристики not encrypted
GATT_WriteCharValue() запись значения характеристики по указателю
GATT_WriteLongCharValue() запись длинного значения характеристики по указат.
GATT_ReliableWrites() запись характерист. с подтверждением получения
GATT_ReadCharDesc() чтение дескриптора характеристики
GATT_ReadLongCharDesc() чтение длинного дескриптора характеристики
GATT_WriteCharDesc() запись дескриптора характеристики
GATT_WriteLongCharDesc() запись длинного дескриптора характеристик

В принципе всё очень логично. Однако в исходниках у производителя не всё так гладко. В примерах используется наверное только треть команд. Как использовать другие - не понятно. Ну то есть логически понятно, но стек на них не реагирует. Кроме того, в исходниках своя логика использования команд. Вот пример. Команда GATT_ReadUsingCharUUID() служит для получения указателя на характеристику в стеке. Всё замечательно, она работает. Но в примерах
эту же команду используют для получения указателя на дескриптор CCCD. Я научился пользоваться частью команд, для роли центрального, но потратил на это наверное недели две, и до конца не понял. У меня ещё будет время к этому всему вернутся, т.к. это нужно для работы. Может быть, когда разберусь окончательно, тогда и будет мне озарение :) Тогда и составлю чёткое описание что и к чему, ну и выложу его на всеобщее обозрение. А пока нет точного понимания, что то рекомендовать не буду. Такие вот дела
 

pvvx

Активный участник сообщества
Я научился пользоваться частью команд, для роли центрального, но потратил на это наверное недели две, и до конца не понял.
Главное есть debug, копаться в регистрах CPU :)
Помогло?

Привели список в 19 команд. Из них большая часть и так понятна. К остальному десятку пишется printf и за пару проходов всё узнается. Где там 2 недели, если не копаться в регистрах через JTAG?
 

pvvx

Активный участник сообщества
@pecherskih - вы Яву и Питон тоже через JTAG отлаживаете?

PS: Все фичи ESP8266 с его регистрами, включая ADC были выужены через Web сервер, с помощью HTTP запросов.
 

pecherskih

Member
Вот вы можете подсказать, где пример "extended advertising"? Это базовая часть BT5.0. Или чип не поддерживает 5.0?
Поиски "CH582"/"CH583" "extended advertising" или Coded PHY в SDK или google отличаются молчанием.
Скорее всего чип или WCH не поддерживает BT5.0? (т.е. осталась в 2016 году?) (И вы это решили пропагандировать на Хабре :love:)
В примерах я так же этого не нашел. Насколько я понимаю - хотя китайцы и пишут, что чип поддерживает BLE 5.0, но по факту они его ещё не допилили. На счет пропаганды этого чипа. Я уже писал, что Вы сами кидаете какие то лозунги, а потом их же опровергаете. Я лишь делюсь опытом использования этих чипов. Нордик, к примеру, мне нравится значительно больше, особенно своей поддержкой, своим форумом. Но он сейчас в Россию не поставляется. А что касается CH582 - это не мой выбор, а наших партнеров. Они его на плату ставят, мне приходится учится с ним работать. Вот этим опытом и делюсь
 

pecherskih

Member
Главное есть debug, копаться в регистрах CPU :)
Помогло?

Привели список в 19 команд. Из них большая часть и так понятна. К остальному десятку пишется printf и за пару проходов всё узнается. Где там 2 недели, если не копаться в регистрах через JTAG?
Ну у нас здесь только Вы непревзойденный специалист по блютусу и наездам. Куда уж мне :) Но вы продолжайте, право слово, меня это бодрит :)
 

sed_alex

New member
На счет CDC - пример брал с GitHub, по CH58x обновления прилетают довольно часто:
В последнем обновлении как раз добавлен пример CDC

Что касается описания BLE библиотеки я в поддержку писал на этот счет, ответили что работают и скоро переведут описание на английский.

P\S кое какие примеры и описания можно брать с китайских форумов например вот: http://bbs.eeworld.com.cn/thread-1229157-1-1.html
У Китайцев есть видео как они конектят отладочную плату как умную лампочку через Mesh
 

pvvx

Активный участник сообщества
Что касается описания BLE библиотеки я в поддержку писал на этот счет, ответили что работают и скоро переведут описание на английский.
А какой у этого действия смысл?
Они как и мы давно под "санкциями". И счас "санкции" идут в рост как раз в сфере информации. По этому их обещание = ждите ответа.
России уже перекрыт доступ на все инфо ресурсы крупных англоязычных производителей чипов.
Я так-же уже объявил в своих репах на git, что поддержка всех новых фич будет исключительно на русском языке. Английский запрос по новым вещам - в игнор. Исключение составляет только поддержка старого.
 

sed_alex

New member
А какой у этого действия смысл?
Они как и мы давно под "санкциями". И счас "санкции" идут в рост как раз в сфере информации. По этому их обещание = ждите ответа.
России уже перекрыт доступ на все инфо ресурсы крупных англоязычных производителей чипов.
Я так-же уже объявил в своих репах на git, что поддержка всех новых фич будет исключительно на русском языке. Английский запрос по новым вещам - в игнор. Исключение составляет только поддержка старого.
Английский язык - это международный технический язык. Так уж получилось что на планете из 8 млрд человек точно более 1 млрд говорят на английском.
Китайцев конечно больше но учить китайский сложней и они это прекрасно понимают поэтому тратят время и переводят свои мануалы на английский.

Переводить мануалы на Русский с точки зрения бизнеса - это маразм, язык сложный переводчиков технических мало да и Россия в качестве клиента так себе (мы конечно покупаем у WCH камни, но боюсь все Российские клиенты вместе взятые покупают менее 1% продукции.).

P\S ничего не закрывал и не собираюсь...
 

pvvx

Активный участник сообщества
Английский язык - это международный технический язык. Так уж получилось что на планете из 8 млрд человек точно более 1 млрд говорят на английском.
Ранее был немецкий (ещё на моей жизни) и ничего. Теперь китайский.
Завтра индия - их уже больше. Всё живет и меняется.
Переводить мануалы на Русский с точки зрения бизнеса - это маразм, язык сложный переводчиков технических мало да и Россия в качестве клиента так себе (мы конечно покупаем у WCH камни, но боюсь все Российские клиенты вместе взятые покупают менее 1% продукции.).
А англичане покупают больше? :)
Судя по тенденциям - меньше, чем мы и другие.
Китайцам своего рынка пока достаточно.
Сегодня не переведете на русский - завтра в google отключат перевод с/на русский.
 

pvvx

Активный участник сообщества
А если пойдет дальше то что идет, то кому сдался английский в нашей части "многополярного мира"?
Исключительно "пердунам", привыкших к английской документации к коммерческим продуктам?
Требуйте древнюю латынь. :) А я за многообразие.
 

pvvx

Активный участник сообщества
Английский язык - это международный технический язык.
Уже нет.
Все крупные англоязычные корпорации закрыли доступ информации в Россию.
Так что вперед - учите китайский. (Мои дети уже давно учат)
 

pvvx

Активный участник сообщества
@sed_alex - Я вам могу даже расширенно ответить, чтобы вы осознали свою упертость
Вот pecherskih собирается написать статейку на Хабр, но на русском языке.
Я учился электронике исключительно на русском языке, т.к. в те времена все описания деталек были на русском.
Тут тоже форум на русском и в основном для начинающих. Вы им предлагаете учить английский и писать на нем тут?
С китайцев вы уже потребовали английскую документацию… Может вы выбрали вас не ту страну?
 

sed_alex

New member
Программисты без знания английского, хотя бы базового - вы меня смешите, среди моих знакомых таких людей нет.

Покажите где я говорил, что на этом форуме нужно писать на Английском ?
 

pvvx

Активный участник сообщества
И здесь "бизнесом" занимаетесь - "Переводить мануалы на Русский с точки зрения бизнеса - это маразм, язык сложный переводчиков технических мало да и Россия в качестве клиента так себе"
бизнес - слово английское и означает какое-то безобразие.
Программисты без знания английского, хотя бы базового - вы меня смешите, среди моих знакомых таких людей нет.
Я не знаю и не хочу. Есть Google переводчик.
 

pvvx

Активный участник сообщества
Смотрю опять всё перепутали. Госты и снипы гласят, что документация должна быть на русском языке. Это где можно предоставить документы на английском по эл.устройству для сертификации в гос.реестре?
(Не путайте аббревиатуры латинскими буквами с английским языком)
А программеры со знанием английского в большей массе уже тю-тю – выехали, или подпольно пашут на дядю Сема.
 

pvvx

Активный участник сообщества
@sed_alex а почему вы пишите "BLE Анализатор сканирует на 0x25 (37) канале (ожидает приема "рекламного" пакета)", когда любой нормальный сниффер с одним чипом и антенной сканирует рекламу по 3-м каналам?
Это такая фича у BLE AnalyserPro от WCH, который на 3 канала сразу и "Мой выбор пал на BLE AnalyserPro" ? Или это всё-же "BLE Analyser -обычный свисток (одноканальный)" на который не пал выбор?
Т.е. не стоит покупать BLE AnalyserPro от WCH?
И в пустыне есть ссылка на "лапшу из пачкордов" и там в конце указано как сделать сниффер в Wireshark...
 

pecherskih

Member
И в пустыне есть ссылка на "лапшу из пачкордов" и там в конце указано как сделать сниффер в Wireshark...
Кстати в этой "лапше из пачкордов" парень так же топит за то что интерактивная отладка у проца должна быть.
Я не люблю современные процессоры, которые невозможно интерактивно отлаживать. Был у меня цикл статей, в которых я рассматривал просто обалденную макетную плату… Но в итоге, я её забраковал именно за то, что разработчик принципиально не вывел разъём JTAG.
PVVX - где ваши возмущенные крики? А то как то тихо стало на форуме. Вы уж порадуйте нас :)
 

pvvx

Активный участник сообщества
Кстати в этой "лапше из пачкордов" парень так же топит за то что интерактивная отладка у проца должна быть.
Я не люблю современные процессоры, которые невозможно интерактивно отлаживать. Был у меня цикл статей, в которых я рассматривал просто обалденную макетную плату… Но в итоге, я её забраковал именно за то, что разработчик принципиально не вывел разъём JTAG.
PVVX - где ваши возмущенные крики? А то как то тихо стало на форуме. Вы уж порадуйте нас :)
Там и написано - никакого JTAG, а отладка по считыванию переменных только на ходу, без остановки CPU! Научитесь читать внимательно, или только писать переводы PDF умеете?
Вам обязательно надо чтобы из платы торчали пины с подписями SWDIO? А SWM (Telink Swire Master) c SWS (Telink Swire Slave) не катит? :)
 
Сверху Снизу