2 posts / 0 new
Last post
dainty
Offline
Last seen:1 year 4 months ago
Joined:2014-01-24 09:33
高传输率

Hi! Dialog

我在DSPS应用开发中遇到以下问题:
1.UART传输率设定 230400bps 时, 必需将终端机速率设定为250000 或256000 bps才能正常传输资料,
但在1M bps时要如何处理? 因为终端机软体无法正常开启 DA14580DEVKT 的1M bps端口
2.若是想要在无线端传送资料速率高达500kbps 时,不知道使用DA14581有无机会?..据知它已经符合BLE 4.2 ,而BLE的传送速率最高可达近600kbps.
3.若是以DA14681进行DSPS的开发应用,不知道要如何进行?..不知道Dailog是否提供DA14681于DSPS方面的范例?..
(目前依Chip DA14580, DA14681分别使用SDK_5.0.3, SDK_1.0.8)

Keywords:
Device:
Qinjiny_Dialog
Offline
Last seen:4 weeks 1 day ago
Staff
Joined:2016-11-01 05:47
1. 580的UART波特率是由16M时钟生成的

1. 580的UART波特率是由16M时钟生成的,参考以下定义:

/// Divider for 921600 bits/s
//#define UART_BAUDRATE_921K6 tbd
/// Divider for 460800 bits/s
//#define UART_BAUDRATE_460K8 tbd
/// Divider for 230400 bits/s
//#define UART_BAUDRATE_230K4 tbd2
/// Divider for 115200 bits/s
#define UART_BAUDRATE_115K2 9 // = 16000000 / (16 * 115200), actual baud rate = 111111.111, error = -3.549%
/// Divider for 57600 bits/s
#定义UART_BAUDRATE_57K6 17 / / = 16000000 / (16* 57600), actual baud rate = 58823.529, error = 2.124%
/// Divider for 38400 bits/s
#define UART_BAUDRATE_38K4 26 // = 16000000 / (16 * 38400), actual baud rate = 38461.538, error = 0.16%
/// Divider for 28800 bits/s
#define UART_BAUDRATE_28K8 35 // = 16000000 / (16 * 28800), actual baud rate = 28571.429, error = -0.794%
/// Divider for 19200 bits/s
#define UART_BAUDRATE_19K2 52 // = 16000000 / (16 * 19200), actual baud rate = 19230.769, error = 0.16%
/// Divider for 9600 bits/s
#define UART_BAUDRATE_9K6 104 // = 16000000 / (16 * 9600), actual baud rate = 9615.385, error = 0.16%
/// Divider for 2400 bits/s
#define UART_BAUDRATE_2K4 417 // = 16000000 / (16 * 2400), actual baud rate = 2398.082, error = -0.08%

在设定为115200的时候已经存在3%左右的误差了,继续提高的话会影响传输质量,我们建议的最高波特率就是115200,默认也是这个

2. DSPS的传输效率可以参考下表(来自UM-B-038文档):

可以看到速率都达不到115200,与手机连接时速度会因为协议问题低于和14580连接的速度。如果不管UART部分,参考SDK3.0.10.1的 throughput_eval 透传速度测试工程,两个58x设备之间的速率也只有140kbps左右。实际应用中传输速率受到发送间隔,广播包大小,处理器活动等限制不能达到你了解的理论速度

3. 很抱歉目前我们并没有基于68X的DSPS工程