首页 > 产品 > 微控制器 (MCU) 和处理器 > MSP430FR4x2xMCU技术培训-关键外设(下) >

MSP430

最新课程

热门课程

MSP430FR4x2xMCU技术培训-关键外设(下)

好 现在这个呢,是我们FR4x和2X系列上的另一个很重要的模块 10位的ADC模块 这个ADC模块跟我们早期的MSP430版本上的 10位ADC模块的是相类似的,它呢,最高的一个运行频率呢,是200 k的 sps。它有十个外部通道,它的内部呢,它支持窗口比较器的 这样一个功能,我们后面会进行具体的介绍。另外呢,它的采用模式呢 它是支持单次采样,重复采样和按照序列采样,这样三种采样模式 同时我们支持一个内部的温度传感器,我们也支持一个内部参考电压 以及在我们这ADC 采样触发呢它可以是软件触发,或者是用 硬件定时器来进行触发。刚才讲过了这个 ADC 模块当中,它支持 一个窗口比较器的功能。 这个窗口比较器的功能 和我们之前FR5x6x系列的ADC下模块的在窗口比较器功能是一样的 这个窗口比较器呢,它可以自行地由硬件来对一些模拟事件 来进行数据的处理,可以根据我们用户配置的一些阈值呢 来自动检测我们外界发生的事件,由于ADC 采样的结果所落入的 和我们所设定的阈值范围不同,它将设置不同的标志位,同时呢 还将触发不同标志位的中断,这样我们器件呢,就可以长期的 处于低功耗模式当中,直到这样的一个 ADC 的采样结果落入某个我们 所感兴趣的范围内,把我们的器件从LPM模式当中唤醒。 这样就是最优化地节省这个系统的功耗 那这里呢就是我们窗口比较器的一个实例。首先呢,我们会 有两个阈值 一个叫 ADChi 阈值高阈值一个叫 ADClo 阈值低阈值 此时我们 ADC 它读取了一个样本 这个样本的值它位于我们 ADChi 和ADC lo 这两个 设定的阈值之间 它位于两个域之间的 这样的一个值,那在这种情况下呢 我们窗口比较器将置位我们的 ADC in in i f g 的这样一个标志位 当我们的 ADC 采样结果这个采样值 它高于我们的 ADChi 设定的阈值 这时候,我们就会 置位 ADinFG 的标志位, 那此时呢我们这个外面的波形呢 它又一次进入了我们 ADChi 和 ADC lo 阈值之间的这样的一个范围。那此时呢我们的 ADC ini fg位将再次 被置位 好然后呢我们外界信号,它的值它低于了我们的 ADC lo 这样的一个标志位,其实呢,我们就将置位我们的 ADC l o if g 的这样的 一个标志位。好我们的波形再次上升,但是呢,它仍然在 ADC lo 这样阈值范围之下,所以此时的仍然是置位我们的 ADC l oi f g 标志位 好 这个基本上呢,就是我们这个窗口比较器的它的工作比较原理。 那根据外界事件所导致的啊,我们 ADC 采样结果的不同呢 我们的不同的标志位呢,就这样被置位啊,或者会有不同的事件的发生 产生不同标志位的中断,那我们的器件就可以根据不同的标志位 或者不同的中断来进行决策是不是需要唤醒我们的器件来对外界的 事件来做出反应,那我们的 ADC 模块和PMM模块呢,它还具备一个 内部的温度传感器。这个内部的温度传感器呢,它是通过 ADC 一个通道 来进行测量的,在FR4x系列上,我们需要注意的一点是这个这个 温度传感器的功能呢,它需要在PMM 模块当中来进行使能 这个温度传感器与早先的MSP 430 产品上的温度传感器是类似的 但是这里有一个常见的问题,我们需要再详细的介绍一下 也就是说,在我们这个器件TLB的结构表格当中呢,我们会有一个 温度校准常数,这个常数呢,可以用于我们这个内部温度传感器 对读取的温度结果来进行矫正以便读取到更精确的一个数值 那使得我们这个读出来的数值等于实际的温度的差值只在几度 范围内,我们这些温度校准值呢,它是在我们的器件在厂里进行 生产的时候呢就会生成的,并且把它保存在我们的 t l b 在这样一个 表格结构当中,那基本上呢我们会使用两点的这样的一个校正方法 来进行这个校正的测量, 这两点也就是说我们器件在生产的时候呢 它会在三十摄氏度和八十五摄氏度的室温环境下来进行 ADC 的采样 并且把这个采样结果 保存在我们TLB的结构当中。那我们用户呢 他就可以根据这样一个两个点的值来对我们实际采样到的温度值 来进行两点校准,就可以从图表上来看,我们的可以用这两个点 绘制一条温度线,这个温度线它在方程的可以看到是 y 等于 mx 加b 这样的一个方程,线性方程,它的 m,斜率呢,是由我们两个温度值 就是八十五减掉三十然后呢再除以我们 ADC 实际读到的数值的差 而得到的。这是我们的斜率,而我们的加的这个b呢,就是我们三十摄氏度 但接下来呢,我们只要把我们实际读到的我们读到的 ADC 的数值呢 代入到 x 当中呢我们就可以换算出来经过校验以后的实际的y 我们的温度值。那我们呢,是可以参考我们的代码示例,通过我们 内置的这个驱动程序库,让整个这样的一个校验校准计算的过程 来变得非常简单。 这是我们的内部温度传感器 这张图表上的说明的就是我们 ADC 内部的一个参考电压的一个功能 我们的内部参考电压 1. 5 伏呢,它在内部呢,是在 ADC 相连的 它可以作为我们ADC采样的一个参考源,同时我们还可以通过这个方法来 对比 dcc 进行测量,我们可以在一个 ADC 的输入通道上来进入一个 已知的 1. 5 伏的电频,然后根据我们右边的显示出来的这个公式呢 就可以推算出我们这个低于 c c 的值,一般呢,我们这个 1. 5伏的 那个内部参考电压呢是用于对我们电池的电压,电池的电压来进行 测量的。以便当电池电压下降到一定程度的时候我们能对这个用户 系统地提出提出报警 如果我们需要在FR4x上使用我们 ADC 的时候呢 我们会涉及到好几个模块,可能不仅仅涉及,我需要设置的 ADC 上的寄存器,它是一个非常庞大的一个一个系统 我要强调 这点呢,是因为这个这个系统当中有些模块呢和其它早期的430 产品器件上的模块会有些不同,比如我们要用我们的温度传感器 或者用我们的内部基准,我们就必须在 pmm模块中先启动这些功能 启动这个模块,使能这些功能 另外当然我们还是需要在ADC模块中 对ADC进行一些常规的设置,比我们采样时间的设置采样通道的设置 还要为 ADC 的时钟源来进行时钟的设置,另外呢如果我们的 ADC 是 通过它们的定时器来进行触发的,我们还需要设置一个定时器,最后我们 还需要通过 sys 模块来使 这个 g p Io 引脚,它的模拟功能 好现在让我们来了解一下这个.fr 4x和2x这个系列当中的一个全新功能 我们的 ir 红外调制模块。那这个调制模块呢,它可以轻松在 外部引脚上输出一个精确的经过调制的红外波型。它支持多种红外的 这样一个协议 比如我们的 ask 或者 fsk调制,它都是支持的 那我们的 syscf ge寄存器当中的 imsel 位呢,它就可以指定这些模式。 在使用我们这个红外调制模块的时候呢,我们仍然可以通过硬件或者软件 这样两种方法所生成的数据进行红外数据的发送,在使用硬件数据 生成这样的一种方法当中呢,我们数据呢,是来来自eus ci/a 或eus ci/ b 这样两个模块,而且呢 它会自动的 串行的来进行八位数据的 传输,而通过软件数据生成的方法,那我们可以直接控制 我们sys cfge寄存器当中的ir data位来直接控制 我们发展进行逻辑0或逻辑1 这样的一个数据的发送。那对于我们 ask 调制,我们的幅度 调制来说呢。通常呢。我们会生成 一种载波的频率和另一种 用于控制这个载波包络的这样的一个频率只是0或者1的这样的 数据发送,我们一般会使用一个 定时器来用于载波的生成 另外呢,我们使用另外一个定时器 或者是直接使用刚开始 sys 寄存器中的IR data 位来指定 这个载波包络是0还是1。 那对于 fsk频率调制来说, 我们要生成两种不同频率 毕竟进行切换,我们有软件 或者硬件来控制这个切换 来指示发出去的数据的0或者1, 同样的,也会有几个不同的协议 那我们一样是使用器件当中PEW 设置相通的两个计时器 定时器 就可以生成这样两种不同的 频率然后呢我们同样是可以通过 e us cm 模块或者IR data 数据以便 控制我们传出去的数据 是如何在这两种频率当中进行切换的 这张图表呢,它就展示了 一个用 ask 进行调制的一个基本设置 首先这个范例当中呢 用ta0,这个定时器生成载波,它用 ta1这个定时器来生成我们 要发送的数据的包络。由图上所示的代码 你可以看到首先我们将 通过ta0的 c c r 2把这个载波波形设置成一个PWM,而且它的频率 要比 ta1的ccr2的频率要高很多, 而又与生成包络的这个ta1的 c c r 2的信号,是要与 ta0的 c c r 2的载波进行一个余的运算 以便生成我们右边的这样的一个波形 根据您的需求 和应用的需求以及一些可用的资源呢 还有很多配置红外生成 其它方法,而具体可以参考相应的 手册 这里呢只是一个ask 调制的 简单的实例。好 最后呢,让我们 来看一下,市面上的很少有类似的 这样的一些 MCU ,它的存储器封装 一样采用一个小容量的存储器封装 而同时呢,提供这样一个 大数据量的 io 口的引脚的 这种封装,那我们六十四个引脚 封装的器件上最多可以提供 六十个GPIO 那全部都可以用不同的 数字或模拟功能来进行运用的 唯一的专用引脚的是电源 引脚和用于调试的 s b w 的这个 串行调试的引脚,那这些引脚的 另一个非常棒的功能 就是我们这些引脚,它都可以 支持我们的电容式触控感应 我们的芯片内部呢,它具有内部 电路,那它可以与通过这个外部电容 电容的不同呢,它形成的 振荡器反馈到我们内部 进行频率的测量, 以便来进行电容感应式触控的开发 具体呢可以使用TI提供的 一个电容式的触控这样的一个软件库 以及呢我们有一些工具, 如touch explore 的如GUI的配置工具 来非常方便轻松地来 进行触控应用的开发 那和FR5x系列一样,在默认 情况下呢,在 BOR复位之后呢 所有的 io 口呢,都会被设置成为了一个 低功耗设置成一个高阻状态 在这样的状态下,它所有的 模块的功能都是被禁止的 以防止任何的电流的消耗,那鉴于 此,在对GPIO进行初始化的时候呢 们需要清除一个 log控制位 以便使能这些GPIO引脚来为应用来进行相应的配置 如果我们是需要从早期的 430 产品移植到我们目前的 这个新的系列产品上, 需要注意的另一个要点呢 是寄存器,是我们的SYSCFG 的 这样的一个新的寄存器 这个寄存器呢。 它用于配置器件上专用的一些设置 这些设置的包括我们的 FRAM的 写入保护,我们的红外调制 我们 ADC 的模拟引脚选择, 和我们LCD的电源引脚选择 而这几部分内容在 我们之前已经谈论过了 好非常感谢各位的 观看本次 MSP430FR2X4X系列 MCU关于关键 外设部分的讲座,谢谢大家

