《DSP28335SCI-总结》由会员分享,可在线阅读,更多相关《DSP28335SCI-总结(4页珍藏版)》请在金锄头文库上搜索。
1、2.1 SCI模块寄存器概述表2SCI-A寄存器名称地址 占用空间 功能描述SCICCR 0x0000 7050 1 SCI-A 通信控制寄存器SCICTL1 0x0000 7051 1 SCI-A 控制寄存器1SCIHBAUD 0x0000 7052 1 SCI-A 波特率设置寄存器 高字节SCILBAUD 0x0000 7053 1 SCI-A 波特率设置寄存器 低字节SCICTL2 0x0000 7054 1 SCI-A 控制寄存器2SCIRXST 0x0000 7055 1 SCI-A 接收状态寄存器SCIRXEMU 0x0000 7056 1 SCI-A 接收仿真数据缓冲寄存器SCI
2、RXBUF 0x0000 7057 1 SCI-A 接收数据缓冲寄存器SCITXBUF 0x0000 7059 1 SCI-A 发送数据缓冲寄存器SCIFFTX 0x0000 705A 1 SCI-A FIFO发送寄存器SCIFFRX 0x0000 705B 1 SCI-A FIFO接收寄存器SCIFFCT 0x0000 705C 1 SCI-A FIFO控制寄存器SCIPRI 0x0000 705F 1 SCI-A 极性控制寄存器注意:SCIFFRX、SCIFFTX是FIFO的功能,现在还知道怎么使用。参考例子使只使能其中的复位、清标志位就行。最后写复位使能。第四位:一定设置为0。不知道有什
3、么作用。表3 SCI通信控制寄存器(SCICCR)功能描述位名称 功能描述7 STOP BITS SCI停止位的个数该位决定了发送的停止位的个数。接收器仅对一个停止位检查。0 一个停止位;1 两个停止位;6 PARITY 奇偶校验选择位如果PARITY ENABLE位(SCICCR, 位5)被置位,则PARITY (位6)确定采用奇校验还是偶校验(在发送和接收的字符中奇偶校验位的位数都是1位)。0 奇校验;1 偶校验;5 PARITY SCI奇偶校验使能位ENABLE 该位使能或禁止奇偶校验功能。如果SCI处于地址位多处理器模式(设置这个寄存器的第三位),地址位包含在奇偶校验计算中(如果奇偶校
4、验是使能的)。对于少于8位的字符,剩余无用的位由于没有奇偶校验计算而应被屏蔽。0 奇偶校验禁止。在发送期间没有奇偶位产生或在接收期间不检查奇偶校验位;1 奇偶校验使能;4 LOOPBACKENA 自测试模式使能位该位使能自测试模式,这时发送引脚与接收引脚在系统内部连接在一起。0 自测试模式禁止;1 自测试模式使能3 ADDR/IDLEMODESCI多处理模式控制位该位选择一种多处理器协议。由于使用了SLEEP和TXWAKE功能 (分别是 SCICTL1的位2和SCICTL1的位3),多处理器通信同其它的通信模式有所不同。由于地址位模式在帧中增加了一个附加位,空闲线模式通常用于正常通信。空闲线模
5、式没有增加这个附加位,同典型的RS232通信兼容。0 空闲位模式协议选择;1 地址位模式协议选择;20 SCI CHAR20 字符长度控制位2-0这些位选择了SCI的字符长度(从1到8位)。少于8位的字符在SCIRXBUF和SCIRXEMU中是右对齐,且在SCIRXBUF中前面的位填0。SCITXBUF前面的位不需要填0。对于SCI CHAR2-0位的位值和字符长度关系如下所示:CHAR2 CHAR1 CHAR0 字符长度(Bits)0 0 0 10 0 1 20 1 0 30 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1 82.3 SCI控制寄存器1 (SCICTL
6、1)SCICTL1控制接收/发送使能、TXWAKE和SLEEP功能以及SCI软件复位,如图1和表所示。SCI控制寄存器1 (SCICTL1) 地址 7051h这个没有特别要注意的。2.6 SCI接收器状态寄存器 (SCIRXST)SCIRXST包含7个接收器状态标志位(其中2个能产生中断请求)。每次一个完整的字符发送到接收缓冲器(SCIRXEMU和SCIRXBUF)后,状态标志位刷新。每次缓冲器被读取时,标志位被清除。图4给出了寄存器位的关系,表4给出了SCI接收状态寄存器的功能定义。SCI接收器状态寄存器(SCIRXST) 地址7055h如果RX/BK INT ENA(SCICTL2.1=1
7、)RXRDY 或BRKDT 引起中断当位5 到2 中任何一位等于1 时RX ERROR=1图4 SCI接收器状态寄存器(SCIRXST)表4 SCI接收器状态寄存器(SCIRXST)功能描述位名称 功能描述7 RX ERROR 接收器错误标志位RX ERROR标志位说明在接收状态寄存器中有一位错误标志位被置位。RX ERROR是间断检测、帧错误、超时和奇偶错误使能标志位(位 52: BRKDT, FE, OE, and PE)的逻辑或。如果RX ERR INT ENA位(SCICTL1.6)被置位,则该位上的一个1将会引起一个中断。在中断服务子程序中可以使用该位进行快速错误条件检测。错误标志位
8、不能被直接清除,它由一个有效的SW RESET 或者系统复位来清除。0 无错误标志设置;1 错误标志设置;6 RXRDY 接收器准备好标志位当准备好从SCIRXBUF寄存器中读一个新的字符时,接收器置位接收器准备好标志位,且如果RX/BK INT ENA位(SCICTL2.1) 是1则产生接收器中断。取SCIRXBUF寄存器、有效的SW RESET或者系统复位清除RXRDY。0 在SCIRXBUF中没有新的字符;1 准备好从SCIRXBUF中读取字符;5 BRKDT 间 断检测标志位当满足间断条件时,SCI将置位该位。从丢失第一个停止位开始,如果SCI接收数据线路(SCIRXD)连续地保持至少
9、10位低电平,则产生一个间断条件。如果RX/BK INT ENA位为1,则间断的发生会引发产生一个接收中断,但这不会引起重新装载接收缓冲器。即使接收SLEEP被置位为1,也能发生一个BRKDT中断。一个有效的SW RESET或者一个系统复位可以清除BRKDT。在检测到一个间断后,接收字符并不能清除该位。为了接收更多的字符,必须通过触发SW RESET 位或者系统复位来复位SCI。0 没有产生间断条件;1 间断条件发生;4 FE 帧错误标志位当检测不到一个期望的停止位时,SCI就置位该位。仅检测第一个停止位。丢失停止位表明没有能够和起始位同步,且字符帧发生了错误。SW RESET或系统复位该清除
10、FE位。0 没有检测到帧错误;1 检测到帧错误;3 OE 超时错误标志位在前一个字符被CPU或DMAC完全读走前,当字符被发送到SCIRXEMU和SCIRXBUF时,SCI就置位该位。前一个字符将会被覆盖或丢失。SW RESET或系统复位将OE标志位复位。0 没有检测到超时错误;1 检测到超时错误;2 PE 奇偶校验错误标志位地址位被包括在内。如果奇偶校验的产生和检测没有被使能,则PE标志位被禁止且读作0。有效的SW RESET信号或系统复位PE信号。0 没有检测到奇偶校验错误;1 检测到奇偶校验错误;1 RXWAKE 接收器唤醒检测标志位当该位为1时,表示检测到了接收器唤醒的条件。在地址位多
11、处理器模式中 (SCICCR.3= 1),RXWAKE反映了SCIRXBUF中的字符的地址位的值。在空闲线多处理器模式,如果SCIRXD被检测为空闲状态则RXWAKE被置位。RXWAKE是一个只读标志位,它由以下条件来清除: 地址位传送到SCIRXBUF后传送第一个字节; 读SCIRXBUF; 有效的SW RESET; 系统复位;0 保留 读返回0,写操作没有影响。2.7 接收数据缓冲寄存器 (SCIRXEMU, SCIRXBUF)接收的数据从RXSHF传送到SCIRXEMU和SCIRXBUF。当传送完成后,RXRDY标志位(位SCIRXST.6)置位,表示接收的数据可以被读取。两个寄存器存放着相同的数据;两个寄存器有各自的地址,但物理上不是独立的缓冲器。它们的唯一区别在于读SCIRXEMU操作不清除RXRDY标志位,而读SCIRXBUF操作清除该标志位。