SPS数据传输完整性

20个帖子/ 0个新
最后发表
roinovi
离线
最后看到:3年10个月前
加入:2015-11-04 18:11
SPS数据传输完整性

你好
我使用sps的例子,从一个串行设备通过uart传输数据到DA14580,通过ble传输到另一个DA14580(与host_sps),然后通过uart传输到PC中的终端
我有一个数据完整性问题-这是我在终端中得到的(它只是流的一小部分,但交换是沿着数据流进行的):
77 00 fb f1 03 00 84 03 b2 07
78 80 17 f2 03 00 84 03 b2 07
7900 ff f183 00 84 03 b2 07
FA 00 11 f2 03 00 84 03 b2 07
7b 00 ef f1 03 00 84 03 b2 07
7c 00 fb f1 03 00 84 03 b287

正如你所看到的,我在一些字符中进行了字符交换
有一些交换是将“0”替换为“8”(在二进制中只是一位-“0”:0011)0000, "8": 00111000)
但有些字符完全不同(“7”和“F”00110111,01000110)
我甚至试图降低传输速率到100kbit/s,但它仍然发生
会有什么问题呢?

tnx

设备:
MT_dialog
离线
最后看到:3个月1周前
工作人员
加入:2015-06-08 34
嗨roinovi,

嗨roinovi,

唯一的场合,我能想到,这可能发生是由于一个未修剪水晶。晶体修剪值是由软件提供的,是一个通用值,大多数时候适用于所有晶体。尽管这应该发生在uart字节传输的结束位。在使用DSPS android或iOS应用程序时,您是否遇到了同样的问题?除此之外,我们还没有观察到类似的现象。

由于MT_dialog

roinovi
离线
最后看到:3年10个月前
加入:2015-11-04 18:11
你好

你好
我在DSPS ios/android应用程序中也遇到了这个问题
此外,有大量的数据根本没有传输(不管我使用的板是murata还是dialog)。
我看到它有问题的数据是“00”。
有时它不传输值“00”有时它不传输2“00”之间的数据
例:13 23 54 67 54 400 Ed h5 3e 6700 8g AD dd
它不会转移“00 Ed h5 3e 6700”
它是这样的"13 23 54 67 54 8g AD dd"
会是什么呢?
也许是在发送代码中?
这真的是一个问题,因为如果我的数据不能正确传输,我就不能使用这个ble模块
tnx

MT_dialog
离线
最后看到:3个月1周前
工作人员
加入:2015-06-08 34
嗨roinovi,

嗨roinovi,

我们还没有观察到任何数据完整性问题,至少在dialog的套件中,唯一会发生这种情况的情况是由于错误的晶体值。你有没有尝试过DSPS应用程序上的其他配置,比如删除睡眠或将硬件流控制改为软件流控制。我刚刚用一个新下载的fw测试了你在pro板和android上的DSPS应用程序之间的模式,所有数据似乎都在传输。DSPS设备的配置是延长休眠和HW流量控制,并对pro套件的硬件进行了适当的修改。

由于MT_dialog

roinovi
离线
最后看到:3年10个月前
加入:2015-11-04 18:11
你好

你好
我试图删除睡眠,但它是一样的
我如何完全禁用睡眠?
现在我把默认的sps_device和燃烧它在da14580对话框evkt-b(所以水晶值应该是ok的)
我没有在代码中做任何改变,我得到的现象是一样的,一些特定的字符被交换了

0 0 d 36 00 F0 55 00 00 90直流30 63 03 01 00 00直流05直流05直流05 00 00 00 00 00 00 00 00 00 00 00 FE 00 00 00 FC
0 0 d 37 00 D8 59 00 00 78 E0 01 00 18 67 83 00直流05直流05直流05 00 00 00 00 00 00 00 00 00 00 00 FE 00 00 00 FC
0a 0d 38 00 c0 5d 00 00 60 e4 01 00 00 6b 03 00 dc 05 dc 05 dc 05 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 01 80 ff
80d 39 00 a8 61 00 00 48 e8 01 00 e8 6e 03 00 dc 05 dc 05 dc 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 01 80 ff
0a 0d 3a 00 90 65 00 00 30 ec 01 00 d0 72 03 00 dc 05 dc 05 dc 05 00 00 00 00 00 00 00 00 00 00 00 00 80 ff 00 01 00 ff
0a 0d 3b 00 78 69 00 00 18 f0 01 00 b8 76 03 00 dc 05 dc 05 dc 05 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 01 00 ff

