Jump to content

    

Кто виноват и что делать?

Добрый день.

У меня есть плата с Bluetooth модулем от Mitsumi WML-C40 со встроенным UARTом. В ПК торчит другой Bluetooth. Для отладки подключаю WML к компу через встроенный в нем UART и посылаю в него через терминал цепочку символов.WML принимает данные и автоматически отправляет их в Bluetooth ПК.На другом терминале смотрю,что принял Bluetooth ПК и ...

НЕ доходят несколько начальных символов цепочки!!! А остальное отображается как надо.

 

ПК терминал1 -> WML UART_RX -> WML Bluetooth -> ПК Bluetooth -> ПК терминал2 - теряет символы

ПК терминал2 -> ПК Bluetooth -> WML Bluetooth -> WML UART_TX -> ПК терминал1 - не теряет символы

 

Как я понимаю, вот так должно работать

 
(void) StreamConnect(StreamUartSource(), ((SPP_CONNECT_CFM_T*)message)->sink);
(void) StreamConnect(StreamSourceFromSink(((SPP_CONNECT_CFM_T*)message)->sink), StreamUartSink());

 

Но не работает!

 

Так в чем может быть дело? Кто нибудь сталкивался с такой проблемой? Это баг BlueLab или всё же что-то с WML-C40? Или я что-то не дописал?

 

Заранее благодарю за любые идеи и помощь.

Share this post


Link to post
Share on other sites

Ура-а-а! Победа! :biggrin:

Всему виной 2 бага:

1. В BlueLab 3.2 B-11639 When using the raw transport, it was possible for a burst of data arriving on the

UART to be ignored if it had a particular timing and no further data was ever

received. This no longer occurs. Поставил BlueLab 3.5.2

2. Я пользовался терминалом TereTerm. Он теряет символы. Виндовским терминалом всё без проблем.

 

Так что вопрос закрыт

Share this post


Link to post
Share on other sites
Ура-а-а! Победа! :biggrin:

Всему виной 2 бага:

1. В BlueLab 3.2 B-11639 When using the raw transport, it was possible for a burst of data arriving on the

UART to be ignored if it had a particular timing and no further data was ever

received. This no longer occurs. Поставил BlueLab 3.5.2

2. Я пользовался терминалом TereTerm. Он теряет символы. Виндовским терминалом всё без проблем.

 

Так что вопрос закрыт

 

Приветствую! Реализовал SPP на BlueLab 2.8 шил WML-20 а потом WML-30 все нормально, сейчас привезли WML-40 и вот он отказывается шиться blueflash'ом. Может кто знает в чем дело ?

Share this post


Link to post
Share on other sites

Возможно у него Reset имеет другую полярность.

Share this post


Link to post
Share on other sites

Ура-а-а! Победа! :biggrin:

Всему виной 2 бага:

1. В BlueLab 3.2 B-11639 When using the raw transport, it was possible for a burst of data arriving on the

UART to be ignored if it had a particular timing and no further data was ever

received. This no longer occurs. Поставил BlueLab 3.5.2

2. Я пользовался терминалом TereTerm. Он теряет символы. Виндовским терминалом всё без проблем.

 

Так что вопрос закрыт

 

Приветствую! Реализовал SPP на BlueLab 2.8 шил WML-20 а потом WML-30 все нормально, сейчас привезли WML-40 и вот он отказывается шиться blueflash'ом. Может кто знает в чем дело ?

 

Reset там вообще не нужен, оторви от шлейфа его :)

Share this post


Link to post
Share on other sites
Reset там вообще не нужен, оторви от шлейфа его :)

 

Т.е. дело не в BlueLab'e ?

Share this post


Link to post
Share on other sites

 

Reset там вообще не нужен, оторви от шлейфа его :)

 

Т.е. дело не в BlueLab'e ?

 

Я думаю, что да. Я прошивал WML-C40 загнув ножку Reset на шлейфе <=> Reset в WML ни к чему не подключен. Попробуй, должно получиться.

Share this post


Link to post
Share on other sites

 

Я думаю, что да. Я прошивал WML-C40 загнув ножку Reset на шлейфе <=> Reset в WML ни к чему не подключен. Попробуй, должно получиться.

 

Спасибо! Действительно запрограммировал, правда потом модуль не запустился. Сейчас завален работой буду разбираться позже, огромное спасибо.

Share this post


Link to post
Share on other sites

 

