微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > CC2530 串口波特率修改

CC2530 串口波特率修改

时间:10-02 整理:3721RD 点击:

你好,想请教个问题:

我用的是ZStack-Lighting_Kit (http://processors.wiki.ti.com/index.php/ZStack-Lighting_Kit)
IAR Assembler for 8051 (8.30.2)
目标工程是Texas Instruments\Z-Stack Lighting 1.0.2\Projects\zstack\ZLL\SampleApp\CC253x\SampleApp.eww
在ZLLRC工程的基础上,做了实验板出来,开出了串口0(原来P0_2,P0_3是用作按键),将
Texas Instruments\ZStack-CC2530-2.5.1a\Projects\zstack\Utilities\SerialApp\CC2530DB\SerialApp.eww工程的串口部分移植SampleApp.eww中去,在波特率38400上串口能够成功收发。但是由于要兼容公司老产品,串口波特率需要工作在1200上,可是看到手册里面最低只写到了2400 ,我按照网上一些网友的经验资料,改到了2400,会出现丢码的情况。

主要改动如下:
hal_board_cfg.h文件串口部分也做了相应的修改。将SerialApp.c和.h文件拷贝过来。
SerialApp.c文件中将#define SERIAL_APP_BAUD HAL_UART_BR_38400 改成了 HAL_UART_BR_2400//HAL_UART_BR_1200
_hal_uart_dma.c文件(由Texas Instruments\Z-Stack Lighting 1.0.2\Components\hal\target\CC2530ARC目录下复制过来的)的HalUARTOpenDMA函数中,增加了HAL_UART_BR_2400和HAL_UART_BR_1200 的相关设置,
case HAL_UART_BR_1200:
UxGCR = 5;
dmaCfg.txTick = 274; //这里的值超出了txTick的数据类型范围uin8,暂时没想到怎么解决,
case HAL_UART_BR_2400:
UxGCR = 6;
dmaCfg.txTick = 137;
采用2400通信的时候,会出现丢码的情况,比如我讲26个字母一次传入,要么就是丢l或者k ,w或者x,有时候就干脆完全没反应,什么都不输出。

请问能不能够将2530串口的工作波特率射到1200上呢?需要如何修改才能实现?

你在2.5.1a协议栈的SerialApp工程里面,把baudrate改到2400,通信会出现问题吗?

刚测试过了,在SerialApp工程里设为2400,dmaCfg.txTick计算得136.5,取137(参考case HAL_UART_BR_9600:中注释部分的计算方法),通信同样会遇到问题,我输入“abcdefghijklmnopqrstuvwxyz ”,共27个字符(包括最后的空格),输出只有一个字母a,之后的都没有;要是把dmaCfg.txTick改为37(瞎改),回传少了两个字母(l或者k和w或者x),而且总是少两个。

case HAL_UART_BR_2400:
UxGCR = 6;
dmaCfg.txTick = 137;//37
break;

不知道是哪儿没有设置对?

能否单独搞一个UART的功能测试下,2400没问题的。

http://e2e.ti.com/support/wireless_connectivity/f/158/p/116784/414696.aspx#414696 

我在开发过程中也碰到这个问题,不知有没有解决2400bps不稳定问题,另外1200bps能否通讯。

你好,你的串口通讯的波特率1200和2400的实现了吗,怎么解决的?求指点,,,

请问1200的波特率能用了吗?我们现在一直没有设置成功。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top