0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用MAXQ2010评估板读取温度

星星科技指导员 来源:ADI 作者:ADI 2023-02-20 10:19 次阅读

本应用笔记演示了MAXQ微控制器应用开发的简便性,并提供了IAR嵌入式工作台®集成开发环境和MAXQ®评估(EV)板。演示简单开发过程的最简单方法是使用示例应用程序。本应用使用MAXQ2010 RISC微控制器上的UART定时器ADC来监视和报告温度。

应用概述

本文描述的示例应用使用MAXQ2010处理器和MAXQ2010评估(EV)板。本例展示了微控制器的UART、集成ADC控制器和器件定时器的用途。定时器用于每 500ms 生成一次中断。MAXQ2010端口与ADC接口,用于数据采集。然后通过将热敏电阻连接到MAXQ2010的ADC来获取温度读数。当发生中断时,MAXQ2010获取温度读数,并将结果输出到其串行端口之一。

读取 ADC 数据

在示例应用中,ADC控制器读取随温度变化的模拟输入。在读取任何输入之前,应用必须设置ADC的时钟、转换模式(单路或连续)、基准电压源(内部、外部或AVDD),以及感兴趣源的输入通道。需要初始化几个寄存器才能实现ADC转换。

void initADC ( )
{
  ADCN = 0x00; // Single conversion, external AVDD reference, divide-by-1 clock frequency.
  ADST = 0x10; //Select configuration register - read/write access on ADDATA.
  ADDATA = 0x00; //Channel 0 for AN0.
  ADDATA = 0x01; //Channel 0 for AN1.
  ADDATA = 0x02; //Channel 0 for AN2.
  ADDATA = 0x03; //Channel 0 for AN3.
  ADDATA = 0x04; //Channel 0 for AN4.
  ADDATA = 0x05; //Channel 0 for AN5.
  ADDATA = 0x06; //Channel 0 for AN6.
  ADDATA = 0x07; //Channel 0 for AN7, thermistor is attached on this channel.
  ADADDR = 0x07; //Selecting 0x07 as the last conversion configuration register.
}

初始化后,设置ADST寄存器的ADCONV位将启动转换。硬件通过清除相同的位来指示转换完成。要读取结果,请将ADST寄存器的ADIDX[3:0]位设置为目标输入通道。然后,ADDATA寄存器将保存相应通道的数字数据。在本示例应用中,AN7 被分配给 ADC 数据缓冲器 7。因此,要读取热敏电阻数据,请设置 ADST = 0x07 并读取 ADDATA。 对读取的数字值执行以下步骤以达到温度:

unsigned int getADCReading()
{
  unsigned short data = 0;

  ADST_bit.ADCONV = 1; //Enable conversion.
  while( ADST_bit.ADCONV == 0x01 ); //ADST.ADCONV bit indicates conversion in progress.
  ADST = 0x07; //We are interested in reading only the AN7 input, that is thermistor data.
  data = ADDATA; //Read AN7 data.
  return data;
}

计算 AN7 处的模拟输入,以伏特为单位,对应于读取的数字值。

计算与AN7处模拟输入相对应的热敏电阻电阻。

以摄氏度为单位计算温度。

写入串行端口

在示例应用中,MAXQ2010的一个串行端口用于输出当前温度读数。在将任何数据写入端口之前,应用程序必须设置波特率和串行端口模式。只需初始化几个寄存器即可启用串行端口通信

void initSerial()
{
  SCON0_bit.SM1 = 1; // Set to Mode 1.
  SCON0_bit.REN = 1; // Enable receives.
  SMD0_bit.SMOD = 1; // Set baud rate to 16 times the baud clock.
  PR0 = 0x75F7; // Set phase for 115200 with an 8MHz crystal.
  SCON0_bit.TI = 0; // Clear the transmit flag.
  SBUF0 = 0x0D; // Send carriage return to start communication.
}

在UART中,单个寄存器发送和接收串行数据。写入 SBUF0 寄存器将启动传输。当串行端口上的数据可用时,读取 SBUF0 寄存器将检索输入。 示例程序使用以下函数将数据输出到串行端口。

int putchar(int ch)
{
  while(SCON0_bit.TI == 0); // Wait until we can send.
  SCON0_bit.TI = 0; // Clear the sent flag.
  SBUF0 = ch; // Send the char.
  return ch;
}

使用计时器生成周期性中断