好 现在这个呢,是我们FR4x和2X系列上的另一个很重要的模块

10位的ADC模块 这个ADC模块跟我们早期的MSP430版本上的

10位ADC模块的是相类似的,它呢,最高的一个运行频率呢,是200 k的

sps。它有十个外部通道,它的内部呢,它支持窗口比较器的

这样一个功能,我们后面会进行具体的介绍。另外呢,它的采用模式呢

它是支持单次采样,重复采样和按照序列采样,这样三种采样模式

同时我们支持一个内部的温度传感器,我们也支持一个内部参考电压

以及在我们这ADC 采样触发呢它可以是软件触发,或者是用

硬件定时器来进行触发。刚才讲过了这个 ADC 模块当中,它支持

一个窗口比较器的功能。 这个窗口比较器的功能

和我们之前FR5x6x系列的ADC下模块的在窗口比较器功能是一样的

这个窗口比较器呢,它可以自行地由硬件来对一些模拟事件

来进行数据的处理,可以根据我们用户配置的一些阈值呢

来自动检测我们外界发生的事件,由于ADC 采样的结果所落入的

和我们所设定的阈值范围不同,它将设置不同的标志位,同时呢

还将触发不同标志位的中断,这样我们器件呢,就可以长期的

处于低功耗模式当中,直到这样的一个 ADC 的采样结果落入某个我们

