数据传输完整性

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

你好
我正在使用SPS示例来通过UART将数据从串行设备传送到DA14580,并通过BLE到另一个DA14580(带主机_SPS),然后通过UART到PC中的终端
我有一个数据完整性问题-这是我在终端中得到的(它只是流的一小部分,但交换是沿着数据流积累的):
77 00 F1 03 00 84 03 B2 07
78 80 17 F2 03 00 84 03 B2 07
79 00 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

正如你所看到的,我在一些字符中得到一个字符交换
随着“8”(8“(在Binari中的一个势略)掉了交换,只有一点 - ”0“:00110000,“8”:00111000)
但是一些字符完全不同(“7”和“F”00110111,01000110)
我甚至试图将传输速率降低到100kbit/s,但它仍然在发生
有什么问题?

TNX.

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

嗨roinovi,

我能想到的唯一的情况,这可能发生是由于一个未修剪的晶体。水晶微调值是由软件提供的,是一个通用的值,大多数时候与所有晶体一起工作。尽管这应该发生在uart字节传输的结束位。你在使用DSPS android或iOS应用程序时遇到同样的问题吗?除此之外,我们没有观察到任何类似的情况。

由于MT_dialog

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

你好
我在DSPS ios/android应用程序也有这个问题
此外,还有一些数据块根本没有被传输(不管我使用的是什么板-murata或对话)。
我看到它有问题的问题是“00”。
有时它不会转移值“00”,有时它不会转移2“00”之间的数据
E.G“13 23 54 67 54 00 ED H5 3E 67 00 8G AD DD”
它不会转移“00 ED H5 3E 67 00”
就像这样"13 23 54 67 54 8g AD dd"
会是什么呢?
也许发送代码里有什么?
这真的是一个问题,因为如果我的数据无法正确传输,我无法使用此BLE模块
TNX.

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

嗨roinovi,

我们至少在对话的套件上观察到数据完整性的任何问题,这是由于错误的晶体值发生的唯一时机。您是否尝试过DSP应用程序上的任何其他配置,如拆卸睡眠或将HW更改为SW流量控制。我刚刚在Android上测试了Per Patern和DSPS应用程序,并用新的下载FW所有数据似乎转移OK。DSP设备上的配置在延长睡眠和HW流控制中,具有适当的Pro套件的硬件修改。

由于MT_dialog

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

你好
我试过消除睡眠,但还是一样
如何禁用睡眠?
现在我拍摄了默认的SPS_DEVICE并将其刻录到DA14580对话框EVKT-B(因此Crystal Value应该是OK)
我没有做任何改变的代码和现象,我得到的是相同的,一些特定的字符正在交换
例如
0A 0D 36 00 F0 55 00 00 90 DC 01 00 30 63 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0a 0d 37 00 d8 59 00 00 78 e0 01 00 18 67 83 00 dc 05 dc 05 dc 05 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 fe 000 000 000 000 000 fc
0a 0d 38 00 c0 5d 00 00 60 e4 01 00 00 6b 03 00 dc 05 dc 05 dc 05 dc 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 80 FF
8A0D 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 01 80 FF
0a 0d 3a 00 90 65 000 00 00 00 ec 01 00 d0 72 03 00 dc 05 dc 05 dc 05 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 80 ff 00 01 000 ff
0a 0d 3b 00 78 69 000 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 ff 00 01 00 ff

这个0-> 8交换发生了一段时间

这也会发生(应该都是21岁,但是你可以看到一个“而不是2)
21”一个1 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一个1 21”一个1 21

可能更多,但我不知道所以你明白为什么它是一个大问题
可能是因为我通过UART接收数据并同时通过BLE发送吗?

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

你好
我在论坛上看到另一个帖子,和我的一样,数据不传输ok:
http://support.dialog-semicondiondiondimicon.com/dsps-hardware-flow-control-0.

你也没有给他答复
你能帮我想个办法解决这个问题吗
谢谢你!

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

嗨roinovi,

您提到的帖子中的客户正在使用外部处理器通过DSP发送数据,当使用外部Proccelsor时,事情更复杂,并且截断他遇到的截断可能是由于他自己的ProCcessor或程序的错误,我们可以试验。

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

由于MT_dialog

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

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

void app_ble_pull(void)

静态uint8_t rounds_waiting = 0;
int read_amount;

如果(tx_busy_flag == 0 && ble_flags。txAllowed = = TRUE)

read_amount = app_item_count(&uarttoble_buffer);

if((*(uarttoble_buffer.data_ptr + uarttoble_buffer.readidx))== 253)
如果((* (uarttoble_buffer。data_ptr + uarttoble_buffer. readiddx +1)) == 170)