此示例应用程序中使用的最后一个组件是 16 位计时器之一。定时器生成中断,每秒触发两次温度读数。要为此示例配置计时器,程序员必须设置重新加载值,指定时钟源,然后启动计时器。以下代码显示了初始化计时器 B 所需的步骤。

TB0V = 0x00000; // Set current timer value.
TB0R = 0x0F42; // Set reload value.
TB0CN = 0x0506; // Set Timer Clock = SysClk/1024, Reload Timer Mode, Interrupt Enabled.

使用此计时器作为此示例的中断源还需要执行几个步骤。MAXQ架构的中断必须在三个级别上启用:全局、每个模块和本地。使用 IAR™ 编译器,通过调用函数启用全局中断。此功能可有效设置中断和控制 (IC) 寄存器的中断全局使能 (IGE) 位。由于定时器B0位于模块4中,因此设置中断掩码寄存器(IMR)的位4以启用模块的中断。通过在定时器B控制寄存器(TB0CN)中设置启用定时器B中断(ETB)位来启用本地中断。这些步骤如下所示。 最后,使用中断需要初始化中断向量。IAR 的编译器允许为每个模块使用不同的中断处理函数。为特定模块设置中断处理程序需要使用 #pragma 向量指令。中断处理函数声明前面还应带有 __interrupt 关键字。示例应用程序通过以下方式声明模块 4 的中断处理程序。

__enable_interrupt()
TB0CN = 0x506; // Enable interrupts along with setting Timer Clock and run Timer.
IMR |= 0x10; // Enable the interrupts for module 4.
#pragma vector = 4
__interrupt void timerInterrupt()
{
// Add interrupt handler here.
}

MAXQ2010评估板和IAR IDE设置

运行示例应用程序需要以下设置。

MAXQ2010评估板应具有:

a. JU14 和 JU22 短路以启用通道 AN7 上的热敏电阻读数。

b. JU9 引脚 2 和 3 短路以启用 UART0。

c. JU8开路,让8MHz晶振源控制器。

IAR IDE 项目选项应具有:

a. lnkmaxq2010.xcl 作为链接器命令文件(从“项目”菜单中选择“选项”,然后从“类别”列表中选择“链接器”,然后选择“配置”选项卡)。

b. maxq2010.ddf 作为设备描述文件(从“项目”菜单中选择“选项”,然后从“类别”列表中选择“调试器”,然后选择“设置”选项卡)。

c. JTAG作为驱动程序(从“项目”菜单中选择“选项”,然后从“类别”列表中选择“调试器”,然后选择“设置”选项卡)。

d. COMx端口设置以与JTAG通信(从“项目”菜单中选择“选项”,然后从“类别”列表中选择JTAG)。

电脑超级终端设置应具有:

a. PC COMx端口,MAXQ0的UART2010连接到该端口。

二。配置属性为 115200 波特率、8 个数据位、1 停止位以及无奇偶校验和流量控制。

该样应用使用MAXQ IAR嵌入式工作台V2.12A进行了测试。

图 1

显示了预期的输出。

pYYBAGPy2KiAJMi_AAB7JbnIPb8308.gif

图1.示例应用程序输出。

结论