所感兴趣的范围内,把我们的器件从LPM模式当中唤醒。

这样就是最优化地节省这个系统的功耗

那这里呢就是我们窗口比较器的一个实例。首先呢,我们会

有两个阈值 一个叫 ADChi 阈值高阈值一个叫 ADClo 阈值低阈值

此时我们 ADC 它读取了一个样本 这个样本的值它位于我们

ADChi 和ADC lo 这两个 设定的阈值之间

它位于两个域之间的 这样的一个值,那在这种情况下呢

我们窗口比较器将置位我们的 ADC in in i f g 的这样一个标志位

当我们的 ADC 采样结果这个采样值 它高于我们的 ADChi 设定的阈值

这时候,我们就会 置位 ADinFG 的标志位,

那此时呢我们这个外面的波形呢 它又一次进入了我们 ADChi 和 ADC lo

阈值之间的这样的一个范围。那此时呢我们的 ADC ini fg位将再次

被置位 好然后呢我们外界信号,它的值它低于了我们的 ADC lo

这样的一个标志位,其实呢,我们就将置位我们的 ADC l o if g 的这样的

一个标志位。好我们的波形再次上升,但是呢,它仍然在 ADC lo

这样阈值范围之下,所以此时的仍然是置位我们的 ADC l oi f g 标志位

