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

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

3天内不再提示

RZ/G2L串口SCI的使用(下)

RA生态工作室 2024-08-03 08:06 次阅读
wKgZombEFEeAPmSGAAN2pZiRZD4690.pngwKgaombEFFeANTcSAAAxI8nikKU724.png

/* c_cflag bit meaning */ #define CBAUD 0000377 #define B0 0000000 /* hang up */ #define B50 0000001 #define B75 0000002 #define B110 0000003 #define B134 0000004 #define B150 0000005 #define B200 0000006 #define B300 0000007 #define B600 0000010 #define B1200 0000011 #define B1800 0000012 #define B2400 0000013 #define B4800 0000014 #define B9600 0000015 #define B19200 0000016 #define B38400 0000017 #define EXTA B19200 #define EXTB B38400 #define CBAUDEX 0000000 #define B57600 00020 #define B115200 00021 #define B230400 00022 #define B460800 00023 #define B500000 00024 #define B576000 00025 #define B921600 00026 #define B1000000 00027 #define B1152000 00030 #define B1500000 00031 #define B2000000 00032 #define B2500000 00033 #define B3000000 00034 #define B3500000 00035 #define B4000000 00036

wKgZombEFHeAEWIaAADIxJHMOdc149.pngwKgaombEFIWANyV3AAGxn9yTqzw576.png

+ #if ABCS0_BGDM_EN + if(baud > 6250000){ + //SEMR_BGDM:Baud rate generator double-speed mode Select: + //SEMR_ABCS0:Asynchronous Base Clock Select: + serial_port_out(port, SEMR, + serial_port_in(port, SEMR) | (SEMR_ABCS0 | SEMR_BGDM)); + freq *= 2; + prediv /= 2; + }else if(baud > 3125000){ + //SEMR_BGDM:Baud rate generator double-speed mode Select: + serial_port_out(port, SEMR, + serial_port_in(port, SEMR) | SEMR_BGDM); + freq *= 2; + } + #endif

wKgZombEFKyAAdqqAADj1mg9wxo555.png