这种0->8交换是偶尔发生的

这种情况也会发生(应该都是21岁,但你可以看到“一个“而不是
21”一个1 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 "一个1 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 "一个1 21 "一个1 21

可能还有更多,但我不知道,所以你明白为什么这是一个大问题
这可能是因为我同时通过uart接收数据和通过ble发送数据吗?

roinovi
离线
最后看到:3年10个月前
加入:2015-11-04 18:11
你好

你好
我在论坛上看到了另一个类似我的帖子,数据无法传输。
http://support.dialog-semiconductor.com/dsps-hardware-flow-control-0

你也没有给他答复
你能不能想个办法让我查一下来解决这个问题
谢谢你!

MT_dialog
离线
最后看到:3个月1周前
工作人员
加入:2015-06-08 34
嗨roinovi,

嗨roinovi,

你提到的帖子中的客户使用外部处理器通过DSPS发送数据,当使用外部处理器时,事情更复杂,他所经历的截断可能是由于他自己的处理器或程序的故障,我们无法测试。

除此之外,当DSPS作为演示使用时,它应该是开箱即用的,不需要任何修改。关于你的问题,我无法在iOS和android上复制它,或从pc到pc连接,我使用了基本和专业开发工具包,并与你所指示的系列同时发送数据。你能分享你的测试台架的确切设置,以防我遗漏了一些东西(开发工具包,sw设置,发送数据)吗?除此之外,因为你正在使用基本套件,你正在使用外部FTDI,你可以尝试另一个FTDI,以防给你带来任何麻烦吗?还要确保您在终端中使用了适当的设置(dsp不使用任何特殊设置,但要确保- HW/SW流控制,无论您在项目中设置了什么,都要在终端选项中设置,8位数据-无奇偶校验/1位停止位)。另外,几天后SDK5上的DSPS也将发布,您可以尝试更新的版本,并检查问题是否仍然存在。

由于MT_dialog

roinovi
离线
最后看到:3年10个月前
加入:2015-11-04 18:11
我的结构是这样的

我的结构是这样的
我的设备(mcu)通过uart(引脚4,7)传输数据到对话框14580 evkit, 14580将此数据传输到连接到PC(终端)的murata p2ml3656 evkit
在对话框-> sps_device上,在村田-> sps_host上
我的设备在115k2连续发送串行数据,因此对话框中的缓冲区满时,它通过ble发送数据
我认为故障发生时,对话框是通过ble传输,同时接收串行数据。
我试着每秒钟发送串行数据到对话框,然后通过ble发送到murata,没有故障,这就是为什么我认为它有一个问题,通过uart接收数据,同时通过ble发送数据
你知道这样的故障吗?
此外,我想通过ble发送数据只有当我达到某个字符串,我尝试修改

app_ble_pull (Void)

静态uint8_t rounds_waiting=0;
int read_amount;

如果(tx_busy_flag == 0 && ble_flags. If (tx_busy_flag == 0 &&txAllowed == TRUE)

Read_amount = app_item_count(&uarttoble_buffer);

如果((* (uarttoble_buffer。data_ptr + uarttoble_buffer. readaddx)) == 253)
如果((* (uarttoble_buffer。data_ptr + uarttoble_buffer. readaddx +1)) == 170)

// if (read_amount >= TX_WAIT_LEVEL || (rounds_waiting++) >= TX_WAIT_ROUNDS) buffer->data_ptr+buffer-> readaddx
/ / {
// rounds_waiting = 0;
app_init_ble_tx ();
/ /}



但这行不通,有什么想法吗?
tnx

MT_dialog
离线
最后看到:3个月1周前
工作人员
加入:2015-06-08 34
嗨roinovi,

嗨roinovi,

由于您使用外部MCU发送数据,您的MCU和580之间的UART时钟之间可能会有漂移,我认为您已经尝试降低波特率,但问题仍然存在。你能把你的MCU和有错误事务的580之间的逻辑分析仪的捕获发给我们吗?也当你从android发送数据并通过580或其他方式接收MCU上的数据时,你遇到了这个问题?到目前为止,我们还没有观察到双方在传输数据时出现任何故障。另外,据我所知,你对DSPS应用程序做了一些更改,你能分享这些更改和你发送到你的设备的数据模式吗?

关于你想做什么,我不太明白,所以我假设你想收集数据,直到收到一个特定的字符,请尝试在DSPS应用程序中使用下面的片段,这应该保持你的流,直到你按下“r”字符为例。

app_ble_pull (Void)

静态uint8_t rounds_waiting=0;
int read_amount;

如果(tx_busy_flag == 0 && ble_flags. If (tx_busy_flag == 0 &&txAllowed == TRUE)

If ((read_amount = app_item_count(&uarttoble_buffer)) > 0 & *(uarttoble_buffer.)data_ptr + uarttoble_buffer.writeIdx-1) == 'r')

if (read_amount >= TX_WAIT_LEVEL || (rounds_waiting++) >= TX_WAIT_ROUNDS)

Rounds_waiting = 0;
app_init_ble_tx ();



由于MT_dialog

roinovi
离线
最后看到:3年10个月前
加入:2015-11-04 18:11
你好

你好
1)我想看看问题是否在uart传输或ble,所以我将我的McU的tx连接到evkit中的引脚4,我看到我的数据(来自McU)通过uart完美地传输到evkit和终端,所以我认为问题不在uart。
这是我每秒钟定期从我的MCU通过uart发送到580的一个数据块:

55 00 01 02年03 04 05 06 07年08年09年0 0 0 b c 0 d e 0 f 10 11 12 13 14 15 16 17 18 19 1 1 1 b c 1 d e 1 f 20 21日22日23日24日25日26日27 28 29日2 2 b 2 c 2 d 2 e 2 f 30 31 32 33 34 35 36 37 38 39 3 3 3 b c 3 d 3 e 3 f 40 41 42 43 44 45 46 47 48 49 4 4 b 4 c d e 4 f 50 51 52 53 54 55 56 57 58 59 5 5 5 b c 5 d 5 e 5 f 60 61 62 63 64 65 66 67 68 69 6 6 b 6 c 6 d 6 e 6 f 70 71 72 73 74 75 76 77 78 79 7 7 b 7 c 7 d 7 e 7 f 80 81 82 83 84 85 86 87 88 89 8 8 8 b c 8 d 8 e 8 f 90 91 92 93 94 95 96 97 98 99 9 9 b 9 c 9 d 9 e 9 f A0 A1 A2 A3 A4 A5一个6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD AA

上面是从终端捕获的,同时将我的McU的tx连接到580上的引脚4,并在终端上收听580 uart com,数据传输完美。

2)我的设置是:我的MCU ---- uart>>> dialog 580- ble>>>murata p2ml3656- uart>>>pc(终端)
我也看到了故障,当我收到数据到ios和android上的DSPS应用程序(所以我不认为这是我在sps_device中所做的更改,这些更改只在ble传输启动器中的app_ble_pull中,例如if((read_amount = app_item_count(&uarttoble_buffer)) > 0 && *(uarttoble_buffer)。data_ptr + uarttoble_buffer.writeIdx-1) == 'r')

