Показать сообщение отдельно
Старый 16.10.2019, 21:09   #8194 (permalink)
Завсегдатай
 
Регистрация: 11.07.2019
Сообщений: 335
Вы сказали Спасибо: 87
Поблагодарили 86 раз(а) в 48 сообщениях
Сказал(а) Фууу!: 3
Сказали Фууу! 0 раз(а) в 0 сообщениях
Откуда: Планета Земля
По умолчанию

Цитата:
Appnote на JMB-141 не изучал?
Может что-то полезное найдется.
Китайский PDF и перевод на английский в аттаче.
Когда в Китае начали делать клоны оригинального VAS5054, стал вопрос что делать с модулями bluetooth. В начале, когда были доступны оригинальные модули Amber Wireless AMB2300 (построенные на Bluetooth 2.0 чипе National Semiconductor LMX9830), никто не заморачивался и ставили оригинальные модули. Когда оригинальные модули закончились, некоторые изготовители клонов продолжили делать клоны AMB2300 на оригинальном чипе LMX9830 который даже в наши дни, доступен для заказа у Texas Instruments (которая в 2011 году купила National Semiconductor).
Но с целью удешевления себестоимости VAS5054, и в связи с тем, что появились более дешевые чипы CSR BC417, изготовители клонов решили пойти следующими путями:
1. Изготовить клон на бюджетном чипе BC417 со стандартной прошивкой компании CSR, засунув его под крышку с маркировкой AMB2300 (обманывая покупателей)
2. Использовать готовый модуль JBM141 компании WiMate (который построен на том же чипе BC417) и написать под него кастомную прошивку, которая будет эмулировать протокол LMX9830 и соответственно позволять пользоваться настройкой в EDICConfig.
3. Не прятать BC417 чип под крышку c наклейкой AMB2300, использовать стандартные BC04 модули (с BC417 на борту) и использовать стандартную прошивку чипа BC417 либо прошивку WiMate из п.2. Визуально это модули имеют 9+9 или 13+6+13 контактов.

Для того, чтоб реализовать эмуляцию прошивки в модулях из п.2 (такой модуль мне выслал SEG13), необходимо было посылать UART break, что делать штатными функциями API прошивка модулей BC417 не умеет. Поэтому ребята из компании WiMate, решили сделать ход конем - допаяли чип NXP 74HC00, реализовав таким образом возможность, подавать через него UART break (при помощи установки сигнала PIO6 на BC417 в низкое состояние) на RX Infineon.

Все было хорошо до тех пор, пока компания WiMate не обанкротилась и не исчезла с рынка вместе со своими JBM141 модулями.

На рынке остались модули из п.3, которые мы и получаем в адаптерах при покупке в наши дни.

Но! В модулях из п.3, прошивка внутри из модулей JBM141. Да-да вы читаете правильно, прошивки в ваших модулях позволяют заходить в настройки. Единственное чего, не хватает для работоспособности - это 74HC00. Не верите? Подайте питание через OBD2 разъем и мультиметром проверьте напряжение на PIO6. Получилось 3В? Прошивка вашего модуля от компании WiMate из п.2 :)

Все это время в моем модуле (у меня обычный модуль 13+6+13) была эта прошивка (ее кстати уже выкладывали
Для просмотра ссылок или изображений в данном разделе, у Вас должно быть не менее 15 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
), эта же прошивка и в модуле JBM141, который я получил от SEG13.

А теперь расскажу что случилось когда я нажал кнопку Reset to Defaults в EDICConfig. Дело в том, что BC417 чипы работают под управлением стандартной прошивки компании CSR (Cambridge Silicon Radio) которую в 2015 году купила компания Qualcomm. Эта стандартная прошивка поставляется в двух основных версиях 22x, и 23x. Где x-это буква ревизия прошивки. Прошивки 22x (2007 год) это bluetooth 2.0. Прошивки 23x (2009 год) стали выпускать после сертификации стандарта bluetooth 2.1 в августе 2007 года.

Стандартные прошивки 22x и 23x, позволяют запускать код написанный в среде разработки BlueLab, который в итоге встраивается в стандартную прошивку и выполняется в виртуальной машине, взаимодействуя с UART, bluetooth и т.д. через стандартный API компании CSR.
По мимо этого, стандартная прошивка содержит специальный раздел (что-то наподобие реестра в Windows), который содержит кучу параметров которые позволяют настраивать стандартную прошивку при помощи утилиты PSTool (сила передачи сигнала, имя bluetooth, скорость UART по умолчанию и множество других). Параметры настраиваемые PSTool не могут быть изменены из кода работающего в виртуальной машине. Но есть параметры PSKEY_USR1-PSKEY_USR49 доступ к которым у нее есть и в них хранит настройки прошивка WiMate.

Но так как писали прошивку люди, а люди могут ошибаться, функцию сброса реализовали с косяками, а именно, вместо того, чтобы сбросить параметр в котором храниться имя bluetooth на
// PSKEY_USR17
&029b = 0013 0056 0041 0053 0035 0030 0035 0034 0020 003c 0030 0038 0032 0031 0034 0035 0037 0032 0035 003e

они накосячили и в момент сброса, сбрасывают его на
// PSKEY_USR17
&029b = 0014 0056 0041 0053 0035 0030 0035 0034 0020 003c 0030 0038 0032 0031 0034 0035 0037 0032 0035 003e 0000 0000

Я поправил этот параметр и прошивка ожила.

Также как я уже раньше писал, то ли специально, то ли не разобравшись, товарищи из WiMate не реализовали управление PIO9 (PG6/LSTAT1). А так, в целом прошивка позволяет работать с настройками и использовать адаптер для работы.

Как я уже анонсировал, я написал прошивку (на базе прошивки из проекта EDIABAS, Deep OBD/SPP_UART 1.0 с поддержкой AT+CONF) и в отличии от WiMate она:
1. Не требует допайки 74HC00 (я умею посылать UART break программно)
2. Работает под прошивкой 23i (bluetooth 2.1)
3. Корректно управляет PIO9/PG6
4. Корректно сбрасывается на параметры по умолчанию (Reset to Defaults)

В данный момент я ее дорабатываю чтоб она поддерживала конфигурирование в режиме когда VAS5054 подключен к ПК по USB кабелю.

Последний раз редактировалось lprot; 16.10.2019 в 22:45..
lprot вне форума   Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо lprot за сообщение:
Andreii93 (16.10.2019), RV_ (18.10.2019), sidv (22.10.2019), СамДляСебя (16.10.2019)