TI中文支持网
TI专业的中文技术问题搜集分享网站

关于TI-RTOS下RS485的使用,板子是TMDSIDK574

我使用的SDK是processor_sdk_rtos_am57xx_6_03_00_106。我想要在IDK574x板子上面使用RS485通信。但是我并没有找到相关的程序。我尝试使用UART_open()进行编程。它没有用。程序如下。当我将UART_socGetInitCfg、UART_socSetInitCfg、UART_open索引值idx改为2的时候,我可以使用XDS100V2的 UART发送数据。
UART_init();
UART_HwAttrs uart_cfg;

/* Get the default UART init configurations */
UART_socGetInitCfg(3, &uart_cfg);
uart_cfg.edmaHandle = NULL;
uart_cfg.dmaMode = FALSE;
uart_cfg.loopback = FALSE;
/* Set the DMA enabled UART init configurations */
UART_socSetInitCfg(3, &uart_cfg);

char testIdPrompt[16] = "\r\n UART UT ";
UART_PAR uartParity = UART_PAR_NONE;
UART_Handle uart = NULL;
UART_Params uartParams;
UART_Params_init(&uartParams);
uartParams.parityType = uartParity;
uart = UART_open(3, &uartParams);

for(int i=0;i<5;i++){
UART_write(uart, (void *)(uintptr_t)testIdPrompt, sizeof(testIdPrompt));
}
UART_printf("success.\n");
UART_close(uart);
我不知道使用RS485是否还有其他编程方法。

Nancy Wang:

Diagnostic Applications中有RS485_TEST, 可以参考看一下。
software-dl.ti.com/…/index_board.html

user4839655:

回复 Nancy Wang:

AM574x上面没有RS485_TEST,只要如下的test。我在英文论坛那边也问了下,时差问题他们那边回复一般都很慢,现在那边没有回复。

Nancy Wang:

回复 user4839655:

表格中显示是适用于idkam572x/am574x的。
makefile中只有idkAM571x/am65xx_idk/idkAM572x

# Device based on board
ifeq ($(BOARD), idkAM571x)
export DEVICE=AM571x
endif

ifeq ($(BOARD), am65xx_idk)
export DEVICE=AM65XX
endif

ifeq ($(BOARD), idkAM572x)
export DEVICE=AM572x
endif
你试试看用idkAM572x编译。

Nancy Wang:

回复 Nancy Wang:

ti-processor-sdk-rtos-am57xx-evm\pdk_am57xx_1_0_15\packages\ti\board\diag\rs485_uart\src 可以看到源码,可以先参考看一下。
我试了一下也没有编译出来,我看到你发的英文贴已经分配了工程师。

user4839655:

回复 Nancy Wang:

我将源码粘贴进CCS工程的话,才cfg文件添加了
var Pruss= xdc.loadPackage('ti.drv.pruss');
Pruss.Settings.socType= socType;
工程编译没有报错,但是在调试的时候出错了。调试到函数rs485_pru_firmware() ->pruss_init(prussIcssInstance) -> HWREG(pruss_base + 0x04) = 0x06这里的时候调试代码进入了如下代码段
/**======== _exit ========*/
void _exit(int code)
{asm(" .global C$$EXIT");asm("C$$EXIT:");while(1){};
}
/**@(#) gnu.targets.arm.rtsv7A; 1, 0, 0,; 9-13-2019 11:37:42; /db/ztree/library/trees/xdctargets/xdctargets-t09/src/ xlibrary
*/
然后就一直卡在这儿就算我把HWREG(pruss_base + 0x04) = 0x06这个函数屏蔽了,在pruIcssHandle = PRUICSS_create(pruss_config,(int) prussIcssInstance)函数这儿也会进入上述exit()代码段,可能是am572x和574x的配置不太一样,不知道怎么修改。

user4839655:

回复 user4839655:

如果RS485使用有问题的话,是否板子上还有其他串口通信的引脚啊,我看了下原理图其他UART引脚都是具有复用功能的,好像直接使用不了。

Nancy Wang:

回复 user4839655:

开发板上使用的是uart2。
看一下这个帖子。
e2e.ti.com/…/749992

赞(0)
未经允许不得转载:TI中文支持网 » 关于TI-RTOS下RS485的使用,板子是TMDSIDK574
分享到: 更多 (0)