Я думаю, что да. Я прошивал WML-C40 загнув ножку Reset на шлейфе <=> Reset в WML ни к чему не подключен. Попробуй, должно получиться.

 

Спасибо! Действительно запрограммировал, правда потом модуль не запустился. Сейчас завален работой буду разбираться позже, огромное спасибо.

 

Модуль не запускается, когда включена отладка с выводом каких-либо значений на терминал BlueLab, если,конечно, нет ошибок в самой программе.Т.е.когда используется в программе printf, то модуль будет работать только через BlueLab, а отдельно не будет. Сам с этим просидел приличное время, не понимая что не работает.

Share this post


Link to post
Share on other sites
Модуль не запускается, когда включена отладка с выводом каких-либо значений на терминал BlueLab, если,конечно, нет ошибок в самой программе.Т.е.когда используется в программе printf, то модуль будет работать только через BlueLab, а отдельно не будет. Сам с этим просидел приличное время, не понимая что не работает.

Для этих целей CSR придумал BCSP

Share this post


Link to post
Share on other sites

Модуль не запускается, когда включена отладка с выводом каких-либо значений на терминал BlueLab, если,конечно, нет ошибок в самой программе.Т.е.когда используется в программе printf, то модуль будет работать только через BlueLab, а отдельно не будет. Сам с этим просидел приличное время, не понимая что не работает.

Для этих целей CSR придумал BCSP

Для каких этих целей? И у меня модуль NH - поддерживается только H4 UART. Не понил :blink:

Share this post


Link to post
Share on other sites
Для каких этих целей? И у меня модуль NH - поддерживается только H4 UART. Не понил :blink:

Есть такой набор утилит BlueSuite от CSR. Используя программку PSTool.exe нажно поменять ключ PSKEY_HOST_TRANSPORT на "UART running over BCSP"

Share this post


Link to post
Share on other sites

Есть такой набор утилит BlueSuite от CSR. Используя программку PSTool.exe нажно поменять ключ PSKEY_HOST_TRANSPORT на "UART running over BCSP"

А почему,если этот ключ не установлен в "UART running over BCSP" и я использую printf, из-за этого не должен запускаться модуль? Данные у меня raw, vm access to UART. T.e. по UART_TX, UART_RX я принимаю и отправляю сырые данные и мне это и нужно.

PSKEY_HOST_TRANSPORT - Этот ключ нужен, чтобы данные, передаваемые по SPI_MISO и SPI_MOSI, передавались используя протокол BCSP, а на UART_RX TX это не отразится и модуль будет работать без BlueLab? Так что ли ? Что-то я не понял. Или мы говорим про разные вещи?

Share this post


Link to post
Share on other sites
А почему,если этот ключ не установлен в "UART running over BCSP" и я использую printf, из-за этого не должен запускаться модуль? Данные у меня raw, vm access to UART. T.e. по UART_TX, UART_RX я принимаю и отправляю сырые данные и мне это и нужно.

PSKEY_HOST_TRANSPORT - Этот ключ нужен, чтобы данные, передаваемые по SPI_MISO и SPI_MOSI, передавались используя протокол BCSP, а на UART_RX TX это не отразится и модуль будет работать без BlueLab? Так что ли ? Что-то я не понял. Или мы говорим про разные вещи?

BlueLab applications have access to 16 channels for debug output (numbered 0 through 15.) They can output diagnostic messages to these using several functions:

 

* printf and putchar from the standard library.

* cprintf, also from the standard library.

* VmPutChar, as described in the vm library.

* PRINT and CPRINT from the print library.

 

printf and putchar always use channel 0, while cprintf takes the channel number as its first argument. All of these routines eventually call VmPutChar which sends a single character to a designated debug channel. Channels can be selectively disabled using the VmPutCharControl function from the vm library.

 

When running under the debugger these channels are displayed in the Output and Stream tabs at the bottom of the main window. When running on-chip they are sent through a reserved part of BCSP channel 13 (which does not conflict with the host library) and can be displayed using an application like vmSpy.

 

Note: An application running on-chip which uses the debug channels will be stopped until a suitable host application is running.

 

Because of this we recommend that debug diagnostics should be removed from all shipping versions of BlueLab applications. The easiest way of ensuring this is to produce diagnostics using only the macros defined in the print library since these are controlled by the DEBUG_PRINT_ENABLED macro.

Share this post


Link to post
Share on other sites

Ну теперь всё ясно. Спасибо. А ты не мог бы выложить документ, где это написано или ссылку?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this