好 这个基本上呢,就是我们这个窗口比较器的它的工作比较原理。

那根据外界事件所导致的啊,我们 ADC 采样结果的不同呢

我们的不同的标志位呢,就这样被置位啊,或者会有不同的事件的发生

产生不同标志位的中断,那我们的器件就可以根据不同的标志位

或者不同的中断来进行决策是不是需要唤醒我们的器件来对外界的

事件来做出反应,那我们的 ADC 模块和PMM模块呢,它还具备一个

内部的温度传感器。这个内部的温度传感器呢,它是通过 ADC 一个通道

来进行测量的,在FR4x系列上,我们需要注意的一点是这个这个

温度传感器的功能呢,它需要在PMM 模块当中来进行使能

这个温度传感器与早先的MSP 430 产品上的温度传感器是类似的

但是这里有一个常见的问题,我们需要再详细的介绍一下

也就是说,在我们这个器件TLB的结构表格当中呢,我们会有一个

温度校准常数,这个常数呢,可以用于我们这个内部温度传感器

对读取的温度结果来进行矫正以便读取到更精确的一个数值

那使得我们这个读出来的数值等于实际的温度的差值只在几度

范围内,我们这些温度校准值呢,它是在我们的器件在厂里进行

生产的时候呢就会生成的,并且把它保存在我们的 t l b 在这样一个

表格结构当中,那基本上呢我们会使用两点的这样的一个校正方法

来进行这个校正的测量, 这两点也就是说我们器件在生产的时候呢

