7、RH850 F1 RLIN/UART功能和配置

前言:

       UART是最常见的串行通讯,广泛应用于单片机和单片机之间通讯。这里UART/RLIN的具体原理讲解就不做介绍,不清楚的朋友可移步up主的个人专栏 ---- “串行通讯原理”中的“串行通讯 -- 串口通讯原理”,此专栏会有针对uart/RLIN的工作原理的详细介绍。

RLIN30 时钟源选择

Unit Name

Unit Clock Name

Supply Clock Name

Description

RLIN30

LIN通信时钟源

CKSCLK_ILIN

通讯时钟

 

注册访问时钟

CPUCLK2

总线时钟

 

注册访问时钟

CKSCLK_ILIN

总线时钟

RLIN30 接口框图

e81a5bd4be4a4b12a5f40d72c7dff7fd.png

 

1.1、RLN3nLUOER   UART操作使能寄存器

8da5922e1b2344bcbb9773c6d3f6a4c5.png

Bit position

Bit Name

Function

1

UROE

接收使能位 

0:禁用接收。

1:使能接收。

0

UTOE

发送使能位 

0:禁用发送。

1:使能发送。

 

1.2、RLN3nLCUC   UART控制寄存器

7b1260229c7e4b50825ef54c97ea3c84.png

Bit position

Bit Name

Function

0

OM0

LIN复位 

0: LIN复位模式

1:取消LIN复位模式

 

1.3、RLN3nLMD   UART模式寄存器

92668a7d973c4334891ddd0a4214bb9a.png

Bit position

Bit Name

Function

5

LRDNFS

UART接收数据噪声过滤器

0:开启噪声滤波。

1:关闭噪声滤波器。

1 - 0

LMD

LIN / UART 模式选择

0 0:

0 1:UART模式。  

 

1.4、RLN3nLBFC   UART配置寄存器

4dd1fe6b9d3b4d57bd517c1b9a18de89.png

Bit position

Bit Name

Function

6

UTPS

输出极性开关

0:传输数据正常输出

1:反向输出的传输数据

5

URPS

输入极性开关

0:接收数据正常输出

1:接收数据,输出倒排

4 - 3

UPS

UART校验选择

00:校验禁用

01:即使校验 

10:奇校验 

11:奇校验

2

USBLS

UART停止位长度选择

0:停止位:1位

1:停止位:2位

1

UBOS

UART传输格式顺序选择

0: LSB先 

1: MSB先

0

UBLS

UART字符长度选择

0: UART 8位通信

1: UART 7位通信

 

1.5、RLN3nLEDE   UART错误检测使能寄存器

e371ab919b354411ad4d2716f17a250f.png

Bit position

Bit Name

Function

3

FERE

帧错误检测使能

0:禁用帧错误检测功能。

1:帧错误检测。

2

OERE

超限错误检测启用

0:禁用溢出错误检测。

1:表示启动溢出错误检测。

0

BERE

误码检测使能

0:禁用误码检测。

1:表示启用误码检测。

 

1.6、RLN3nLWBR   UART唤醒波特率选择寄存器

537208f7e3444ae798a22c3a6d54ec95.png

Bit position

Bit Name

Function

7 - 4

NSPB

位采样计数选择 B7 - B4

0 0 0 0: 16次采样

0 0 1 1: 4采样

0 1 1 1: 8个采样

1 1 1 1: 16个采样

禁止进行上述以外的设置。

3 - 1

LPRS

预分频时钟选择 B3 - B1

0 0 0: 1/1

0 0 1: 1/2

0 1 0: 1/4

0 1 1: 1/8

1 0 0: 1/16

1 0 1: 1/32

1 1 0: 1/64

1 1 1: 1/128

 

1.71.7、RLN3nLBRP01   UART波特率预分频01寄存器

de0597f14a2c45989b95423fb6c9e416.png

Bit position

Bit Name

Function

15 - 0

BRP

假设该寄存器中设置的值为L(0 ~ 65535),即波特率

prescaler将precaler时钟的频率除以L + 1。

设置范围:0000H ~ FFFFH

 

例程:

/*****************************************************************************

** Function:    RLIN30_init

** Description: Initialize the RLIN31 for UART

** Parameter:   None

** Return:      None

******************************************************************************/

void RLIN30_Init(UART_Baudrate_T baudrate)

{

/* Disable RLIN */

        RLN30LUOER = 0x00u; //Disables transmission/reception.

RLN30LCUC = 0x00u;  //LIN wake-up mode / LIN reset mode

        

        CLKCTLCKSC_ILIND_STPM = 0x03;

        

/* LIN Mode Register/UART Mode Register (LMD) */

        RLN30LMD = 0x01u;

                             /* UART mode */

                     /* LIN / UART System Clock: fa */

                     /* Module generates 1 interrupt signal */

                     /* 3-bit majority voting logic for sampling RX data is enabled */

            

/* LIN Break Field Configuration Register/UART Configuration Register1 */

        RLN30LBFC = 0x00u;

                             /* UART 8-bit communication */

                     /* LSB first */

                     /* Stop Bit 1 bit */

                     /* Parity Disabled */

                     /* Without RX inversion */

                     /* Without RX inversion */

 

/* LIN / UART Error Detection Enable Register */

        RLN30LEDE = 0;       //0x8Fu; //add

                             /* No error detection */

 

/* LIN Wake-up Baud Rate Selector register  */

//RLN31LWBR = 0x30u; /* 4 samples per bit ;because datasheet is 6~16,we donot use this */

        RLN30LWBR = 0x60u; //add

                             /* 12 samples per bit */

/* LIN Baud Rate Prescaler1/UART Baud Rate Prescaler */

//RLN31LBRP01 = Uart_Baudrate[baudrate];

        RLN30LBRP01 = 4;

                             //(115200bps) 40MHz * ( 1 / 1 ) / ( 28 + 1 ) / 7 = 114942(-0.2%)

/* LIN / UART Control Register */

        RLN30LCUC = 0x01u;

                             /* Set SW Reset request to inactive */

}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vx cr_8118

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值