// if(read_amount> = tx_wait_level ||(rounds_waiting ++)> = tx_wait_rounds)缓冲区 - > data_ptr + buffer-> readIdx
/ / {
// rounds_waiting = 0;
app_init_ble_tx ();
/ /}



但它不起作用,任何想法吗?
TNX.

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

嗨roinovi,

由于您正在使用外部MCU发送数据,因此MCU与580之间的UART时钟之间可能存在漂移,我认为您已经尝试降低波特率,问题仍然存在。您能用MCU和580之间的逻辑分析仪发送给我们捕获,故障交易有一个外观。还当您从Android发送并通过580或其他方式接收MCU上的数据时,您正在遇到问题?据我所知,我们在两侧转移数据时我们没有观察到任何毛刺。此外,据我所知,您可以对DSPS应用程序进行一些更改,您是否可以共享您发送给设备的更改和数据模式?

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

void app_ble_pull(void)

静态uint8_t rounds_waiting = 0;
int read_amount;

如果(tx_busy_flag == 0 && ble_flags。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)

循环_waiting = 0;
app_init_ble_tx ();



由于MT_dialog

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

你好
1)我想看看问题是否在UART发送或BLE中,因此我将MCU的TX连接到EVKIT中的引脚4,我看到我的数据(来自MCU)通过UART完美地传输到EVKIT和终端,所以我不认为问题在于UART。
这是一块数据块,我通过UART到580周期性地发送每秒每秒发送给580:

