谷动谷力

 找回密码
 立即注册
查看: 1723|回复: 0
打印 上一主题 下一主题
收起左侧

NXP ZigBee 3.0 JN5169 & JN5189 协调器串口分离指南

[复制链接]
跳转到指定楼层
楼主
发表于 2022-11-25 23:05:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
NXP ZigBee 3.0 JN5169 & JN5189 协调器串口分离指南





一、 JN5169
1.1    硬件简介
NXP JN5169 芯片提供了 2 个 UART 外设,称之为 UART0 和 UART1,它们可以单独使能。这些 UART 兼容 16550,在高达 4Mbps 的可编程波特率下可以用于串行数据的输入/输出。在 JN5169 芯片上:
UART0 可以工作在 4 线模式(默认情况)或 2 线模式;
UART1 可以工作在 2 线模式(默认情况)或 1 线(仅发送)模式;
上面信号使用的默认引脚与 DIO 共用,如表 1-1 所示:
表 1-1:UART 信号使用的默认 DIO
信号
UART0 使用的 DIO
UART1 使用的 DIO
CTS
DIO4
-
RTS
DIO5
-
TxD
DIO6
DIO14
RxD
DIO7
DIO15


1.2 默认状态
我们在 NXP 官网上,下载的 JN5169 协调器代码中,串口默认状态是:串口 0 与上位机通信,串口 1 输出打印 Debug 信息。UART 中断服务函数在 irq.S 文件中注册,如图 1-2 所示。

1.3 更改 UART1 为上位机接口,UART0 为打印输出
1、置位 irq.S 中的 UART1 ,如下:
PIC_ChannelPriorities:
    .byte 0                 # pwm1 priority
    .byte 0                 # pwm2 priority
    .byte 0                 # system controller priority
    .byte 7                 # MAC priority
    .byte 0                 # AES priority
    .byte 0                 # PHY priority
    .byte 5                 # uart0 priority
    .byte 5                 # uart1 priority
    .byte 0                 # timer0 priority
    .byte 0                 # spi slave priority
    .byte 0                 # i2c maste/slave priority
    .byte 0                 # spi master priority
    .byte 0                 # pwm4 priority
    .byte 0                 # analog peripherals priority
    .byte 0                 # pwm3 priority
    .byte 15                # tick timer priority
2、在 Makefile 中,添加 CFLAGS += -DUART=1,并将 CFLAGS  += -DDEBUG_UART=DBG_E_UART_1 改为 CFLAGS  += -DDEBUG_UART=DBG_E_UART_0如下;

3、更改 uart.c 中的如下代码;
PUBLIC void UART_vInit(void)
{
………………………
#if (UART == E_AHI_UART_0)
vAHI_UartSetRTSCTS(UART, TRUE);
#endif
………………………
}

PUBLIC void UART_vRtsStopFlow(void)
{
#if (UART == E_AHI_UART_0)
vAHI_UartSetControl(UART, FALSE, FALSE, E_AHI_UART_WORD_LEN_8, TRUE, E_AHI_UART_RTS_HIGH);


#endif
}
PUBLIC void UART_vRtsStartFlow(void)
{
#if (UART == E_AHI_UART_0)
vAHI_UartSetControl(UART, FALSE, FALSE, E_AHI_UART_WORD_LEN_8, TRUE, E_AHI_UART_RTS_LOW);
#endif
}

PUBLIC void UART_vTxChar(uint8 u8Char)
{
while ( !UART_bTxReady () && !( u8AHI_UartReadLineStatus ( UART ) & E_AHI_UART_LS_TEMT ) );
vAHI_UartWriteData( UART, u8Char );
while ( !UART_bTxReady() && !( u8AHI_UartReadLineStatus ( UART ) & E_AHI_UART_LS_TEMT ) );
}
4、Clean Project and Build Project

一、 JN51892.1 硬件简介
NXP JN5189 芯片也提供了 2 个 UART 外设,称之为 UART0 和 UART1,它们可以单独使能。这些 UART 支持 RS-485 输出使能;在 JN5189 芯片上:
UART 可以工作在 4 线模式(默认情况)或 2 线模式;
UART1 可以工作在 2 线模式(默认情况)或 1 线(仅发送)模式;
上面信号使用的默认引脚与 DIO 共用,如表 2-1 所示:
表 2-1:UART 信号使用的默认 DIO
信号
UART0 使用的 PIO
UART1 使用的 PIO
CTS
PIO0_4/ PIO0_7
-
RTS
PIO0_5/ PIO0_6
-
TxD
PIO0_3/ PIO0_8/ PIO0_18
PIO0_0/ PIO0_6/ PIO0_10/ PIO0_20
RxD
PIO0_2/ PIO0_9/ PIO0_19
PIO0_1/ PIO0_7/ PIO0_11/ PIO0_19
一般情况下,我们使用 PIO0_8 & PIO0_9 作为 UART0,PIO0_10 & PIO0_11 作为 UART1。
2.2 默认状态
我们在 NXP 官网上,下载的 JN5189 协调器代码中,串口默认状态是:串口 0 与上位机通信,如图 2-2:

2.3 添加 UART1 为打印输出串口1、在 \Source\ControlBridge 下复制 app_Uart1Printf.c 和 app_Uart1Printf.h 到工程 \Source\ControlBridge 目录下,app_Uart1Printf.c 和 app_Uart1Printf.h 见附件;如下:

2、在 SerialLink.c 中添加头文件 app_Uart1Printf.h,并将该文件中的 vSL_LogInit 替换,如下:
替换
PUBLIC void vSL_LogInit(void)
{
    tsDBG_FunctionTbl sFunctionTbl;

    sFunctionTbl.prInitHardwareCb   = vLogInit;
    sFunctionTbl.prPutchCb          = App_LogPutch;
    sFunctionTbl.prFlushCb          = App_LogFlush;
    sFunctionTbl.prFailedAssertCb   = vLogAssert;

    DBG_vInit(&sFunctionTbl);
}

PUBLIC void vSL_LogInit(void)
{
    tsDBG_FunctionTbl sFunctionTbl;

    sFunctionTbl.prInitHardwareCb   = vLogInit;
    sFunctionTbl.prPutchCb          = App_LogPutch;//vLogPutch;
    sFunctionTbl.prFlushCb          = App_LogFlush;//vLogFlush;
    sFunctionTbl.prFailedAssertCb   = vLogAssert;

    DBG_vInit(&sFunctionTbl);
}

3、在 App_uart.c 中,添加头文件 app_Uart1Printf.h ,并在 UART_vInit 中,添加 App_UsartInit();
4、Clean Project and Build Project




+10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-11-16 03:02 , Processed in 0.392648 second(s), 42 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表