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
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
一般情况下,我们使用 PIO0_8 & PIO0_9 作为 UART0,PIO0_10 & PIO0_11 作为 UART1。 我们在 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 见附件;如下: 替换 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 |
|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号 ) |Sitemap
GMT+8, 2024-9-30 23:14 , Processed in 0.127461 second(s), 36 queries .
Powered by Discuz! X3.2 Licensed
© 2001-2013 Comsenz Inc.