diff --git a/drivers/tty/tty_baudrate.c b/drivers/tty/tty_baudrate.c index bdfaee2c1331..75d287893d11 100644 --- a/drivers/tty/tty_baudrate.c +++ b/drivers/tty/tty_baudrate.c @@ -24,7 +24,7 @@ static const speed_t baud_table[] = { 1000000, 1152000, 1500000, 2000000 #else 500000, 576000, 921600, 1000000, 1152000, 1500000, 2000000, - 2500000, 3000000, 3500000, 4000000 + 2500000, 3000000, 3500000, 4000000, 3125000, 6250000, 12500000 #endif }; @@ -36,7 +36,7 @@ static const tcflag_t baud_bits[] = { B1000000, B1152000, B1500000, B2000000 #else B500000, B576000, B921600, B1000000, B1152000, B1500000, B2000000, - B2500000, B3000000, B3500000, B4000000 + B2500000, B3000000, B3500000, B4000000, B3125000, B6250000, B12500000 #endif }; @@ -73,6 +73,14 @@ speed_t tty_termios_baud_rate(struct ktermios *termios) else cbaud += 15; } + if (cbaud & CBAUDEX2) { + cbaud &= ~CBAUDEX2; + + if (cbaud < 1 || cbaud + 30 > n_baud_table) + termios->c_cflag &= ~CBAUDEX2; + else + cbaud += 30; + } return cbaud >= n_baud_table ? 0 : baud_table[cbaud]; } EXPORT_SYMBOL(tty_termios_baud_rate); diff --git a/include/uapi/asm-generic/termbits.h b/include/uapi/asm-generic/termbits.h index 7db62a33ee52..1353300b6934 100644 --- a/include/uapi/asm-generic/termbits.h +++ b/include/uapi/asm-generic/termbits.h @@ -110,7 +110,7 @@ struct ktermios { #define FF1 0100000 /* c_cflag bit meaning */ -#define CBAUD 0010017 +#define CBAUD 0030017 #define B0 0000000 /* hang up */ #define B50 0000001 #define B75 0000002 @@ -158,7 +158,9 @@ struct ktermios { #define B3500000 0010016 #define B4000000 0010017 +#define CBAUDEX2 0020000 +#define B3125000 0020001 +#define B6250000 0020002 +#define B12500000 0020003 #define CIBAUD 002003600000 /* input baud rate */ #define CMSPAR 010000000000 /* mark or space (stick) parity */ #define CRTSCTS 020000000000 /* flow control */

wKgaombEFMmANvHbAABeZ5vrbtA053.png

#define B3125000 0020001 #define B6250000 0020002 #define B12500000 0020003 ** ** 串口配置 ** 参数 cfg 指向一个 uart_cfg_t 结构体对象 **/ static int uart_cfg(const uart_cfg_t *cfg) { struct termios new_cfg = {0}; //将 new_cfg 对象清零 speed_t speed; /* 设置为原始模式 */ cfmakeraw(&new_cfg); /* 使能接收 */ new_cfg.c_cflag |= CREAD| CLOCAL; /* 设置波特率 */ speed = B3125000; // B3125000 B6250000 B12500000 new_cfg.c_cflag |= speed; /* 串口的其他属性配置参考标准的POSIX */ /* 写入配置、使配置生效 */ if (0 > tcsetattr(fd, TCSANOW, &new_cfg)) { fprintf(stderr, "tcsetattr error: %s\n", strerror(errno)); return -1; }

wKgZombEFOOAckXNAAF4we7SbMs028.pngwKgZombEFPqAF2FzAAEaS0pvmAE393.png

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

    关注

    87

    文章

    11120

    浏览量

    207851
  • 串口
    +关注

    关注

    14

    文章

    1533

    浏览量

    75401
  • SCI
    SCI
    +关注

    关注

    1

    文章

    55

    浏览量

    20041
收藏 人收藏

    评论

    相关推荐

    瑞萨RZ/G2L串口SCI的使用(上)

    瑞萨RZ/G2L串口简称SCI,全称Serial Communication Interface。
    的头像 发表于 01-17 12:19 1202次阅读
    瑞萨<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b><b class='flag-5'>串口</b><b class='flag-5'>SCI</b>的使用(上)

    瑞萨RZ/G2L串口SCI的使用()

    RZ/G2L的SCIFA异步通讯模式支持的最高波特率可以达到12.5Mbps,如果异步基础时钟选择16倍波特率,同时关闭波特率发生器的倍频模式依然可以达到3.125Mbps。如果异
    的头像 发表于 01-17 12:20 1014次阅读
    瑞萨<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b><b class='flag-5'>串口</b><b class='flag-5'>SCI</b>的使用(<b class='flag-5'>下</b>)

    G2L系列 核心板 -RZ/G2L 处理器简介|框架图|功耗|原理图及硬件设计指南

    定;源自瑞萨汽车电子的技术积累,安全、可靠;10年+供货周期,批量采用有保障。得益于集成式的电源方案,RZ/G2L系列核心板尺寸可以控制得非常小,仅有60mm x 38mm。在板对板超薄连接器的加持
    发表于 06-21 14:45

    【飞凌RZ/G2L开发板试用体验】+01.开箱(zmj)

    【飞凌RZ/G2L开发板试用体验】+01.开箱(zmj)感谢飞凌嵌入式和电子发烧友网提供的此次试用机会,可以亲身体验飞凌RZ/G2L开发板的魅力。前言:具备视频处理功能的嵌入式电子设备
    发表于 08-28 19:13

    【米尔瑞萨RZ/G2L开发板-试用体验】认识一米尔瑞萨RZ/G2L开发板的核心板

    解一米尔瑞萨RZ/G2L开发板的核心板: MYC-YG2LX核心板采用高密度高速电路板设计,在大小为43mm*45mm的板卡上集成了RZ/
    发表于 07-29 00:21

    RZ/G2LRZ/V2L SMARC 模块板用户手册:硬件

    RZ/G2LRZ/V2L SMARC 模块板用户手册:硬件
    发表于 01-09 19:00 4次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>、<b class='flag-5'>RZ</b>/V<b class='flag-5'>2L</b> SMARC 模块板用户手册:硬件

    RZ/G2LRZ/G2LC 用户手册概述

    RZ/G2LRZ/G2LC 用户手册概述
    发表于 01-10 19:04 6次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>、<b class='flag-5'>RZ</b>/<b class='flag-5'>G2</b>LC 用户手册概述

    米尔瑞萨RZ/G2L开发板-初体验

    介绍米尔RZ/G2L开发板
    的头像 发表于 05-15 09:10 887次阅读
    米尔瑞萨<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>开发板-初体验

    RZ G2L核心板以太网接口性能测试

    武汉万象奥科RZ/G2L核心板支持2路千兆以太网接口,评估测试RZ/G2L双网口实际传输速率。
    的头像 发表于 03-11 09:47 866次阅读
    <b class='flag-5'>RZ</b> <b class='flag-5'>G2L</b>核心板以太网接口性能测试

    RZ/G2LRZ/V2L SMARC 模块板用户手册:硬件

    RZ/G2LRZ/V2L SMARC 模块板用户手册:硬件
    发表于 06-30 18:38 1次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>、<b class='flag-5'>RZ</b>/V<b class='flag-5'>2L</b> SMARC 模块板用户手册:硬件

    RZ/G2LRZ/G2LC 用户手册概述

    RZ/G2LRZ/G2LC 用户手册概述
    发表于 06-30 19:47 6次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>、<b class='flag-5'>RZ</b>/<b class='flag-5'>G2</b>LC 用户手册概述

    RZ/G2L核心板eMMC测试

    武汉万象奥科RZ/G2L核心板支持eMMC存储,可选8GB~64GB。 评估测试RZ/G2L核心板存储在默认8GB配置eMMC性能(读写速
    的头像 发表于 03-02 17:18 2106次阅读
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>核心板eMMC测试

    RZ/G2L开发板使用指南(上)

    如果需要评估RZ/G2L产品的各项功能,RZ/G2L评估板是最合适的平台。
    的头像 发表于 11-03 12:19 876次阅读
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>开发板使用指南(上)

    RZ/G2L RZ/G2LC RZ/G2UL RZ/G3S灵活软件包应用说明

    电子发烧友网站提供《RZ/G2L RZ/G2LC RZ/G2UL
    发表于 01-14 10:46 1次下载
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> <b class='flag-5'>RZ</b>/<b class='flag-5'>G2</b>LC <b class='flag-5'>RZ</b>/<b class='flag-5'>G2</b>UL <b class='flag-5'>RZ</b>/<b class='flag-5'>G</b>3S灵活软件包应用说明

    RZ/G2L串口SCI的使用(上)

    RZ/G2L串口SCI的使用
    的头像 发表于 07-25 08:06 321次阅读
    <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b><b class='flag-5'>串口</b><b class='flag-5'>SCI</b>的使用(上)