我还改变了缓冲区的大小,因为我需要在uarttoble_buffer中保留1536个字节,然后通过ble发送,以便在接收uart时不发送

#定义RX_BUFFER_ITEM_COUNT (int) 1700
#定义RX_BUFFER_ITEM_SIZE (uint8_t) 1 //**不改变item_size**
#定义RX_BUFFER_HWM (int) 1190 //70%
#定义RX_BUFFER_LWM (int) 510 //30%

这是我如何获得数据,同时通过ble传输它(此捕获来自终端):

55 00 01 02 03 0485 0687日0889 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b9C 1 d9E 1f 20 21 a2 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2fB35 0 31 32 33 34 36 37 38 39 3 3 3 b c 3 d 3 e 3 f C0 41 42 43 44 45 46 47 48 C9 4 4 b 4 c d e CF 50 51 52 53 54 55 56 D7 58 59 5 5 5 b c 5 d 5 e 5 f 60 61 62 63 64 65 66 67 68 69 6 6 b 6 c 6 d EE 6 f 70 71 72 73 74 75 76 77 78 79 7 7 b 7 c 7 d 7 e 7 f 80 81 82 83 84 85 86 87 88 89 8 8 8 b c 8 d 8 e 8 f 90 91 92 93 94 95 96 97 98 99 9 9 b 9 c 9 d 9 e 9 f A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC广告AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9英航BB BC BD是男朋友C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6D7 D8 D9 DA DB直流DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF 00 01 02年03 04 85 06 07年08年09年0 0 0 0 b c d e 0 f 10 11 12 13 94 15 16 17 18 19 9 1 b 1 c d 1 e 9 f 20 21日22日23日24 A5 26 27 28 29日2 2 b 2 c 2 d AE 2 f 30 31 32 33 34 35 36 B7 38 39 3 3 3 b c 3 d 3 e 3 f 40 41 42 43 44 45 46 47 48 C9 4 4 b 4 c d e 4 f 50 51 52 D3 54 55 56 57 58 59 5 5 5 b直流5 d e 5 f 60 61 62 63 64 65 6 E6 67 68 69 6 b 6 c ED 6 e 6 f F2 70 71 73 74 75 76 77 78 79 7 7 b 7 c 7 d7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF 00 01 02 03 84 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D9E 1f 20 21 22 23 24 25 26一个7 28 29日2 2 b 2 c 2 d 2 e 2 f 30 31 32 33 34 B5 36 B7 38 39 3 3 3 b c 3 d 3 e 3 f 40 41 42 43 44 45 46 47 48 49 4 CB 4 c d e 4 f 50 51 52 53 54 D5 56 57 58 59 5 5 5 b c 5 d 5 e 5 f 60 E1 62 63 64 65 66 67 68 6 E9 6 b 6 c 6 d 6 e 6 f 70 71 72 73 74 75 76 77 78 79 7 7 b 7 c 7 d 7 e 7 f 80 81 82 83 84 85 86 87 88 89 8 8 8 b c 8 d 8 e 8 f 90 91 92 93 94 95 96 97 98 99 9 9 b 9 c 9 d 9 e 9 f A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC广告AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9英航BB BC BD是男朋友C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CDCE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB直流DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF 00 01 02年03 04 05 86 07年08年09年0 0 0 b c 0 d e 0 f 10 11 12 13 14 15 16 17 18 19 1 1 1 b c 1 d e 1 f 20 21日22日23日24日A5 26 27 28 29日2 2 b 2 c 2 d 2 e 2 f 30 31 32 33 34 35 36 37 B8 39 3 3 3 b c 3 d 3 e 3 f 40 41 42 43 44 45 C6 47 48 49 4 4 b c d CE 4 f 50 51 52 53 54 55 56 57 58 59达5 b 5 c 5 d 5 e 5 f 60 61 62 63 64 65 66 67 68 69 6 6 b 6 c 6 d 6 e 6 f 70 F1 72 73 7475 76 77 78 79 7A FB 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 92 13 14 15 16 17 18 19 9A 1B 9C 1D 9E 1F A0 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E BF 40 C1 42 43 44 C5 46 C7 48 C9 4A CB 4C 4D 4E 4F 50 51 52 D3 54 55 56 57 58 59 5A DB 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 F9 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF 00 81 02 03 04 05 06 07 08 09 8A 0B 8C 0D 0E 0F 10 91 12 93 14 95 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 B3 34 35 36 37 38 39 3A 3B 3C BD 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F D0 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D DE 5F 60 61 62 63 64 65 66 67 68 69 6A 6B EC 6D EE 6F 70 71 72 73 74 F5 76 77 78 79 FA 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD AA

