|
|
  |
Bluetooth чип от фирмы CSR, Кто-нибудь использует BlueCore-4? |
|
|
|
Aug 9 2016, 15:38
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 8-08-16
Пользователь №: 92 884

|
Цитата(Bosicc @ Feb 26 2007, 03:41)  1. Качал с сайта CSR2. Есть почти все прошивши с сайта. Точно не проверял, но перекачал помоему все. Просто пока ты не запросишь доступ к закрытым разделам, ты не увидишь прошивки. Я это понял после одного месяца страданий и штурма ихнего суппорта  3. Пока доступ в "Свои" я не получил, может Ваше ходатайство ускорит процес.  Как получу, выложу все что есть ( Описание чипов, прошивки ) Есть ли среди них прошивка Аналогичная, как на HC-06,"Linvor",только , чтобы можно было работать на скорости 1200, 1 стоп бит, четность even, биты данных 7, режим мастера не нужен. Если есть, скинь пожалуйста на bassizlink@mail.ru, очень нужно. Прошивка на HC-06 "Linvor" полностью устраивает, кроме того, что после перехода в режим even, биты дынных остаются равным 8, а нужно 7.Я честно говоря не профессионал, просто пытаюсь совместить хобби с работой.Есть ли смысл углубляться из за этого в BlueLab и на сколько я понимаю в C, из за этого.Есть ли возможность модифицировать прошивку, если да то где брать исходники?Стоит ли овчинка выделки?
|
|
|
|
|
Aug 9 2016, 19:53
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 8-08-16
Пользователь №: 92 884

|
Цитата(uriy @ Aug 9 2016, 19:05)  Я бы поставил внешний MCU. В Bluelab работать пробовал, была беда с документацией на API. Но это была Bluelab 4 и было это лет 5 назад. Зашивал тогда чип через LPT. USB кабель стоил очень дорого. Сейчас уже и LPT не найдешь. Может что-то изменилось. На сколько реально изменить родную прошивку? Цитата(uriy @ Aug 9 2016, 19:05)  Я бы поставил внешний MCU. В Bluelab работать пробовал, была беда с документацией на API. Но это была Bluelab 4 и было это лет 5 назад. Зашивал тогда чип через LPT. USB кабель стоил очень дорого. Сейчас уже и LPT не найдешь. Может что-то изменилось. Мне нужно знать, можно ли снять Dump flash памяти, закинуть его в IDE, отредактировав прошивку залить обратно?Если да, то попробую освоить программирование микроконтроллеров и BlueLab. Цитата(uriy @ Aug 9 2016, 19:05)  Я бы поставил внешний MCU. В Bluelab работать пробовал, была беда с документацией на API. Но это была Bluelab 4 и было это лет 5 назад. Зашивал тогда чип через LPT. USB кабель стоил очень дорого. Сейчас уже и LPT не найдешь. Может что-то изменилось. К Сожалению в моем случае размеры имеют значение. Цитата(uriy @ Aug 9 2016, 19:05)  Я бы поставил внешний MCU. В Bluelab работать пробовал, была беда с документацией на API. Но это была Bluelab 4 и было это лет 5 назад. Зашивал тогда чип через LPT. USB кабель стоил очень дорого. Сейчас уже и LPT не найдешь. Может что-то изменилось. Шью по LPT, через интерфейс ISP.
Сообщение отредактировал bassizlink - Aug 9 2016, 19:53
|
|
|
|
|
Aug 10 2016, 06:26
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 8-08-16
Пользователь №: 92 884

|
Цитата(uriy @ Aug 10 2016, 05:01)  В комплекте с Bluelab был какой-то прошивальщик, помнится он и дамп умеет читать. Как он назывался я уже не помню, BlueFlash, BlueFlasher. Это было всего лишь диалоговое окно с несколькими кнопками и путями к файлам. Но как потом этот дамп дизасемблировать я не знаю. Судя по всему вам нужно то всего лишь изменить несколько байт там где происходит инициализация UART? Как найти это место понятия не имею. Была еще утилита PStool кажется называлась, она меняла во флешке некоторые параметры. Наверно среди этих параметров может быть и настройка UART. В таком подходе прошивка считывает параметры из этой области и использует их для инициализации.
Не желаете на BLE перейти? У меня очень хорошие впечатления от NRF51822. У них уже есть готовый пример для вас ble_app_uart. Программу для снятия дампа памяти знаю, сделать это практически смогу. В PStool все очевидные для меня настройки связанные с инициализацией UART не дают возможность это сделать. Я к сожалению не специалист по программированию микроконтроллеров, но исходя из моего опыта, я тоже склоняюсь к тому, что это должно быть довольно таки просто, если есть опыт в этом направлении и исходный код.Задал вопрос в тех поддержку производителю, с просьбой изменить прошивку, но пока молчат. С дизассемблированием мне также мало чего известно, но возможно в крайнем случае придется заняться изучением.
|
|
|
|
|
Aug 10 2016, 09:23
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 8-08-16
Пользователь №: 92 884