如这些代码示例所示,通过学习几个外设寄存器的细节,程序员能够轻松开发MAXQ2010微控制器和MAXQ系列处理器的应用。IAR 嵌入式工作台的添加允许使用符合 ANSI 标准的 C 代码编写代码,从而加快了开发过程。在此处下载此示例应用程序的完整源代码。阅读代码开头的说明和注释,了解有关所需设置和 IAR 编译器版本的详细信息

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6809

    浏览量

    147637
  • 处理器
    +关注

    关注

    68

    文章

    18275

    浏览量

    222164
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117731
收藏 人收藏

    评论

    相关推荐

    MAXQ1850评估套件(EV kit)和面向MAXQ30的CrossWorks编译器的设计方案

    (例如,温度、电压)MAXQ1850评估套件是安全应用原型开发的理想平台。套件提供一个RS-232串口,两个智能卡插槽(一个全尺寸,一个SIM卡),一个USB连接器,一个LCD屏,一个16按键键盘以及
    发表于 12-24 09:23

    MAXQ2010 pdf datasheet (16-Bit

    The MAXQ2010 microcontroller is a low-power, 16-bit device that incorporates a high-performance
    发表于 10-01 11:59 11次下载

    使用MAXQ2000评估板的应用实例

    摘要:本文介绍了利用MAXQ系列微控制器开发一个产品的具体技术。MAXQ2000评估板被用来开发一个特殊处理器外设,给出了LCD控制、SPI通信、通过串口传输数据、定时器使用和响应中
    发表于 04-23 17:33 34次下载

    MAXQ2010中文资料,pdf (16位混合信号微控制器 提供LCD接口)

    MAXQ2010微控制器是一款低功耗、16位器件,包含高性能12位多路ADC和液晶显示器(LCD)接口。配合高性能、低功耗混合信号集成电路,MAXQ2010可理想用于各种系统。 MAXQ2010
    发表于 05-29 11:26 67次下载

    MAXQ2010评估套件

    MAXQ2010评估套件 MAXQ2010评估套件是经过验证的平台,可方便地用来评估MAX2010
    发表于 04-09 15:37 25次下载

    MAXQ2010提供LCD驱动器的16位混合信号微控制器

    MAXQ2010提供LCD驱动器的16位混合信号微控制器 The MAXQ2010 microcontroller is a low-power, 16-bit device
    发表于 10-01 12:02 521次阅读

    采用MAXQ1103评估套件和面向MAXQ30的CrossW

    采用MAXQ1103评估套件和面向MAXQ30的CrossWorks编译器进行设计 摘要:本应用笔记介绍怎样针对MAXQ1103微控制器开发、构建并调试应用程序。这本应用笔记使
    发表于 01-13 08:05 921次阅读
    采用<b class='flag-5'>MAXQ</b>1103<b class='flag-5'>评估</b>套件和面向<b class='flag-5'>MAXQ</b>30的CrossW

    采用MAXQ2010的低功耗医学数据记录仪的设计

    采用MAXQ2010的低功耗医学数据记录仪的设计 许多医学应用都需要不用外接电源线和数据线的便携式自供电设
    发表于 03-01 18:02 506次阅读
    采用<b class='flag-5'>MAXQ2010</b>的低功耗医学数据记录仪的设计

    低功耗医学数据记录仪的设计

    像许多用来采集或存储数据的电子设备一样,基于MAXQ2010的数据记录仪采用USB接口与主机(如个人电脑)通信。但是,由于MAXQ2010自己没有USB接口,我们利用FTDI公司的芯片FT232R实现USB与UAR
    发表于 12-06 11:04 1064次阅读
    低功耗医学数据记录仪的设计

    MAXQ2010的功能框图

    MAXQ2010的功能框图如下图所示: 图 MAXQ2010的功能框图
    发表于 09-26 15:24 929次阅读
    <b class='flag-5'>MAXQ2010</b>的功能框图

    MAXQ1850-KIT评估套件

    MAXQ1850-KIT评估套件
    发表于 05-16 18:19 6次下载
    <b class='flag-5'>MAXQ</b>1850-KIT<b class='flag-5'>评估</b>套件

    MAXQ610评估板中文资料

    MAXQ610评估板(EV kit)是经过验证的平台,可方便地用来评估用于电池供电设备的低功耗、16位、RISC微控制器MAXQ610的功能
    发表于 08-23 16:24 22次下载
    <b class='flag-5'>MAXQ</b>610<b class='flag-5'>评估</b>板中文资料

    MAXQ1050的评估套件和面向MAXQ30入门的CrossStudio编译

    MAXQ1050的评估套件和面向MAXQ30入门的CrossStudio编译
    发表于 10-31 10:14 14次下载

    MAXQ2010-RFX+ MAXQ2010-RFX+ - (Maxim Integrated) - 嵌入式 - 微控制器

    电子发烧友网为你提供()MAXQ2010-RFX+相关产品参数、数据手册,更有MAXQ2010-RFX+的引脚图、接线图、封装手册、中文资料、英文资料,MAXQ2010-RFX+真值表,MAX
    发表于 11-16 18:58
    <b class='flag-5'>MAXQ2010</b>-RFX+ <b class='flag-5'>MAXQ2010</b>-RFX+ - (Maxim Integrated) - 嵌入式 - 微控制器

    MAXQ2010-KIT# 评估板 - 嵌入式 - MCU,DSP

    电子发烧友网为你提供Maxim(Maxim)MAXQ2010-KIT#相关产品参数、数据手册,更有MAXQ2010-KIT#的引脚图、接线图、封装手册、中文资料、英文资料,MAXQ2010-KIT#真值表,
    发表于 02-06 19:23
    <b class='flag-5'>MAXQ2010</b>-KIT# <b class='flag-5'>评估</b>板 - 嵌入式 - MCU,DSP