LPC2478(21)AD7171

本文详细介绍了如何在LPC2478微控制器平台上,结合IAR开发环境和JLINK调试器,与AD7171低功耗16位ADC进行通信。AD7171的特点包括125Hz的输出数据速率、135µA的低功耗和内部时钟振荡器。通过设置PDRST和DOUT/RDY引脚,实现数据的读取。代码部分展示了初始化和读取AD7171转换数据的步骤,包括时序控制和错误检查。
摘要由CSDN通过智能技术生成

1、开发环境

LPC-2478+IAR+JLINK

2、芯片介绍

AD7171是一款极低功耗、16位模数转换器(ADC),内置一个精密16位Σ-Δ型ADC和一个片内振荡 器。该器件功耗仅为135 µA,因此特别适合要求极低功耗的便携式或电池供电产品。它还具有关断模式,该模式下的器件功耗仅为5 μA,从而可延长产品的电池使用时间。

为便于使用,AD7171的所有特性均由专用引脚控制。每次发生数据读取操作时,8个状态位便会附加到16位转换结果上。这些状态位含有一个码序列,可用来确认串行传输的有效性。

AD7171的输出数据速率为125 Hz,建立时间为24 ms。它具有一路差分输入,增益为1。在用户需用外部放大器来满足系统专用滤波或增益要求的应用中,此特性会很有用。

  • 输出数据速率:125 Hz
  • 引脚可编程的掉电和复位功能
  • 状态功能
  • 内部时钟振荡器
  • 电流:135 µA
  • 电源:2.7 V至5.25 V
  • 温度范围:-40°C至+105°C
  • 封装:10引脚3 mm x 3 mm LFCSP封装

3、搬运数据手册

3.1、时序

时序图

3.2、引脚说明

3.3、状态位说明

4、与LPC2478的连接

  • AIN+、AIN-、REF、VDD、NC、GND、REF-与软件无关
  • PDRST:上拉高电平,ADC连续转换
  • DOUT/RDY:连接单片机P1[0],单片机输入ad7171输出
  • SCLK:连接单片机P0[3],单片机输出ad7171输入

5、代码实现

注意:当获得数据后,必须等待8ms才能开始下一次读取数据

#define CLK_Low         (FIO0CLR   |= 0x01 << 3)
#define CLK_High        (FIO0SET   |= 0x01 << 3)
#define AD_DATA_READY   (FIO1PIN & (1 << 0))
typedef enum {
  No_Err,
  Convert_Err,
  Id_Err,
  Status_Err,
  Noknown_Err
}AD7171_STATUS;

