多通道串口的一点总结
0赞先上源码 呵呵
McBSP的配置程序:
MCBSP_Config Mcbsp1Config = {
MCBSP_SPCR1_RMK(
MCBSP_SPCR1_DLB_OFF,
MCBSP_SPCR1_RJUST_LZF,
MCBSP_SPCR1_CLKSTP_DISABLE,
MCBSP_SPCR1_DXENA_ON,
0,
MCBSP_SPCR1_RINTM_RRDY,
0,
MCBSP_SPCR1_RRST_DISABLE
),
MCBSP_SPCR2_RMK(
MCBSP_SPCR2_FREE_NO,
MCBSP_SPCR2_SOFT_NO,
MCBSP_SPCR2_FRST_FSG,
MCBSP_SPCR2_GRST_CLKG,
MCBSP_SPCR2_XINTM_XRDY,
0,
MCBSP_SPCR2_XRST_DISABLE
),
这是我前一段时间对串口的一段配置程序 下面对整个硬件的配置做一个概述
McBSP的关键特点:
- 全双工的通信;
- 独立的接收、传送时钟和帧;
- 双缓冲传输与三缓冲接收来保证连续数据流;
- 128通道传输与接收;
- 往CPU传送中断,往DMA控制器传送DMA事件;
- 与工业标准codecs、模拟接口芯片和其他串行连接的A/D和D/A转换器件间的直接接口;
- 可编程设置帧同步脉冲与时钟信号极性;
- 一个为时钟信号与帧信号的内部发生与控制而设的可编程采样速率发生器;
- 提供向下列器件直接接口:T1/E1帧、与MVIP转换及ST-BUS兼容器件、与IOM-2兼容器件、与AC97兼容器件、与IIS兼容的器件、SPI器件;
- 提供对数据大小的广泛选择:8、12、16、20、24和32位;
- 多通道选择模式,并可以在每个通道选择传输或阻塞传输;
- µ律与A律扩展;
- 标志例外/错误情况的状态比特;
- 可以选择从低位先传输/接收8位数据;
- 可以将McBSP引脚作为通用I/O引脚;
- McBSP是由用7个引脚连接到外部器件的数据流通路与控制通路组成。
通过数据传输引脚(DX)与数据接收引脚(DR),数据被传送到与McBSP相连器件上面。以时钟和帧同步形式的控制信息通过以下引脚传送:传输时钟(CLKX)引脚、接收时钟(CLKR)引脚、传输帧同步(FSX)引脚以及接收帧同步(FSR)引脚。
CPU与DMA控制器通过16位宽寄存器经内部的外设总线与McBSP通信。CPU与DMA控制器将数据写入到传输寄存器(DXR1、DXR2)。被写入DXRx数据通过传输移位寄存器(XSR1、XSR2)发送到了DX。相同的,DR引脚上接收数据被移到接收移位寄存器(RBR1、RBR2)里。然后,RBR里的内容被复制到DRR中,从而可被CPU或者DMA控制器读出。这样就可同时进行内部与外部数据通信了。
