应用笔记 4042

采用MAXQ2000实现与MAX1169的高速I²C接口


摘要 : 本应用笔记给出了MAXQ2000微控制器(MAXQ20核)与MAX1169 16位ADC接口的应用电路,并且提供了所需的全部固件。固件例程采用Rowley CrossWorks IDE 1.0版开发。

MAX1169概述

MAX1169是一款16位低功耗ADC,具有1.7MHz高速I²C兼容串行接口。MAX1169支持快速模式(400kHz)和高速模式(高达1.7MHz)。

硬件说明

本应用笔记使用了MAX1169评估(EV)板MAXQ2000评估板。MAX1169评估板包含MAX1169、所需的全部无源器件以及经过验证的PCB布板。评估板电路如图1所示。MAX1169评估板并不带有MAXQ2000微控制器;系统通过SCL、SDA以及GND将MAXQ2000评估板和MAX1169评估板相连。此外,分别将DVDD和AVDD连接到+3.3V和+5V电源。

图1. MAX1169评估板原理图
图1. MAX1169评估板原理图

MAX1169的引脚排列可以很方便地实现模拟部分和数字部分的隔离。IC右侧的引脚8至引脚13的模拟部分共地,而IC左侧的引脚1至引脚7的数字部分共地。引脚14也是数字部分,但可以很容易地实现与IC左侧的部分共地。图2给出了元件放置的示例。为了实现最佳性能,推荐设计人员采用独立的模拟地和数字地,如图3所示。在靠近MAX1169的地方通过磁珠将两个地平面连接在一起。采用诸如TDK的MMZ1608B601C的磁珠将两个地平面连接在一起,防止微控制器的系统时钟以及其谐波进入模拟地。已知MAXQ2000的系统时钟为20MHz,MMZ1608B601C根据其指定的阻抗和频率特性选择。图4给出了MMZ1608B601C的阻抗与频率的关系。

图2. MAX1169评估板元件布局
图2. MAX1169评估板元件布局

图3. MAX1169评估板采用独立的模拟地和数字地
图3. MAX1169评估板采用独立的模拟地和数字地

图4. MMZ1608B601C磁珠阻抗与频率的对应关系
图4. MMZ1608B601C磁珠阻抗与频率的对应关系

MAXQ2000评估板包含完整的软件、硬件、代码范例以及MAXQ2000微控制器入门设计所需的文档。评估板数据资料还给出了MAXQ2000评估板的电路图。

固件说明

固件例程采用Rowley CrossWorks IDE Version 1.0开发。Maxim网站提供了Rowley Cross Works以及第三方MAXQ®微控制器开发工具。

CrossWorks主源文件(main.c)初始化MAXQ2000的UART,从hsi2c.asm调用高速I²C读函数,并且通过串口发送MAX1169的采样数据。所有串行端口程序,例如TeraTerm可以用于查看PC上的范例。

hsi2c.asm文件采用汇编编写,是高速I²C固件的驱动。汇编程序例程通过MAXQ2000的通用输入/输出(GPIO)端口逐位控制高速I²C接口,获取来自MAX1169的采样结果。MAXQ2000的20MHz系统时钟允许逐位控制的高速I²C接口速率高达1.7MHz。

hsi2c.asm文件应该在驱动器使能以前对其进行配置。
  1. 编辑I2C_ADDR定义状态,改变器件的I²C地址。例如,0x7F地址的编码为:
      I2C_ADDR7  equ 0
      I2C_ADDR6  equ 1
      I2C_ADDR5  equ 1
      I2C_ADDR4  equ 1
      I2C_ADDR3  equ 1
      I2C_ADDR2  equ 1
      I2C_ADDR1  equ 1
    
  2. 假定系统时钟为20MHz (MAXQ2000晶振)的源代码。

    下载:源代码(ZIP, 10.5kB)

结论

高速I²C的规范早在2000年1月就已经提出,然而,至今为止很少有微控制器带有高速I²C外设。因为很少有器件,例如ADC、DAC、CODEC甚至电源电压专门设计支持高速I²C接口。本应用笔记给出了实际应用更广泛的高速I²C例程。