void ad7171_init(void);
uint32_t ad7171_read(void);
AD7171_STATUS ErrorCheck(uint8_t Status);
//Delay(12) 1us
void Delay(unsigned int DelayTime)
{ 
    unsigned long time = DelayTime * 12;
    while(time>0){ 
        time--;
    }
}
void ad7171_init(void)
{
    PINSEL0   &= ~(0x03 << 6);  
    FIO0DIR   |= 0x01 << 3;  
    /* 默认高电平 */
    CLK_High;

    PINSEL0   &= ~(0x03 << 0);  
    FIO0DIR   &= ~(0x01 << 0);  
    Delay(1000);
}
/*
默认CLK拉高,
采样时序:
1、时钟拉高,等待DATA拉低,
2、时钟拉低,延时T2,最小100ns
3、时钟拉高,延时T1,最小100ns
4、读取DATA脚的电平
5、循环2-4,得到24位数据
*/
unsigned char StatusBar = 0x00;
unsigned char ReceivedBit = 0;
unsigned short DataReg = 0x0000;
unsigned int ad7171_read(void)
{
    int ready = 1;
    int TempInput = 0;
    int InputRegister[10];
    int i = 0,j = 0;
    CLK_High;
    while(ready){
      ready = AD_DATA_READY;
    }
    Delay(100);
    for(i = 0;i < 3;i++){
        for(j = 0;j < 8;j++){
            TempInput <<= 1;
            CLK_Low;
            Delay(1);
            CLK_High;
            Delay(1);
            if(0x1==AD_DATA_READY){
                TempInput |= 1;
            }
        }
        InputRegister[i] = TempInput;
    }
    CLK_High;
    Delay(10);
    DataReg = InputRegister[1];
    StatusBar = (InputRegister[2] & 0x0000FF);
    Delay(10);
    do   
    {
      ready = AD_DATA_READY;
    }while(ready != 0x01);
    if(ErrorCheck(StatusBar) == No_Err){
      return DataReg;
    }
    return -1;
}
AD7171_STATUS ErrorCheck(uint8_t Status)
{
  if (0x0D == Status){
    /* 没有错误 */
      return No_Err;
  }else {
    if(0x20 ==(Status & 0x20)){
      /* 转换中发生错误 */
      return Convert_Err;
    }
    if (0x05 != (Status & 0x05)){
      /* 串行传输未正确执行 */
      return Id_Err;
    }
    if (0x08 != (Status & 0x08)){
      /* 状态栏ID不匹配错误 */
      return Status_Err;
    }
  }
  return Noknown_Err;
}

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: AD FMC-LPC封装是一种在电子设备中广泛使用的封装技术。它结合了AD(Analog Devices)公司的FMC(FPGA Mezzanine Card)和LPC(Low Pin Count)技术,具有许多优点。 首先,AD FMC-LPC封装具有高度的可扩展性。它通过FMC接口连接到主板上的FPGA芯片,使得用户可以根据实际需求自由选择和搭配不同的扩展板,以满足各种应用的要求。这种可扩展性使得AD FMC-LPC封装可以应用于广泛的领域,如音频和视频处理、通信系统、计算机视觉等。 其次,AD FMC-LPC封装具有较低的引脚数。LPC技术可以减少所需的引脚数量,从而减少了成本和占用空间。这使得AD FMC-LPC封装非常适用于有限的资源环境,如嵌入式系统或小型设备。 另外,AD FMC-LPC封装还具有高速传输能力。它支持高速串行接口标准,如PCIe和Gigabit Ethernet,可以快速传输大量的数据。这对于需要高带宽和快速数据传输的应用非常重要,如高清视频传输或实时数据处理。 此外,AD FMC-LPC封装还提供了全面的软件和硬件支持。AD公司提供了广泛的开发工具,如驱动程序、软件库和示例代码,以帮助开发人员快速开发和部署应用。这大大简化了开发流程,缩短了上市时间。 总之,AD FMC-LPC封装是一种高度可扩展、低引脚数、高速传输和全面支持的封装技术。它为各种应用提供了强大的扩展能力,并且在电子设备的设计和开发中发挥着重要的作用。 ### 回答2: AD FMC-LPC封装是可编程逻辑控制器(FMC)的一种封装标准。AD代表Analog Devices(安富利)公司,是一家全球领先的模拟技术解决方案供应商。FMC代表FPGA Mezzanine Card(可编程逻辑器件中继卡),是一种用于连接FPGA和其他外围设备的标准接口卡。 具体来说,AD FMC-LPC封装是Analog Devices公司基于FMC标准开发的一种FPGA Mezzanine Card接口封装。LPC代表Low Pin Count(低引脚数),指的是该封装标准在设计时采用了较少的引脚数。这种封装标准可以用于连接Analog Devices公司生产的FPGA板卡和其他AD产品或外围设备,实现数据传输和控制功能。 AD FMC-LPC封装的设计主要考虑到接口的普适性和灵活性。通过采用FMC接口标准,可以方便地连接到各种符合FMC标准的设备,实现硬件之间的通信。同时,低引脚数的设计使得封装更加紧凑,提高了系统的集成度和性能。 使用AD FMC-LPC封装的好处是显而易见的。首先,采用了标准化的接口,可以降低系统集成的难度,缩短产品开发周期。其次,低引脚数的设计可以节省PCB板空间,提高系统的稳定性和可靠性。此外,AD FMC-LPC封装还提供了丰富的软件和开发工具,方便用户进行系统的配置和编程。 总之,AD FMC-LPC封装是一种便捷、灵活、高性能的FPGA Mezzanine Card接口封装,可广泛应用于各种数据传输和控制系统中。 ### 回答3: Ad FMC-LPC封装是一种用于嵌入式系统和通信设备的封装标准。它基于FPGA Mezzanine卡(FMC)和Low Pin Count(LPC)连接的组合。 FMC是一种标准化的接口卡,用于连接FPGA和外部设备。它具有高速的连线、灵活的连接和可配置的功能。FMC通过高密度连接器和垂直连接器将FPGA与外部设备连接起来,提供高带宽和低延迟的数据传输。 LPC是一种低引脚数的接口标准,常用于连接嵌入式系统的外部设备。它使用少量的引脚进行通信,降低了系统复杂性和成本。LPC接口通常用于连接存储器、计时器和其他外设。 Ad FMC-LPC封装结合了FMC和LPC的优势,并提供了更高的扩展性和灵活性。它使用FMC的高速接口和灵活的连接性,同时使用LPC的低引脚数和低成本。这种封装标准可以为嵌入式系统和通信设备提供高性能和低成本的解决方案。 在选择Ad FMC-LPC封装时,需要考虑所需的带宽、数据传输速度和连接性能。该封装标准具有广泛的应用领域,包括无线通信、医疗设备、工业控制和高性能计算等。 综上所述,Ad FMC-LPC封装是一种用于嵌入式系统和通信设备的高性能和低成本的封装标准,结合了FMC和LPC的优势。它提供了高带宽、低延迟的数据传输,适用于各种不同的应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值