|
Цитата(bassizlink @ Aug 10 2016, 06:26)  Программу для снятия дампа памяти знаю, сделать это практически смогу. В PStool все очевидные для меня настройки связанные с инициализацией UART не дают возможность это сделать. Я к сожалению не специалист по программированию микроконтроллеров, но исходя из моего опыта, я тоже склоняюсь к тому, что это должно быть довольно таки просто, если есть опыт в этом направлении и исходный код.Задал вопрос в тех поддержку производителю, с просьбой изменить прошивку, но пока молчат. С дизассемблированием мне также мало чего известно, но возможно в крайнем случае придется заняться изучением. Для меня не критично энергопотребление, но очень волнует совместимость с классическим блютус и обратная совместимость со старыми устройствами. У меня уже есть парочка BLE модулей, но из всех моих девайсов его видит лишь телефон на Android 4.1, с блютусом 4.0, да и то отказывается работать, так как поддержка BLE только с версии Android 5.0. Поэтому я как-то с опаской отношусь к подобным.
Сообщение отредактировал bassizlink - Aug 10 2016, 09:24
|
|
|
|
|
Aug 10 2016, 10:27
|

Гуру
     
Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606

|
Вспомнил полезную для вас вещь. В примерах у Bluelab есть spp_dev_a и spp_dev_b. dev_a соединяется с dev_b вроде они создавали прозрачный uart. Вам надо только указать свои параметры uart и зашить это в чип. Но в исходниках не вижу настройки uart. Не знаю как понимать следующие строчки в коде. #ifndef NO_UART_CHECK /* Make sure Uart has been successfully initialised before running */ if (StreamUartSource()) #endif А USB отладчики дешевые похоже уже сделали http://www.ebay.com/itm/USB-SPI-debugger-p...0MAAOSwzgRW1sNG
|
|
|
|
|
Aug 10 2016, 10:50
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 8-08-16
Пользователь №: 92 884

|
Цитата(uriy @ Aug 10 2016, 10:27)  Вспомнил полезную для вас вещь. В примерах у Bluelab есть spp_dev_a и spp_dev_b. dev_a соединяется с dev_b вроде они создавали прозрачный uart. Вам надо только указать свои параметры uart и зашить это в чип. Но в исходниках не вижу настройки uart. Не знаю как понимать следующие строчки в коде. #ifndef NO_UART_CHECK /* Make sure Uart has been successfully initialised before running */ if (StreamUartSource()) #endif А USB отладчики дешевые похоже уже сделали http://www.ebay.com/itm/USB-SPI-debugger-p...0MAAOSwzgRW1sNGЯ так понимаю это проверка, заданы ли настройки UART. Если заданы, то должно что-то выполняться в блоке If. В противном случае ничего не выполняется.
Сообщение отредактировал l1l1l1 - Aug 16 2016, 22:30
|
|
|
|
|
Aug 10 2016, 19:50
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 8-08-16
Пользователь №: 92 884

