瑞薩RZ/N2L MPU
RZ/N2L是一種工業(yè)以太網(wǎng)通信用MPU,可輕松將網(wǎng)絡(luò)功能添加到工業(yè)設(shè)備中。它搭載支持TSN的三端口千兆以太網(wǎng)交換機和EtherCAT從控制器,可支持EtherCAT、PROFINET RT/IRT、EtherNet/IP、OPC UA等主要的工業(yè)以太網(wǎng)通信協(xié)議。它對網(wǎng)絡(luò)專用配套芯片加以優(yōu)化,無需大幅改變設(shè)備的內(nèi)部配置即可直接連接并快速訪問外部應(yīng)用主機CPU。
此外,Arm Cortex-R52的最大工作頻率為400MHz,外設(shè)功能包括帶ECC的大容量RAM與ΔΣ I/F、A/D轉(zhuǎn)換器、PWM定時器、UART和CAN等,可在單個芯片上實現(xiàn)遠程I/O、傳感器集線器、變頻器和網(wǎng)關(guān)。
瑞薩RZ/T2M MPU
RZ/T2M是一款行業(yè)領(lǐng)先的高性能、多功能MPU,可實現(xiàn)AC伺服系統(tǒng)和工業(yè)電機等工業(yè)設(shè)備的高速處理、高精度控制和功能安全。RZ/T2M具有最大頻率為800 MHz的雙Arm Cortex-R52內(nèi)核,可進行實時控制,而且還擁有能夠與CPU直接連接的大容量緊密耦合內(nèi)存(576KB),以實現(xiàn)高性能實時處理。
此外,它還可以將電機控制的外設(shè)布置到能直接連接至CPU的LLPP(低延遲外設(shè)端口)上,來實現(xiàn)較低的延遲訪問。RZ/T2M擁有多協(xié)議編碼器硬件接口,可為A-format、EnDat 和BiSS等各種絕對編碼器協(xié)議提供支持。此外,RZ/T2M還擁有一個3端口的千兆以太網(wǎng)交換機,可為TSN標(biāo)準(zhǔn)及EtherCAT、PROFINET RT/IRT和EtherNet/IP等工業(yè)以太網(wǎng)協(xié)議提供支持,而無需額外的以太網(wǎng)交換機IC。
在項目調(diào)試過程中經(jīng)常會用到printf函數(shù),但是有時候printf函數(shù)需要運行在不打開中斷的情況下,但是官方FSP給出的UART驅(qū)動使用的是中斷模式,下面介紹一種使用查詢模式實現(xiàn)UART的方式。
一
FSP的配置
1
添加UART模塊,為了使用printf設(shè)置fsp配置器如下,選擇使用fifo模式來提高效率,UART的通道可以根據(jù)自己的硬件設(shè)計任意選取。
2
如果使用標(biāo)準(zhǔn)輸入函數(shù),需要選擇接收UART的接收FIFO的trigger level是1,這樣只要收到一個數(shù)據(jù)就可以產(chǎn)生uart接收標(biāo)志。
二
編譯器配置
在工程上點右鍵選擇Properties → C/C++ Build → setting,然后按照下圖來設(shè)置編譯器。
選擇Do not use syscalls。
三
添加代碼
1
添加初始化程序
static R_SCI0_Type *uart_reg=NULL; void uart_no_intp_init(uart_ctrl_t * const p_api_ctrl, uart_cfg_t const * const p_cfg) { if(uart_reg != NULL)return; R_SCI_UART_Open(p_api_ctrl, p_cfg); R_BSP_IrqDisable(p_cfg->txi_irq); R_BSP_IrqDisable(p_cfg->tei_irq); R_BSP_IrqDisable(p_cfg->rxi_irq); R_BSP_IrqDisable(p_cfg->rxi_irq); uart_reg = ((sci_uart_instance_ctrl_t *)p_api_ctrl)->p_reg; }
調(diào)用這個函數(shù)時,將hal_data.c的uart實例的cfg和ctrl作為參數(shù)即可,調(diào)用完后UART的寄存器地址會保存在uart_reg內(nèi),以備write和read使用。
2
添加write和read函數(shù)
int32_t _write(int32_t file_no,int8_t *buffer,uint32_t writing_b) { uint32_t tempcnt=writing_b; (void) ((file_no)); if(writing_b ==0)return 0; if(uart_reg==NULL)return -1; while(tempcnt!=0) { while(uart_reg->FTSR>13); uart_reg->TDR_b.TDAT = (uint8_t)*buffer; __DSB(); buffer++; tempcnt--; } return writing_b; } /******************************************************************************* * Function Name: SioRead * Description : The character strings specified with buffer is input for * : n bytes from serial port.The input is determined by file number fileno. * : The effective input in this version is STDIN. * Arguments : int32_t file_no ; I : File number to be the target of reading * : int_t * buffer ; O : Pointer to the area in which reading data is stored * : uint32_t reading_b; I : Reading bytes * Return Value : >0 : Number of receiving characters * : -1 : File number, receiving data error *******************************************************************************/ int32_t _read (int32_t file, int8_t *ptr, uint32_t len) { (void) ((file)); if(uart_reg==NULL)return 0; if(uart_reg->FRSR_b.R!=0) { *ptr = (uint8_t)uart_reg->RDR_b.RDAT; __DSB(); } else { return 0; } return 1; }
3
使用方法
先調(diào)用初始化函數(shù)后就可以使用了,下面是一個初始化的調(diào)用例子:
uart_no_intp_init(&g_uart0_ctrl,&g_uart0_cfg);
g_uart0_ctrl和g_uart0_cfg是 FSP生成的兩個變量。
審核編輯:劉清
-
以太網(wǎng)通信
+關(guān)注
關(guān)注
2文章
54瀏覽量
11206 -
變頻器
+關(guān)注
關(guān)注
252文章
6723瀏覽量
147552 -
交換機
+關(guān)注
關(guān)注
21文章
2690瀏覽量
100848 -
EtherCAT控制器
+關(guān)注
關(guān)注
0文章
17瀏覽量
636
原文標(biāo)題:在RZ/T2M和RZ/N2L中Printf添加方法(UART使用查詢模式)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
RZ/T2M RZ/N2L RZ/T2L系列應(yīng)用心得(上)

RZ/T2M 組 RZ/T2M 電機解決方案套件啟動手冊(用于 EtherCAT)

RZ/T2M 組 RZ/T2M Motor Solution Kit Startup 手冊(for RZ/T2M Motion Control Utility)

RZ/T2M 組 RZ/T2M Motor Solution Board 硬件手冊

RZ/T2M 組 RZ/T2M 電機解決方案套件啟動手冊(用于 EtherCAT)

RZ/T2M 組 RZ/T2M Motor Solution Kit Startup 手冊(for RZ/T2M Motion Control Utility)

RZ/T2M 組 RZ/T2M Motor Solution Board 硬件手冊

RZ/T2M、RZ/N2L和RZ/T2L產(chǎn)品簡介

RZ/T2M、RZ/N2L、RZ/T2L組 硬件設(shè)計指南

RZ/T2M, RZ/T2L, RZ/N2L電機解決方案套件數(shù)據(jù)手冊

評論