它会在三十摄氏度和八十五摄氏度的室温环境下来进行 ADC 的采样

并且把这个采样结果 保存在我们TLB的结构当中。那我们用户呢

他就可以根据这样一个两个点的值来对我们实际采样到的温度值

来进行两点校准,就可以从图表上来看,我们的可以用这两个点

绘制一条温度线,这个温度线它在方程的可以看到是 y 等于 mx 加b

这样的一个方程,线性方程,它的 m,斜率呢,是由我们两个温度值

就是八十五减掉三十然后呢再除以我们 ADC 实际读到的数值的差

而得到的。这是我们的斜率,而我们的加的这个b呢,就是我们三十摄氏度

但接下来呢,我们只要把我们实际读到的我们读到的 ADC 的数值呢

代入到 x 当中呢我们就可以换算出来经过校验以后的实际的y

我们的温度值。那我们呢,是可以参考我们的代码示例,通过我们

内置的这个驱动程序库,让整个这样的一个校验校准计算的过程

来变得非常简单。 这是我们的内部温度传感器

这张图表上的说明的就是我们 ADC 内部的一个参考电压的一个功能

我们的内部参考电压 1. 5 伏呢,它在内部呢,是在 ADC 相连的

它可以作为我们ADC采样的一个参考源,同时我们还可以通过这个方法来

对比 dcc 进行测量,我们可以在一个 ADC 的输入通道上来进入一个

已知的 1. 5 伏的电频,然后根据我们右边的显示出来的这个公式呢

就可以推算出我们这个低于 c c 的值,一般呢,我们这个 1. 5伏的

那个内部参考电压呢是用于对我们电池的电压,电池的电压来进行

测量的。以便当电池电压下降到一定程度的时候我们能对这个用户

系统地提出提出报警 如果我们需要在FR4x上使用我们 ADC 的时候呢

我们会涉及到好几个模块,可能不仅仅涉及,我需要设置的

ADC 上的寄存器,它是一个非常庞大的一个一个系统 我要强调

这点呢,是因为这个这个系统当中有些模块呢和其它早期的430

产品器件上的模块会有些不同,比如我们要用我们的温度传感器

或者用我们的内部基准,我们就必须在 pmm模块中先启动这些功能

启动这个模块,使能这些功能 另外当然我们还是需要在ADC模块中

对ADC进行一些常规的设置,比我们采样时间的设置采样通道的设置

还要为 ADC 的时钟源来进行时钟的设置,另外呢如果我们的 ADC 是

通过它们的定时器来进行触发的,我们还需要设置一个定时器,最后我们

还需要通过 sys 模块来使 这个 g p Io 引脚,它的模拟功能

好现在让我们来了解一下这个.fr 4x和2x这个系列当中的一个全新功能

我们的 ir 红外调制模块。那这个调制模块呢,它可以轻松在

外部引脚上输出一个精确的经过调制的红外波型。它支持多种红外的

这样一个协议 比如我们的 ask 或者 fsk调制,它都是支持的

那我们的 syscf ge寄存器当中的 imsel 位呢,它就可以指定这些模式。

在使用我们这个红外调制模块的时候呢,我们仍然可以通过硬件或者软件

这样两种方法所生成的数据进行红外数据的发送,在使用硬件数据

生成这样的一种方法当中呢,我们数据呢,是来来自eus ci/a 或eus ci/ b

这样两个模块,而且呢 它会自动的 串行的来进行八位数据的

传输,而通过软件数据生成的方法,那我们可以直接控制

我们sys cfge寄存器当中的ir data位来直接控制 我们发展进行逻辑0或逻辑1

这样的一个数据的发送。那对于我们 ask 调制,我们的幅度

调制来说呢。通常呢。我们会生成 一种载波的频率和另一种

用于控制这个载波包络的这样的一个频率只是0或者1的这样的

数据发送,我们一般会使用一个 定时器来用于载波的生成

另外呢,我们使用另外一个定时器 或者是直接使用刚开始 sys

