历史上的今天
返回首页

历史上的今天

今天是:2024年12月30日(星期一)

正在发生

2021年12月30日 | MSP430 G2553 比较器Comparator_A+、数据流程图DFD、状态转换图STD

2021-12-30 来源:eefocus

一、CA+构造

MSP430G2553带有一个比较器Comparator_A+(CA+),其构造框图如下图所示。

二、输入 & 输出

如上图所示,比较器有一个同向输入端(V+)和一个反向输入端(V-)。通过软件设置,V+端可以连接到CA0~CA2三个外部管脚之一,或者三个内部电压基准之一;V-端可以连接到CA1~CA7七个外部管脚之一,或者三个内部电压基准之一。内部电压基准可以是0.5*Vcc、0.25*Vcc,或者内部一个二极管的导通电压(约0.55V)。


输出信号可以连接至Timer的外部时钟输入,或者CAOUT对应的管脚;输出信号变化时,可触发CAIFG中断。


CAx、CAOUT对应的MSP430G2553管脚如下图所示。

三、相关设置寄存器

CA+主要寄存器有CACTL1、CACTL2、CAPD三个。其中CAPD用于断开与GPIO管脚相连的数字电路部分,以提高CA+的性能;实际上,当某个管脚被设置成CA+输入时,CAPD会自动置位,因此对于CAPD的操作一般不需关心(除非该管脚还同时用于输入某个数字信号)。


- CACTL2寄存器的P2CAx位段:选择输入信号对应的管脚。

- CACTL1寄存器的CAEx位:切换V+、V-输入信号。该功能用于当输入信号非常接近时,一般用不到。

- CACTL1寄存器的CAON位:关闭/开启CA+。

- CACTL1寄存器的CAREFx位段和CARSEL位:CAREFx位段用于选择CA+参考电压,可以为0.5*Vcc、0.25*Vcc或~0.55V;CARSEL位用于选择参考电压连接至V+还是V-端。注意当V+、V-都连接到外部管脚时,内部参考电压须关闭。

- CACTL2寄存器的CAF位:关闭/开启输入信号滤波。建议开启。

- CACTL2寄存器的CASHSHORT位:将输入信号短接。一般用不到。


四、一个有意思的例子

将电位器连接到P1.1,当P1.1的电压高于0.5*Vcc时,LED灯闪烁;否则LED灯熄灭。由于P1.1对应MSP430G2553芯片的RX,G2 Launchpad已经将其连接到了USB转串口芯片上,因此P1.1作为CA1使用时应将J3上的相关跳线断开。


 1 #include "io430.h"

 2 

 3 #define LED1 BIT0  //red

 4 

 5 #define TRUE 1

 6 #define FALSE 0

 7 

 8 #define LOW_INPUT 0

 9 #define HIGH_INPUT 1

10 

11 //global variable

12 char state = LOW_INPUT;

13 char flash = FALSE; //start with low input, no flash on LED

14 

15 void main(void)

16 {

17     // Stop watchdog timer to prevent time out reset

18     WDTCTL = WDTPW + WDTHOLD;

19     

20     // LED setup

21     P1OUT = 0;

22     P1DIR |= LED1;

23     

24     // DCO setup

25     BCSCTL1 = CALBC1_1MHZ; //running at 1MHz

26     DCOCTL = CALDCO_1MHZ;

27     

28     // ACLK setup

29     BCSCTL3 |= LFXT1S_2; //ACLK source: VLO, measured as 10kHz

30     BCSCTL1 |= DIVA_3; //ACLK = VLO divided by 8: 1.25kHz

31     

32     // Timer0_A setup

33     TA0CCR0 = 250 - 1; //timer overflow freq: 1250/250 = 5Hz(0.2s)

34     TA0CCTL0 = CCIE;//enable interrupt

35     TA0CTL = TASSEL_1 + MC_1 + TACLR;//ACLK, no div, up mode, clear timer

36     

37     // Comparator_A+ setup

38     CACTL1 = CAREF_2 + CARSEL + CAIE;//0.5 Vcc ref on V-, enable interrupt on rising

39     CACTL2 = P2CA4 + CAF; //input CA1 (P1.1, remove the jumper) on V+, filter on

40     CACTL1 |= CAON; //turn on comparator

41     

42     __enable_interrupt();

43     LPM3;

44     

45 }

46 

47 #pragma vector = TIMER0_A0_VECTOR