数据应该是升序的数字(从55开始),正如您所看到的那样,有一些故障
在二进制中,故障出现在第一位,例如:我得到的不是05,而是85,在二进制中是:10000101而不是00000101
1C和9C也一样:10011100而不是00011100等

我怀疑这是在ble和uart同时传输时发生的,这可能吗?
我试着只在没有uart传输时发送,所以我这样做了:

如果((uart_flags. If)txAllowed = = TRUE)

但还是有小故障,

3)关于通过uart收集数据,直到接收到特定字符,然后通过uart发送(你是正确的,这就是我正在尝试做的事情)
我尝试了你的建议:
app_ble_pull (Void)

静态uint8_t rounds_waiting=0;
int read_amount;

如果(tx_busy_flag == 0 && ble_flags. If (tx_busy_flag == 0 &&txAllowed == TRUE)

If ((read_amount = app_item_count(&uarttoble_buffer)) > 0 & *(uarttoble_buffer.)data_ptr + uarttoble_buffer.writeIdx-1) == 'r')

if (read_amount >= TX_WAIT_LEVEL || (rounds_waiting++) >= TX_WAIT_ROUNDS)

Rounds_waiting = 0;
app_init_ble_tx ();



它的工作原理

tnx

Bendaa
离线
最后看到:3年4个月前
加入:2014-01-12十五29
嗨太,

嗨太,

我是代表Roi作为Dialog在以色列的经销商联系您的。
我们真的需要你的帮助来解决这个不断拉屎的问题。
Roi通过BLE接口接收到的数据仍然出现故障。

