0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在RZ/T2M和RZ/N2L中Printf添加方法(使用查询模式实现UART)

瑞萨MCU小百科 来源:瑞萨嵌入式小百科 2024-05-21 14:08 次阅读

瑞萨RZ/N2L MPU

RZ/N2L是一种工业以太网通信用MPU,可轻松将网络功能添加到工业设备中。它搭载支持TSN的三端口千兆以太网交换机和EtherCAT从控制器,可支持EtherCAT、PROFINET RT/IRT、EtherNet/IP、OPC UA等主要的工业以太网通信协议。它对网络专用配套芯片加以优化,无需大幅改变设备的内部配置即可直接连接并快速访问外部应用主机CPU

此外,Arm Cortex-R52的最大工作频率为400MHz,外设功能包括带ECC的大容量RAM与ΔΣ I/F、A/D转换器、PWM定时器UARTCAN等,可在单个芯片上实现远程I/O、传感器集线器、变频器和网关。

4cc8f084-1727-11ef-b74b-92fbcf53809c.png

瑞萨RZ/T2M MPU

RZ/T2M是一款行业领先的高性能、多功能MPU,可实现AC伺服系统和工业电机等工业设备的高速处理、高精度控制和功能安全。RZ/T2M具有最大频率为800 MHz的双Arm Cortex-R52内核,可进行实时控制,而且还拥有能够与CPU直接连接的大容量紧密耦合内存(576KB),以实现高性能实时处理。

此外,它还可以将电机控制的外设布置到能直接连接至CPU的LLPP(低延迟外设端口)上,来实现较低的延迟访问。RZ/T2M拥有多协议编码器硬件接口,可为A-format、EnDat 和BiSS等各种绝对编码器协议提供支持。此外,RZ/T2M还拥有一个3端口的千兆以太网交换机,可为TSN标准及EtherCAT、PROFINET RT/IRT和EtherNet/IP等工业以太网协议提供支持,而无需额外的以太网交换机IC

4d142afe-1727-11ef-b74b-92fbcf53809c.png

在项目调试过程中经常会用到printf函数,但是有时候printf函数需要运行在不打开中断的情况下,但是官方FSP给出的UART驱动使用的是中断模式,下面介绍一种使用查询模式实现UART的方式。

FSP的配置

1

添加UART模块,为了使用printf设置fsp配置器如下,选择使用fifo模式来提高效率,UART的通道可以根据自己的硬件设计任意选取。

4d337666-1727-11ef-b74b-92fbcf53809c.png

2

如果使用标准输入函数,需要选择接收UART的接收FIFO的trigger level是1,这样只要收到一个数据就可以产生uart接收标志。

4d5936d0-1727-11ef-b74b-92fbcf53809c.png

编译器配置

在工程上点右键选择Properties → C/C++ Build → setting,然后按照下图来设置编译器。

4d8bc1b8-1727-11ef-b74b-92fbcf53809c.png

选择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;
}

调用这个函数时,将hal_data.c的uart实例的cfg和ctrl作为参数即可,调用完后UART的寄存器地址会保存在uart_reg内,以备write和read使用。

2

添加write和read函数

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

使用方法

先调用初始化函数后就可以使用了,下面是一个初始化的调用例子:

 uart_no_intp_init(&g_uart0_ctrl,&g_uart0_cfg);

g_uart0_ctrl和g_uart0_cfg是 FSP生成的两个变量。



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网通信
    +关注

    关注

    2

    文章

    52

    浏览量

    11018
  • 变频器
    +关注

    关注

    251

    文章

    6501

    浏览量

    144180
  • 交换机
    +关注

    关注

    21

    文章

    2621

    浏览量

    99216
  • EtherCAT控制器

    关注

    0

    文章

    15

    浏览量

    560