48 __interrupt void CCR0_ISR(void)

49 {

50     //TA0CCR0 flag clearing is automatic

51     if(flash == FALSE)

52     {

53         P1OUT &= ~LED1; //led off

54     }

55     else

56     {

57         P1OUT ^= LED1; //toggle LED

58     }

59 }

60 

61 #pragma vector = COMPARATORA_VECTOR

62 __interrupt void COMPA_ISR(void)

63 {

64     switch(state)

65     {

66     case LOW_INPUT:

67         if((CACTL2 & CAOUT) == 0x01)

68         {

69             state = HIGH_INPUT;

70             CACTL1 |= CAIES; //value high, so watch for falling edge

71             flash = TRUE; //let led flash      

72         }

73         break;

74     case HIGH_INPUT:

75         if((CACTL2 & CAOUT) == 0x00)

76         {

77             state = LOW_INPUT;

78             CACTL1 &= ~CAIES; //value low, so watch for rising edge

79             flash = FALSE; //turn LED off      

80         }

81         break;      

82     }

83 }


这个例子有意思的地方在于,展示了数据流程图(Data Flow Diagram, DFD)和状态转换图(State Transition Diagram, STD)这两个重要的概念。两个中断程序分别处理来自Timer0_A和CA+的中断,形成两个“process”,它们有自身独有的变量/参数,同时还共享了flash(LED是否闪烁)这一变量。此外,CA+的中断程序包含HIGH_INPUT和LOW_INPUT两种状态,是一个非常简单的状态机。


程序的DFD和CA+中断程序的STD如下图所示。


推荐阅读

史海拾趣

客益(Guestgood)公司的发展小趣事

机顶盒,全称为数字视频变换盒(Set Top Box,简称STB),是现代家庭娱乐中不可或缺的重要设备。它作为连接电视机与外部信号源的桥梁,主要功能在于接收数字电视信号,并将其转换成适合在电视机上播放的格式。机顶盒不仅能接收来自有线电缆、卫星天线、宽带网络及地面广播的信号,还具备强大的媒体处理能力和交互功能,极大地丰富了用户的观看体验。

从技术层面看,机顶盒经历了从模拟到数字的飞跃式发展。早期的机顶盒主要用于有线电视网络的信号解扰,而现代机顶盒则支持高清、甚至4K超高清视频内容的播放,为用户带来更为细腻的画面和震撼的音效。此外,机顶盒还集成了网络交互功能,用户可以通过机顶盒连接到互联网,享受在线购物、观看网络视频、玩游戏等多元化服务,使电视机从单向接收信息的设备转变为智能互动终端。

随着科技的进步,机顶盒的功能和应用场景也在不断扩展。例如,一些先进的机顶盒支持智能语音控制,用户可以通过语音指令搜索节目、调整设置,极大地提升了使用的便捷性。同时,机顶盒还具备存储功能,用户可以将喜欢的媒体文件存储在机顶盒中,随时通过电视屏幕进行观看,享受个性化的娱乐体验。

综上所述,机顶盒作为家庭娱乐的重要组成部分,不仅承载着传输和显示数字视频信号的基本功能,还通过不断的技术创新和应用拓展,为用户提供了更加丰富、便捷、智能的观影体验。随着技术的不断进步和市场的不断扩大,机顶盒将继续在家庭娱乐领域发挥重要作用。

EnerSys公司的发展小趣事

EnerSys一直致力于技术创新和研发投入。公司拥有一支专业的研发团队,不断推出具有竞争力的新产品和解决方案。例如,EnerSys在锂电池领域取得了重要突破,成功开发出高能量密度、长寿命的锂电池产品。这些创新产品不仅满足了客户的多样化需求,还推动了公司在电子行业中的持续发展。

Emulation Technology Inc公司的发展小趣事

Emulation自创立之初,就专注于模拟和仿真技术的研发。在成立初期,公司成功开发出一款具有革命性的电子系统模拟软件,该软件能够准确模拟电子设备的性能和行为,为工程师们提供了强大的设计工具。这一创新技术迅速获得了市场的认可,成为Emulation公司发展的基石。

蓝箭(BLUE ROCKET)公司的发展小趣事

蓝箭电子始终重视创新能力,不断加大研发投入,推动产品的升级换代。公司还积极拓展国际市场,寻求更多的合作机会。未来,蓝箭电子将继续秉承创新、质量、服务的理念,为电子行业的发展贡献更多力量。

