1924|0

6822

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

MSP430之GPIO&ADC&串口 [复制链接]

    最近做的采集设备,采用低功耗的MSP430,。主控芯片需要完成完成三个功能:恒流芯片的驱动(四个管脚输出),8通道ADC转换,波特率230400串口通信。调试完成,每1ms启动一次转换与串口发送数据,没50 ms更改一次GPIO管脚输出,作为横流芯片驱动信号。
遇到的问题以及解决方案:
1. 恒流芯片驱动。恒流芯片需要单片机输出八个脉冲信号完成一次驱动,最开始采用TimerA中断进行延时,一个周期下来最小也要10ms,对采样率影响很大。后面发现驱动的高低电平之间不加延时,恒流芯片也能正常驱动,因此每50ms在GPIO引脚输出八个脉冲,进行一次驱动,耗时小于1ms,可以忽略。
2.中断。ADC采样和发送数据均在TimerB的中断中完成。TimerB有两个中断,TBIE和CCIE,前者是计数器从0计数到65535触发一次中断,后者是从0计数到TBCCR0触发中断。且进入的中断服务程序不同,TBIFG 一般进 TIMERB1_VECTOR;CCIFG 的话要看用的是哪个定时器如果是 CCR0 的话就进TIMERB0_VECTOR,如果是CR1,CCR2……则进TIMERB1_VECTOR。启动计数器,通过将其模式由停止计数设置为增计数即可。SMCLK采用8M,8分频,TBCCR0=1000,准确达到1ms中断一次。
3.ADC转换。先使能通道,打开转换内核,由于采样率较高,设置较低的采样保持时间。MSC置位,使一次采样转换完成后立即进行下一次。SHP置位,采用采样触发器。第一次采样由ADC12SC启动,中断程序中直接disable中断ENC,停止采样。中断结尾处,使能ENC。
4.串口通信,波特率230400,较高。极限传输数据230400/(10*16)=1440.大于1000,1ms能够完成数据传输任务。注意:串口通信需要p3.5,p3.4一定不要用这两个管脚作为输出。选择SMCLK,8M,通过工具计算即可设置波特率发生寄存器的值。

 
点赞 关注

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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