芯教程丨平头哥助力中科昊芯HX2000系列芯片专题SCI串口通信(二)AutoBaud自动波特率

描述

自中科昊芯推出专题讲解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读取接收到的数据。

 

通信

在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自动波特率配置程序,发送与接收程序,主程序调用执行。主要代码如下:

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
1.int main(void)
2.{
3.  /*初始化系统控制:PLL,WatchDog,使能外设时钟*/
4.  InitSysCtrl();
5.  /*初始化pie中断控制*/
6.  InitPieCtrl();
7.
8.  /*禁止CPU中断并清除所有中断标志*/
9.  IER=0x0000;
10.  IFR=0x0000;
11.
12.  /*初始化PIE向量表,为PIE向量表中的所有中断向量配置对应向量的入口地址*/
13.  InitPieVectTable();
14.
15.  /*配置Scia_Gpio*/
16.  Scia_Gpio();
17.
18.  /*SCIA标准模式配置*/
19.  SCIA_Init();
20.
21.  /*SCIA自动波特率配置*/
22.  SCIA_AutobaudLock();
23.  while (1)
24.  {
25.       /* 等待SCI接收到数据,以从RXBUF中读取PC端发送的数据*/
26.    while (SciaRegs.SCIRXST.bit.RXRDY != 1){}
27.       /* 将SCI接收的数据装载到,发送缓冲寄存器TXBUF中*/
28.    SciaRegs.SCITXBUF = SciaRegs.SCIRXBUF.bit.RXDT;
29.  }
30.  return 0;
31.}

 

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

 

通信

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

 

通信

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

 

通信

关于中科昊芯
 

“智由芯生 创享未来”,中科昊芯是数字信号处理器专业供应商。作为中国科学院科技成果转化企业,瞄准国际前沿芯片设计技术,依托多年积累的雄厚技术实力及对产业链的理解,以开放积极的心态,基于开源指令集架构RISC-V,打造多个系列数字信号处理器产品,并构建完善的处理器产品生态系统。产品具有广阔的市场前景,可广泛应用于工业控制及电机驱动、数字电源、光伏、储能、新能源汽车、消费电子、白色家电等领域。

 

 

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分