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

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

3天内不再提示

SCI串口自动波特率介绍

科技绿洲 来源:中科昊芯 作者:中科昊芯 2022-04-26 09:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

中科昊芯推出专题讲解SCI串口通信以来,第一期主要讲解SCI串口FIFO通信原理,本期主要讲解SCI串口自动波特率,FIFO中断通信逻辑将在下期内容中讲解。

HX2000系列SCI模块原理框图如下,自动波特率时,模块将工作于标准SCI模式,其功能可通过SCIFFTX[SCIFFENA]置零选择,其发送、接收与读取过程为:DSP端通过CPU,将数据装载到发送缓冲寄存器SCITXBUF中。使其能发送TXENA信号,通过TXSHF移位寄存器,逐步将SCITXBUF中的数据,移位到SCITXD引脚上。通过GPIOMUX配置发送SCITXD引脚,通过CH340等串行数据传输线向PC发送数据,以实现发送功能。通过GPIOMUX配置SCIRXD引脚,使得DSP端接收,PC端通过CH340等串行数据传输线发送的数据。使能接收RXENA信号,通过RXSHF移位寄存器,逐步将接收数据,移位到接收数据缓冲寄存器SCIRXBUF,以实现接收功能。通过SCIRXST[RXRDY]可判断,当前是否接收到数据,以便于CPU读取接收到的数据。

poYBAGJnSfGAbBDeAAH74xbrbQI568.png

在HX2000系列SCI模块中,通过SPIFFTX[SPIRST]使能,可使SCI自动波特率逻辑工作,其编程过程为:设置初始波特率为1或小于500kbps,以便于自动调整任意波特率。使能SCIFFCT[CDC]选择标准SCI工作于自动波特率模式。使能SCIFFCT[ABDCLR]以清除ABD位,以备自动波特率。PC端发送“A”或“a”,等待主机接收“A”或“a”成功,以完成自动波特率与校准,同时产生SCI传输FIFO中断TXINT;使能SCIFFCT[ABDCLR]以清除ABD位,以响应中断。清除CDC位以锁定当前设置的波特率,以防止重复中断。

由此设计SCI串口AutoBud通信实例:采用SCI与串口CH340,通过串口调试助手,向CPU发送41,PC端接收到41后,任意发送一组数据,CPU接收所发送的数据。

基于以上分析,在CDK上开发SCI AutoBud自动波特率程序,代码包括:SCI GPIO外设引脚配置,标准SCI功能配置程序,SCI自动波特率配置程序,发送与接收程序,主程序调用执行。主要代码如下:

pYYBAGJnSgCAIJ-QAAB6bjuFY50733.png

CDK上开发SCI 串口自动波特率,其编译结果为:

poYBAGJnSguAc99gAAHdS74LHqo382.png

编译通过后,就可以开始调试了,其调试结果如下:

poYBAGJnShSADby6AAHm5DJbxA4825.png

调试后,可通过串口调试助手查看自动波特率状态、发送与接收到的数据如下图:

pYYBAGJnShyALRxwAAIeaUH2FNM106.png

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

    关注

    31

    文章

    5588

    浏览量

    129035
  • 数据
    +关注

    关注

    8

    文章

    7314

    浏览量

    93942
  • 代码
    +关注

    关注

    30

    文章

    4940

    浏览量

    73116
  • SCI
    SCI
    +关注

    关注

    1

    文章

    59

    浏览量

    20795
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    UART波特率计算及UART收发回显实验

    决定串口波特率的寄存器有BRR(Bite Rate Rigister),SEMR(Serial Extended Mode Rigister)和MDDR(Modulation Duty
    的头像 发表于 10-17 09:51 2377次阅读
    UART<b class='flag-5'>波特率</b>计算及UART收发回显实验

    ATClient配合USART_V2使用时,无法开at_client_init后修改串口波特率是怎么回事?

    。 AT_SW_VERSION_NUM为0x10301,RTTHREAD的版本为0x50002。 有另一个项目用的串口是V1版本则正常,感觉是ATClient和串口V2在波特率修改的使用上有些地方不太兼容
    发表于 10-09 09:10

    串口波特率设置1200用不了是怎么回事?

    mcu:stm32f407zg 调试时,设置波特率为1200,而串口输出为乱码,电脑设置波特率19200来接收mcu的数据,却能接收正确; (我以前没有用RTT时,用stm32f103rct6
    发表于 09-23 07:19

    115200的波特率,为啥实际速度只有11KB/s?

    波特率≠真实速度! 这几个概念确实容易混淆,但它们描述的是通信过程中不同层面的速率指标。让我们一起来理清楚它们的区别和联系↓ 主要区别解析 比特 (Bit Rate): 指每秒传输的二进制比特数量
    的头像 发表于 09-10 11:18 391次阅读

    波特率是什么

    波特率是串行通信中的一个核心参数,用于描述数据在传输线路上的传输速率。以下从定义、单位、与比特的关系、实际应用及设置注意事项等方面进行详细说明: 一、定义与本质 波特率(Baud Rate)指单位
    的头像 发表于 07-22 11:11 5684次阅读

    【中科昊芯Core_DSC280025C开发板试用体验】+SCI测试与代码解读

    仿真器要接, 开发板也要供电 );这一款逻辑分析仪可以用作逻辑分析也可以用来调试串口,SLogic Combo 8 具备4路独立高速串口功能,前两路基于UART可同时达到20Mbps的超高速波特率,后两路
    发表于 07-17 10:42

    可编程电源的通信波特率应如何设置?

    Software”在“System Configuration”→“Serial Port”中调整波特率。 3. 通过SCPI命令设置(适用于自动化测试系统) 步骤: 使用终端工具(如PuTTY、Tera
    发表于 07-07 15:01

    基于瑞萨64位MPU RZ/G2L的uboot串口波特率支持介绍

    本文主要介绍基于瑞萨64位MPU RZ/G2L,讨论uboot下非常规波特率115200的支持方法,用于解决客户对uboot下特殊波特率的需求,供客户参考。
    的头像 发表于 07-04 15:54 2754次阅读
    基于瑞萨64位MPU RZ/G2L的uboot<b class='flag-5'>串口</b>多<b class='flag-5'>波特率</b>支持<b class='flag-5'>介绍</b>

    MAX13051 ±80V故障保护CAN收发器,具有自动波特率模式技术手册

    MAX13051为具有自动波特率模式、±80V故障保护的CAN收发器,可理想用于需要过压保护的设备网络和其他工业网络应用。MAX13051可以为CAN协议控制器和CAN总线的物理线路提供连接。
    的头像 发表于 05-27 11:07 1053次阅读
    MAX13051 ±80V故障保护CAN收发器,具有<b class='flag-5'>自动波特率</b>模式技术手册

    STM32U575串口接收+GPDMA波特率不匹配怎么解决?

    我用CubeMX配置的串口+GPDMA接收,115200波特率正常能用, 然后如果波特率设置错误为9600,再改回来115200,接收就不能用了,调试好像时DMA出错了,然后启用HAL_UARTEx_ReceiveToIdle_
    发表于 03-07 07:59

    STM32G070 UART串口,低波特率传送数据时,TIMER出现严重延时现象如何解决?

    STM32G070, UART串口,低波特率传送数据时,TIMER出现严重延时现象,传送数据长的话,导致系统重启。如何解决?
    发表于 03-07 07:07

    CAN总线十万个为什么 | CAN自定义波特率有什么用?

    导读CAN总线通信中,波特率一致并不总能保证通信顺畅。本文将揭秘自定义波特率的原理和应用,探讨如何通过优化采样点和提高容忍度解决通信问题,助力工程师提升通信稳定性。通常情况下,CAN总线通信只需确保
    的头像 发表于 02-07 11:36 1096次阅读
    CAN总线十万个为什么 | CAN自定义<b class='flag-5'>波特率</b>有什么用?

    AN-891: ADuC703x系列LIN波特率计算

    电子发烧友网站提供《AN-891: ADuC703x系列LIN波特率计算.pdf》资料免费下载
    发表于 01-14 15:53 0次下载
    AN-891: ADuC703x系列LIN<b class='flag-5'>波特率</b>计算

    请问MSC1210串口UART1如何设置波特率

    如题,MSC1210的手册上面有提到,UART0的波特率可以进行选择,可选择为T1的溢出作为波特率的设置,但是UART1的波特率如何设置?是和UART0的波特率一样吗?还是需要其他
    发表于 01-02 08:27

    RS232通信的波特率设置说明

    RS232通信的波特率设置是确保数据正确传输的关键参数之一。以下是对RS232通信波特率设置的说明: 一、波特率的概念 波特率是指每秒传输的比特数(bps),是衡量数据传输速度的重要指
    的头像 发表于 12-10 16:26 6379次阅读