原文标题:在RZ/T2M和RZ/N2L中Printf添加方法(UART使用查询模式)

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RZ/T2M RZ/N2L RZ/T2L系列应用心得

    RZ/T2MRZ/N2L共用各种软件协议栈支持情况。
    的头像 发表于 11-15 16:09 2083次阅读
    <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> <b class='flag-5'>RZ</b>/<b class='flag-5'>N2L</b> <b class='flag-5'>RZ</b>/<b class='flag-5'>T2L</b>系列应用心得

    RZ/T2M RZ/N2L RZ/T2L系列应用心得(上)

    T2M R9A07G075M28GBG#AC0为例,官网找到RZ/T2M产品页,然后向下找到Product option界面。
    的头像 发表于 12-29 12:23 2254次阅读
    <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> <b class='flag-5'>RZ</b>/<b class='flag-5'>N2L</b> <b class='flag-5'>RZ</b>/<b class='flag-5'>T2L</b>系列应用心得(上)

    RZ/T2MRZ/N2L 组硬件设计指南

    RZ/T2MRZ/N2L 组硬件设计指南
    发表于 01-09 18:57 1次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b>、<b class='flag-5'>RZ</b>/<b class='flag-5'>N2L</b> 组硬件设计指南

    RZ/T2MRZ/T2M 电机解决方案套件启动手册(用于 EtherCAT)

    RZ/T2MRZ/T2M 电机解决方案套件启动手册(用于 EtherCAT)
    发表于 01-10 19:00 1次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> 组 <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> 电机解决方案套件启动手册(用于 EtherCAT)

    RZ/T2MRZ/T2M Motor Solution Kit Startup 手册(for RZ/T2M Motion Control Utility)

    RZ/T2MRZ/T2M Motor Solution Kit Startup 手册(for RZ/
    发表于 01-10 19:00 0次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> 组 <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> Motor Solution Kit Startup 手册(for <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> Motion Control Utility)

    RZ/T2MRZ/T2M Motor Solution Board 硬件手册

    RZ/T2MRZ/T2M Motor Solution Board 硬件手册
    发表于 01-10 19:00 2次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> 组 <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> Motor Solution Board 硬件手册

    CN032交流伺服解决方案硬件手册(适用于RZ/T2MRZ/N2L

    CN032 交流伺服解决方案硬件手册(适用于RZ/T2MRZ/N2L
    发表于 05-12 19:19 0次下载
    CN032交流伺服解决方案硬件手册(适用于<b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b>、<b class='flag-5'>RZ</b>/<b class='flag-5'>N2L</b>)

    CN032交流伺服解决方案硬件手册(适用于RZ/T2MRZ/N2L

    CN032 交流伺服解决方案硬件手册(适用于RZ/T2MRZ/N2L
    发表于 06-29 19:11 1次下载
    CN032交流伺服解决方案硬件手册(适用于<b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b>、<b class='flag-5'>RZ</b>/<b class='flag-5'>N2L</b>)

    RZ/T2MRZ/N2L 组硬件设计指南

    RZ/T2MRZ/N2L 组硬件设计指南
    发表于 06-30 18:33 2次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b>、<b class='flag-5'>RZ</b>/<b class='flag-5'>N2L</b> 组硬件设计指南

    RZ/T2MRZ/T2M 电机解决方案套件启动手册(用于 EtherCAT)

    RZ/T2MRZ/T2M 电机解决方案套件启动手册(用于 EtherCAT)
    发表于 06-30 19:40 0次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> 组 <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> 电机解决方案套件启动手册(用于 EtherCAT)

    RZ/T2MRZ/T2M Motor Solution Kit Startup 手册(for RZ/T2M Motion Control Utility)

    RZ/T2MRZ/T2M Motor Solution Kit Startup 手册(for RZ/
    发表于 06-30 19:41 2次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> 组 <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> Motor Solution Kit Startup 手册(for <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> Motion Control Utility)

    RZ/T2MRZ/T2M Motor Solution Board 硬件手册

    RZ/T2MRZ/T2M Motor Solution Board 硬件手册
    发表于 06-30 19:41 1次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> 组 <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b> Motor Solution Board 硬件手册

    RZ/T2MRZ/N2LRZ/T2L产品简介

    瑞萨电子2022年6月推出了第二代高性能、多功能的RZ/T2M电机控制微处理器MPU,应用于交流伺服驱动器和工业机器人等领域。RZ/T2M
    的头像 发表于 11-13 15:50 2604次阅读
    <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b>、<b class='flag-5'>RZ</b>/<b class='flag-5'>N2L</b>和<b class='flag-5'>RZ</b>/<b class='flag-5'>T2L</b>产品简介

    RZ/T2MRZ/N2LRZ/T2L组 硬件设计指南

    电子发烧友网站提供《RZ/T2MRZ/N2LRZ/T2L组 硬件设计指南.pdf》资料免费下
    发表于 02-02 09:39 2次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b>、<b class='flag-5'>RZ</b>/<b class='flag-5'>N2L</b>、<b class='flag-5'>RZ</b>/<b class='flag-5'>T2L</b>组 硬件设计指南

    RZ/T2M, RZ/T2L, RZ/N2L电机解决方案套件数据手册

    电子发烧友网站提供《RZ/T2M, RZ/T2L, RZ/N2L电机解决方案套件数据手册.rar
    发表于 05-13 18:12 5次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>T2M</b>, <b class='flag-5'>RZ</b>/<b class='flag-5'>T2L</b>, <b class='flag-5'>RZ</b>/<b class='flag-5'>N2L</b>电机解决方案套件数据手册