他们把这个问题归结为以下情况:
MCU- >(UART)- >DA14580DEVKT-B- >(BLE)- >村田模块使用对话
Roi已经描述了上述通信中的故障。

需要考虑以下几点:
MCU - efm32
采用单片机内部振荡器。
当通过UART到BLE测试超级终端到超级终端并返回UART时,没有出现故障。

如果你能想出一个解决办法,请告诉我。

提前谢谢你

Tritech

附件:
MT_dialog
离线
最后看到:3个月1周前
工作人员
加入:2015-06-08 34
嗨,roinovi, Bendaa,

嗨,roinovi, Bendaa,

我们正在解决你的问题,试图解决这个问题。当你说从超级终端到超级终端的测试时,你的意思是从pc到pc的连接,事件没有发生?在BLE传输过程中,数据不太可能被改变,除了UART或代码中的逻辑错误之外,我看不出其他任何事情是可能的。我们希望您提供一个逻辑分析仪或示波器捕获,将数据从580传输到MCU,并从0xaa或0x55从MCU传输到580,以便检查MCU上UART的时钟,我们还希望提供一个带有错误情况的捕获,以便解决问题。

由于MT_dialog

roinovi
离线
最后看到:3年10个月前
加入:2015-11-04 18:11
是的,我是说从PC到PC

是的,我的意思是从PC到PC,这一事件没有发生。
此外,正如我之前所说,我想看看问题是否在uart传输,所以我将我的McU的tx连接到evkit(这也是uart rx)中的引脚4,我看到我的数据(来自McU)通过uart完美地传输到evkit和终端。所以这仍然是一个uart问题吗?
可以是SPS代码中的内容吗?也许是管理缓冲区中的数据?

当您尝试模拟这个问题时,尝试每秒传输1536字节(这是我的系统)

MT_dialog
离线
最后看到:3个月1周前
工作人员
加入:2015-06-08 34
嗨roinovi,

嗨roinovi,

我们不认为这是代码问题或你在代码中所做的更改,我们也不认为改变的缓冲区与此有关。我们认为这是你正在使用的MCU和580之间的时钟问题。所以,我们想要在前一篇文章中提到的捕捉来确保。翻转位听起来更像是一个时间或电气问题,如果是在代码中,我认为它应该发生在pc到pc连接。我尝试使用您上面提到的设置(更改定义)来模拟您的问题RX_BUFFER_ITEM_COUNT, RX_BUFFER_ITEM_SIZE, RX_BUFFER_HWM, RX_BUFFER_LWM在设备端,并发送您已经粘贴的确切数据)我还没有实现在两台pc连接上重现问题,我们没有你正在使用的外部MCU。

由于MT_dialog

roinovi
离线
最后看到:3年10个月前
加入:2015-11-04 18:11
你好

你好
我试图将我的McU的uart率降低到38400,数据一路传输正常(uart ble uart)
在115200中出现翻转位的原因是什么?
有什么可以做的吗?

MT_dialog
离线
最后看到:3个月1周前
工作人员
加入:2015-06-08 34
嗨roinovi,

嗨roinovi,

我虽然你已经试图降低传输速率和事故仍然发生,在这种情况下原因,,这就是为什么我想要检查你的单片机的数据速率,是580 uart不能达到115200年的增长率,580年的实际波特率约为111111.111,并不能跟上你外部的单片机,所以每隔一段时间采样数据的延迟,你得到这个翻转事件。

由于MT_dialog

roinovi
离线
最后看到:3年10个月前
加入:2015-11-04 18:11
还有其他模块吗

有没有其他模块可以达到115k uart?
580的最高费率是多少?

MT_dialog
离线
最后看到:3个月1周前
工作人员
加入:2015-06-08 34
嗨roinovi,

嗨roinovi,

在所有58x系列中,这是它可以达到115200标准的波特率。正如我在之前的文章中提到的,580可以达到的数据速率大约是111.111。请检查uart_sps.h,以查看如何计算580的确切波特率。

由于MT_dialog

roinovi
离线
最后看到:3年10个月前
加入:2015-11-04 18:11
你好

你好
如果我将580模块连接到32kHz的外部晶体,我是否能够获得更准确的波特率?
更接近115200标准?

MT_dialog
离线
最后看到:3个月1周前
工作人员
加入:2015-06-08 34
嗨roinovi,

嗨roinovi,

不,恐怕这不会改变任何事情,XTAL32只用于低功率时钟,而不是用于在UART中生成时钟。

由于MT_dialog