9134|10

25

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

TMS320F28335的串口问题总结 [复制链接]

最近刚接触F28335的SCI模块,在调试的过程中遇到一些问题,望各位前辈能指点指点1.      部分寄存器位的配置不清楚
1.1    初始化FIFO,  在使用标志清除位 时,用不用先置1后清零,如下所示
         SciaRegs.SCIFFRX.bit.RXFFOVRCLR                = 1;                //清除接收FIFO溢出标志位
         SciaRegs.SCIFFRX.bit.RXFFOVRCLR                = 0;                //清除接收FIFO溢出标志位
         SciaRegs.SCIFFTX.bit.TXFFINTCLR                = 1;                //发送FIFO清除位  0:无效    1:清除FIFO中断标志位
         SciaRegs.SCIFFTX.bit.TXFFINTCLR           = 0;                //发送FIFO清除位  0:无效    1:清除FIFO中断标志位

1.2    初始化FIFO,在使用复位位是,用不用先清0后置1,这样做有何意义,如下所示
         SciaRegs.SCIFFTX.bit.SCIRST                     = 0;        //SCI复位
         SciaRegs.SCIFFTX.bit.SCIRST                     = 1;         //SCI使能
         SciaRegs.SCIFFRX.bit.RXFIFORESET           = 0;        //复位接收FIFO操作
         SciaRegs.SCIFFRX.bit.RXFIFORESET           = 1;        //使能接收FIFO操作



2.      将串口配置成FIFO模式

2.1    使用中断处理,中断产生的条件是什么?是RXFFST(FIFO中断等级标志)和RXFFIL(FIFO中断等级设定位)相等时才发生中断吗?还是前者小于等于后者就可以发生中断?
2.2   我的接收中断深度设定的是4,即SciaRegs.SCIFFRX.bit.RXFFIL        = 4;                //接收 FIFO 存储深度设置位
         我想只有FIFO存储满来自RXBUF送来的4个字节的数据时,程序才会进中断啊,为什么将rdataA[i]=SciaRegs.SCIRXBUF.all,写在中断处理函数中,程序依然可以进中断,并且可以正常接收数据。
        interrupt void sciaRxFifoIsr(void)               
       {
               Uint16 i;
                for(i=0;i<4;i++)
              {
                       rdataA[i]=SciaRegs.SCIRXBUF.all;         // Read data,rdataA[i]是定义的一个接收数组
               }
                 SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1;   // Clear Overflow flag
                SciaRegs.SCIFFRX.bit.RXFFINTCLR=1;   // Clear Interrupt flag
                PieCtrlRegs.PIEACK.all|=0x100;       // Issue PIE ack
           }

最新回复

28335的SCI的初始化就没那么简单,你可以找ti的官方例程看看sci的初始化过程,再结合datasheet理解一下。  详情 回复 发表于 2015-10-19 16:18
 
点赞 关注

回复
举报

1万

帖子

25

TA的资源

裸片初长成(高级)

沙发
 
这个芯片没用过,帮你顶一下。

刚才看了它的手册,总40页,有用的也就那十来页,很容易搞的。
 
 

回复

667

帖子

3

TA的资源

版主

板凳
 
1.所有的标志位使用之前清零算是一种安全措施,进行保护性确认。
2.当FIFO保存的数据量大于等于设置的level时,进行中断触发。
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

4
 
dontium 发表于 2015-10-19 11:12
这个芯片没用过,帮你顶一下。

刚才看了它的手册,总40页,有用的也就那十来页,很容易搞的。

嗯嗯,谢谢
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

5
 
nemo1991 发表于 2015-10-19 11:37
1.所有的标志位使用之前清零算是一种安全措施,进行保护性确认。
2.当FIFO保存的数据量大于等于设置的leve ...

谢谢您的回复。
我刚查过数据手册,上面说的是发送FIFO数据量状态位小于或等于设置的深度等级时发生中断,但是我感觉有矛盾啊,如果是这样的话,是不是当FIFO每发送一个数据就要进一次中断啊

QQ截图20151019114508.png (69.23 KB, 下载次数: 0)

QQ截图20151019114508.png

点评

哦哦! 不好意思! 我看成接收fifo了,发送fifo肯定是小于等于。  详情 回复 发表于 2015-10-19 12:01
 
 
 

回复

667

帖子

3

TA的资源

版主

6
 
寒塘渡鹤 发表于 2015-10-19 11:51
谢谢您的回复。
我刚查过数据手册,上面说的是发送FIFO数据量状态位小于或等于设置的深度等级时发生中断 ...

哦哦!
不好意思!
我看成接收fifo了,发送fifo肯定是小于等于。
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

7
 
nemo1991 发表于 2015-10-19 12:01
哦哦!
不好意思!
我看成接收fifo了,发送fifo肯定是小于等于。

嘿嘿!没事啦~
能不能回答一下2.2的问题啊?这个一直不理解。
 
 
 

回复

667

帖子

3

TA的资源

版主

8
 
就是4个数据进中断,然后从fifo读取四个数据。
 
 
 

回复

2700

帖子

0

TA的资源

五彩晶圆(初级)

9
 

1.1规格书上写了,写1清标记位,写0无效,那么你写也没用的,这是硬件内部机制了。
1.2,大多模块要求在配置/初始化阶段不能运行,所以在配置开始前复位模块,配置完成后使能模块工作
 
个人签名作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

10
 
elvike 发表于 2015-10-19 15:17
1.1规格书上写了,写1清标记位,写0无效,那么你写也没用的,这是硬件内部机制了。
1.2,大多模块要求在 ...

我所理解SCI模块的寄存器就相当于一系列串联的开关,例如SCI接收的FIFO模式来讲,我们需要使能的寄存器位有,RXENA(SCI接收使能位)、RXFFEINA(接收FIFO中断使能位)、SCIFFENA(SCI  FIFO使能位)和SWRESET(软件复位位),而在初始化寄存器时,我是将除SWRESET位以外的寄存器位都使能了,初始化函数的最好一步使能SWRESET,即SciaRegs.SCICTL1.bit.SWRESET = 1;
这样做合适吗?

点评

28335的SCI的初始化就没那么简单,你可以找ti的官方例程看看sci的初始化过程,再结合datasheet理解一下。  详情 回复 发表于 2015-10-19 16:18
 
 
 

回复

2700

帖子

0

TA的资源

五彩晶圆(初级)

11
 
寒塘渡鹤 发表于 2015-10-19 16:10
我所理解SCI模块的寄存器就相当于一系列串联的开关,例如SCI接收的FIFO模式来讲,我们需要使能的寄存器位 ...

28335的SCI的初始化就没那么简单,你可以找ti的官方例程看看sci的初始化过程,再结合datasheet理解一下。
 
个人签名作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表