这些故事仅是对蓝箭电子在电子行业发展中一些重要节点的概括,具体的发展过程和细节可能还需要进一步了解公司的历史资料和市场动态。希望这些信息能够满足您的需求。

Beta Dyne Inc公司的发展小趣事

近年来,电子行业面临着技术更新换代迅速、市场竞争激烈的挑战。Beta Dyne也不例外,公司面临着来自同行的竞争压力以及客户需求不断变化的挑战。为了应对这些挑战,Beta Dyne不断调整产品策略,加大研发投入,推出了一系列创新产品,并积极拓展新的应用领域。

Electro Technik Industries公司的发展小趣事

随着公司规模的扩大和产品线的增加,ETI开始注重品质管理。公司建立了一套完善的品质管理体系,从原材料采购到生产过程再到成品检验都严格把关。同时,ETI还积极推行精益生产、六西格玛等先进管理方法,提高了生产效率和产品质量。这些措施使ETI的产品在市场上获得了良好的口碑和信誉。

问答坊 | AI 解惑

一份电子工程师常用网站

一份电子工程师常用网站 电子设计技术网: http://www.edn   china.com 这个网站的各种资源较全面,其BLOG比较好使.只是有点慢.  http://www.21     IC.COM 老牌的电子网站,内容多. 电子工程专辑:  ht ...…

查看全部问答>

数控直流恒流源键盘模块设计

硬件电路设计(4*4矩阵式键盘及其接口设计、键输入电路) 软件设计(键扫描、去抖动、键识别及处理程序) 主要技术指标: 1、键盘包括0-9数字键、“确认”、“取消”、“∧”和“∨”键等功能键 2、A/D转换器采用16位高精度、低功耗串行A/D转换 ...…

查看全部问答>

VMware 装tools后的连接问题,有人遇到过吗

xp系统,先前在vwmare6.5里装了redhat9,桥接方式,一切正常 之后在提示下装了tools,问题就来了,单机下xp和linux无法连接通信了 linux里:ping127.0.0.1正常,ping192.168.1.241正常 xp里:ping127.0.0.1正常,ping192.168.1.240不通 但是接 ...…

查看全部问答>

LCD显示省电模式

请问:    在硬件上LCD的背光电源已经打开,即LCD在上电后背光灯亮。如何在LCD显示的过程中使其进入省电模式,即不让背光灯再亮了,以节省电量。进入省电模式是什么概念,是不让LCD背光灯亮吗,还是不让它再显示了? 我在初始化LCD的代 ...…

查看全部问答>

问几个菜菜的问题!!!

看书遇到了几个问题怎么也搞不懂,求助于各位大大们了!!! 第一个是关于最大延时的计算! (6MHz晶振频率)     MOV    R5,#TIME1 LOOP2:MOV    R4,#TIME2 LOOP1:NOP       NOP & ...…

查看全部问答>

单片机控制机械手臂的设计与制作.这个进栈push A 与 出栈 pop A 为何不相匹配? 在keil 中老是说表达类型不匹配指示?请指点!

单片机控制的伺服电机原程序如下: ORG        00H         SJMP        MAIN         ORG        0008H         L ...…

查看全部问答>

nrf24l01 + msp430

被折磨了五天,终于调通了,今天共享,希望有同样经历的可以少走弯路。(还有个问题是发送多个字节的数据,智能读出第一个字节,可能是SPI出问题了吧,希望有解决者指教)一共三个text文件,分别是发送测试、发送、接收,都已在自己的开发板上测试 ...…

查看全部问答>

MSP430F5438A外接25M晶振问题

MSP430F5438A的最小系统,XT1外接32.768K,XT2外接25M晶振。现想用ACLK=XT1,MCLK=SMCLK=XT2。 请教,5438A的datasheet里面说是可以外接25M的,但是具体设置应该是如何?…

查看全部问答>

送一个全新的逗趣调味罐组,

 这个东西是公司发给我们的, 我单身一人用不着,呵呵 估计女同学喜欢这个东西, …

查看全部问答>

Vehicle Spy 3 与CANOE的对比

Vehicle Spy 3 与CANOE的对比 硬件NeoviFire 对比CANOE 功能 Neovi Fire CANOE CAN 卡 SD卡离线行驶记录仪功能 有,2-16G容量,可按网络,消息,触发等多方式过滤记录 无离线功能 Stand&n ...…

查看全部问答>