55 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 3031 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 6263 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 7a 7b 7c 70 7f 80 81 82 83 84 80 8a 8b 82 80 80 80 80 91 80 94 9495 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 B2 B1 B2 B3 B4 B5 B6 B2 B8 BA BB BC BC BD是BF C0 C1 C2 C3 C4 C5 C6C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 DF E0 E1 E2 E3 E4 E5 E6 E2 E2 E9 EA EB ED EE EF F0 F1 F2 F2 F4 F5 F6 F7 F8F9 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 2A2B 2C 2D 2E 2F 30 31 32 33 34 36 37 38 39 3a 3a 3b 3c 3d 3e 3f 40 41 42 44 45 46 47 48 49 4a 4a 4a 4b 4C 4D 4E 4F 50 51 52 53 54 55 5C 57 58 52 50 50 5C 5D 52 5F 60 61 62 63 64 65 66 63 64 69 6A 6B 6B 6C 6D 6E 6F 70 60 71 72 73 74 75 7B 7C 79 79 7A 7B 7C 7C 7D图7E 7F 80 81 82 83 84 8A 8B 8C 8D 8E 8E 8E 8E 8E93 94 94 94 94 94 94 94 9C 9C 94 9C 9C 9S 9C 9S 9C 9S 9C 9C 9S 9CS A2 A1 A2 A2 A2 A4 A4 A5 A6 A8 A8 A9 AA AB AC AD AE AFB0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD是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 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 >>>对话框580 --- BLE >>> Murata P2ML3656 --- UART >>> PC(终端)
i have also saw the glitches when i recieved the data to the dsps app on ios and android (so i dont think its the changes i ve made in the sps_device which were only in the app_ble_pull in the ble transmition initiator if, e.g 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
#define rx_buffer_item_size(uint8_t)1 // **不要更改item_size **
#define rx_buffer_hwm(int)1190 // 70%
#define rx_buffer_lwm(int)510 // 30%

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

55 00 01 02 03 0485 06.87日08810 10 12 13 14 15 16 17 18 19 1b9C 1D.9E 1f 20 21 a2 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2fB0 31 32 33 36 36 37 38 39 39 3A 3C 3D 3E 3F C0 41 42 43 45 46 47 48 C9 4B 4B 4B 4C 4D 4E CF 50 51 52 53 54 50 5A 5B 5C 5C 5D 5E 5F 60 61(5C)52 6162 63 64 65 66 67 68 69 6A 6B 6C 6D EE 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 9394 95 96 97 98 99 9A 9B 9C 9D 9E 9C 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AF B0 B1 B2 B3 B4 B5 B6 B2 B2 BA BB BC BD是BF C0 C1 C2 C3 C4 C5C6 C7 C8 C9 Ca CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D2D9DE DB DC DD DF E5 E2 E2 E3 E4 E5 E6 E2 E8 E2 EE FF F0 F0 F2 F2 F4 F4 F5 F4 F5 F5 F5 F7F8 F9 FA FB FC FD FE FF 00 01 02 03 04 85 01 02 0D 02 0A 0B 0C 0D 0E 0F 10 11 12 9 9 9 9 9 9 9F 20 21 22 23 22 23 22 23 22 23 22 23 22 29图2A 2B 2C 2D AE 2F 30 31 32 33 34 35 36 B7 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 C9 4A 4B 4C 4D 4E 4F 50 51 52 D3 54 55 56 57 58 59 5A 5BDC 5D 5E 5F 60 61 62 63 64 65 E6 63 68 69 6A 6B 6C ED 6E 60 6F 70 71 F2 73 79 7A 7A 7B 7B 7C 7D 7A 7B 7B 7C 7D图7E 7F 80 81 82 83 84 8A 8B 8C 8D 8E 8E 8E 8E 8E93 94 94 94 94 94 94 94 9C 9C 94 9C 9C 9S 9C 9S 9C 9S 9C 9C 9S 9CS A2 A1 A2 A2 A2 A4 A4 A5 A6 A8 A8 A9 AA AB AC AD AE AFB0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD是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 DF E0 E1E2 E3 E4 E5 E6 E2 E2 EF F0 F1 F2 F3 F4 F5 FC FD FE FF 00 01 02 03 84 05 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 b9 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 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 0 b c d e 0 f 101112 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 A5 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 B8 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 C6 47 48 49 4A 4B 4C 4D CE 4F 50 51 52 53 54 55 56 57 58 59 DA 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 F1 72 73 74 75 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传输,所以我这样做:

if((uart_flags.txallowed == true)

但还是有小故障,

3)关于通过uart收集数据,直到一个特定的字符被接收,然后通过uart发送(你是正确的,这是我试图做的)
我尝试了你的困惑:
void app_ble_pull(void)

静态uint8_t rounds_waiting = 0;
int read_amount;

如果(tx_busy_flag == 0 && ble_flags。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)

循环_waiting = 0;
app_init_ble_tx ();



有用

TNX.

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

嗨MT,

我是代表投资回报率与以色列的对话情节联系。
我们真的需要你的帮助来解决这个不断出现的问题。
ROI仍然在他接收到BLE界面上的数据上获取故障。

他们将问题分离为以下情景:
MCU - >(UART) - > DA14580DEVKT-B - >(BLE) - > Murata Modue使用对话框
Roi描述了上述沟通中的故障。

几点需要考虑:
单片机,EFM32
使用内部MCU振荡器。
当测试超级终端到超级终端通过UART到BLE和返回UART没有发生故障。

如果您能想到解决方案,请建议。

谢谢提前

Tritech

附件:
MT_dialog
离线
最后看到:4个月4天前
工作人员
加入:2015-06-08 11:34
嗨roinovi,bendaa,

嗨roinovi,bendaa,

我们正在努力解决你的问题。当你说从超级终端到超级终端的测试时,你的意思是从pc到pc的连接没有发生事故?对于BLE传输期间的数据被更改,它不太可能,除了UART或代码中的逻辑错误,我看不出任何其他的可能。我们希望您能提供一个逻辑分析仪或一个示波器捕获的数据磁带580单片机和单片机580和0 xaa或0 x55为了检查UART在单片机的时钟也我们想提供一个获取与错误情况下为了弄明白。

由于MT_dialog

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

是的,我的意思是,从个人电脑到个人电脑,这种情况不会发生。
此外,正如我之前说的,我想看看问题是uart则多所以我连接单片机的tx销4 evkit(也是uart rx)和我看到我的数据(单片机)转让完全通过uart evkit和终端。那它还会是uart问题吗?
可能是SPS代码里的东西吗?也许是管理缓冲区中的数据?

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

MT_dialog
离线
最后看到:4个月4天前
工作人员
加入:2015-06-08 11: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年11个月前
加入:2015-11-04 18:11
你好

你好
我试图将我的MCU的UART率降低到38400,并一直传输数据(UART BLE UART)
在115200年,翻转位发生的原因是什么?
有什么可以做的吗?

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

嗨roinovi,

我虽然你试图降低波特率,但在这种情况下,事件仍然发生了原因,这就是为什么我想要检查MCU的数据率,是580 UART无法达到115200率,580的实际波特率约为111111.111,无法跟上您的外部MCU,因此每一次和一段时间延迟数据,您可以获得此翻转位事件。

由于MT_dialog

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

还有其他模块可以实现115k uart吗?
580的最高速率是多少?

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

嗨roinovi,

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

由于MT_dialog

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

你好
如果我把580模块连接到一个32kHz的外部晶体,我能得到更准确的波特率吗?
更接近115200标准?

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

嗨roinovi,

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

由于MT_dialog