寄存器中的IR data 位来指定 这个载波包络是0还是1。

那对于 fsk频率调制来说, 我们要生成两种不同频率

毕竟进行切换,我们有软件 或者硬件来控制这个切换

来指示发出去的数据的0或者1, 同样的,也会有几个不同的协议

那我们一样是使用器件当中PEW 设置相通的两个计时器

定时器 就可以生成这样两种不同的 频率然后呢我们同样是可以通过

e us cm 模块或者IR data 数据以便 控制我们传出去的数据

是如何在这两种频率当中进行切换的 这张图表呢,它就展示了

一个用 ask 进行调制的一个基本设置 首先这个范例当中呢

用ta0,这个定时器生成载波,它用 ta1这个定时器来生成我们

要发送的数据的包络。由图上所示的代码 你可以看到首先我们将

通过ta0的 c c r 2把这个载波波形设置成一个PWM,而且它的频率

要比 ta1的ccr2的频率要高很多, 而又与生成包络的这个ta1的

c c r 2的信号,是要与 ta0的 c c r 2的载波进行一个余的运算

以便生成我们右边的这样的一个波形 根据您的需求

和应用的需求以及一些可用的资源呢 还有很多配置红外生成

其它方法,而具体可以参考相应的 手册 这里呢只是一个ask 调制的

简单的实例。好 最后呢,让我们 来看一下,市面上的很少有类似的

这样的一些 MCU ,它的存储器封装 一样采用一个小容量的存储器封装

而同时呢,提供这样一个 大数据量的 io 口的引脚的

这种封装,那我们六十四个引脚 封装的器件上最多可以提供

六十个GPIO 那全部都可以用不同的 数字或模拟功能来进行运用的

唯一的专用引脚的是电源 引脚和用于调试的 s b w 的这个

串行调试的引脚,那这些引脚的 另一个非常棒的功能

就是我们这些引脚,它都可以 支持我们的电容式触控感应

我们的芯片内部呢,它具有内部 电路,那它可以与通过这个外部电容

电容的不同呢,它形成的 振荡器反馈到我们内部

进行频率的测量, 以便来进行电容感应式触控的开发

具体呢可以使用TI提供的 一个电容式的触控这样的一个软件库

以及呢我们有一些工具, 如touch explore 的如GUI的配置工具

来非常方便轻松地来 进行触控应用的开发

那和FR5x系列一样,在默认 情况下呢,在 BOR复位之后呢

所有的 io 口呢,都会被设置成为了一个 低功耗设置成一个高阻状态

在这样的状态下,它所有的 模块的功能都是被禁止的

以防止任何的电流的消耗,那鉴于 此,在对GPIO进行初始化的时候呢

们需要清除一个 log控制位 以便使能这些GPIO引脚来为应用来进行相应的配置

如果我们是需要从早期的 430 产品移植到我们目前的

这个新的系列产品上, 需要注意的另一个要点呢

是寄存器,是我们的SYSCFG 的 这样的一个新的寄存器

这个寄存器呢。 它用于配置器件上专用的一些设置

这些设置的包括我们的 FRAM的 写入保护,我们的红外调制

我们 ADC 的模拟引脚选择, 和我们LCD的电源引脚选择

而这几部分内容在 我们之前已经谈论过了

好非常感谢各位的 观看本次 MSP430FR2X4X系列

MCU关于关键 外设部分的讲座,谢谢大家

视频报错
手机看
扫码用手机观看
收藏本课程
  • MSP430FR4x2xMCU技术培训-关键外设(下) 未学习 MSP430FR4x2xMCU技术培训-关键外设(下)

视频简介

MSP430FR4x2xMCU技术培训-关键外设(下)

所属课程:MSP430FR4x2xMCU技术培训-关键外设(下) 发布时间:2015.04.21 视频集数:1 本节视频时长:00:14:50
MSP430FR4x/FR2x系列的关键外设:LCD、ADC10、IR、IOs。
TI培训小程序