|
Цитата(uriy @ Aug 10 2016, 10:27)  Вспомнил полезную для вас вещь. В примерах у Bluelab есть spp_dev_a и spp_dev_b. dev_a соединяется с dev_b вроде они создавали прозрачный uart. Вам надо только указать свои параметры uart и зашить это в чип. Но в исходниках не вижу настройки uart. Не знаю как понимать следующие строчки в коде. #ifndef NO_UART_CHECK /* Make sure Uart has been successfully initialised before running */ if (StreamUartSource()) #endif А USB отладчики дешевые похоже уже сделали http://www.ebay.com/itm/USB-SPI-debugger-p...0MAAOSwzgRW1sNGНашел две интересные вещи: транспорт LPT1 в BlueLab b Цитата(uriy @ Aug 10 2016, 10:27)  Вспомнил полезную для вас вещь. В примерах у Bluelab есть spp_dev_a и spp_dev_b. dev_a соединяется с dev_b вроде они создавали прозрачный uart. Вам надо только указать свои параметры uart и зашить это в чип. Но в исходниках не вижу настройки uart. Не знаю как понимать следующие строчки в коде. #ifndef NO_UART_CHECK /* Make sure Uart has been successfully initialised before running */ if (StreamUartSource()) #endif А USB отладчики дешевые похоже уже сделали http://www.ebay.com/itm/USB-SPI-debugger-p...0MAAOSwzgRW1sNGНашел две интересные вещи: транспорт LPT1 в BlueLab и в библиотеках SPP , участок кода отвечающий за инициализацию.Вообщем я так понял, что там ничего готового нет, надо изучать структуру проекта,С++ или С пока не понял, как компилировать и отлаживать все это дело, изучать библиотеки.Хотя возникла мысль создать rs 232 ,блютус адаптер с маленьким экранчиком и двумя кнопками для настройки. DESCRIPTION This function is called to initialise the RFCOMM configuration parameters Values hard coded to avoid exposing rfcomm prim */ static void initConfigParams(rfcomm_config_params *config) { config->break_signal = 0; config->modem_status = 0; config->timeout = D_SEC(DEFAULT_RFCOMM_CONNECTION_TIMEOUT); config->request = TRUE; config->port_params.port_speed = 0xFF; config->port_params.data_bits = 0x03; config->port_params.stop_bits = 0x00; config->port_params.parity = 0x01; config->port_params.parity_type = 0x00; config->port_params.flow_ctrl_mask = 0; config->port_params.xon = 0x11; config->port_params.xoff = 0x13; config->port_params.parameter_mask = 0x3F7F; }
Сообщение отредактировал bassizlink - Aug 10 2016, 19:53
|
|
|
|
|
Aug 11 2016, 16:55
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 8-08-16
Пользователь №: 92 884

|
Цитата(uriy @ Aug 11 2016, 06:06)  Собственно похоже на ту же историю что и было у меня. Есть какие-то исходники и они работают, но описания на API нет. Как например понимать 0xFF и 0x03 в этих полях config->port_params.port_speed = 0xFF; config->port_params.data_bits = 0x03; Может все просто в шестнадцатеричной системе счисления или ссылка на константу?
Сообщение отредактировал l1l1l1 - Aug 16 2016, 22:18
Прикрепленные изображения
|
|
|
|
|
Aug 12 2016, 07:38
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 8-08-16
Пользователь №: 92 884

|
Цитата(uriy @ Aug 12 2016, 05:52)  Понятно что в шестнадцатеричной, вы можете однозначно сказать какая это скорость 0xFF? Мне это ни о чем не говорит. Я не очень понимаю в низкоуровневом программировании, но посмотрите в документ CS_101499_UGP2_an_introductiontoBlueLab.pdf, на странице 6 есть изображение. В нем видно, что 0x400 это адрес памяти. По всей видимости где-то в библиотеках зашиты стандартные значения настроек UART. http://www.atmega8.ru/wiki/view/doc.17.html пример для микроконтроллера атмега8. В общем для начала поизучаю программирование микроконтроллеров на С, для начинающих. Есть доля непонимания с моей стороны, то есть мы разговариваем на разных уровнях знаний.
Сообщение отредактировал l1l1l1 - Aug 16 2016, 22:28
|
|
|
|
|
Aug 15 2016, 08:56
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 8-08-16
Пользователь №: 92 884

|
Цитата(uriy @ Aug 12 2016, 05:52)  Понятно что в шестнадцатеричной, вы можете однозначно сказать какая это скорость 0xFF? Мне это ни о чем не говорит.
В pdf вижу только два файла в который могло встретится что-то о настройке uart. Но этого я в них не вижу. Здесь https://geektimes.ru/post/256902/ статья на русском.
Сообщение отредактировал bassizlink - Aug 15 2016, 13:59
|
|
|
|
|
Aug 18 2016, 21:07
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 8-08-16
Пользователь №: 92 884

|
Цитата(bassizlink @ Aug 15 2016, 09:56)  Начал изучать программирование микроконтроллеров. Сделал для себя вывод, что скорость UART изменяется делителем частоты.Интуитивно понял, что копать надо в datasheet на BC417143B микросхемы.Там нашел формулу 9600 бод * 0.004096 = DEC39 = 0x27. То есть 0xFF =DEC 255 , 255/0.004096= 62200 бод.
Сообщение отредактировал bassizlink - Aug 18 2016, 21:08
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|