• 大小: 15KB
    文件类型: .c
    金币: 2
    下载: 1 次
    发布日期: 2021-05-26
  • 语言: 其他
  • 标签: 驱动代码  ADS114  

资源简介

为ADS1148驱动程序,其中包含TI测试代码,可以直接使用

资源截图

代码片段和文件信息


#include “bsp.h“


#define GPIO_NUM_ADS1148_CS             GPIO_NUM_P13
#define GPIO_NUM_ADS1148_SCLK           GPIO_NUM_P35
#define GPIO_NUM_ADS1148_MISO           GPIO_NUM_P33
#define GPIO_NUM_ADS1148_MOSI           GPIO_NUM_P03
#define GPIO_NUM_ADS1148_DRDY           GPIO_NUM_P04
#define GPIO_NUM_ADS1148_START          GPIO_NUM_P56

#define ADS1148_SPI_CS(data)            GPIO_OutData(GPIO_NUM_ADS1148_CS data)
#define ADS1148_SPI_SCLK(data)          GPIO_OutData(GPIO_NUM_ADS1148_SCLK data)
#define ADS1148_SPI_MOSI(data)          GPIO_OutData(GPIO_NUM_ADS1148_MOSI data)
#define ADS1148_SPI_MISO                GPIO_GetIn(GPIO_NUM_ADS1148_MISO)
#define ADS1148_START(data)             GPIO_OutData(GPIO_NUM_ADS1148_START data)
#define ADS1148_DRDY_STATUS             GPIO_GetIn(GPIO_NUM_ADS1148_DRDY)

#define ADS1148_SAMPLE_MAX_TIMES        6

enum ADS1148_COMMAND
{
    ADS1148_CMD_WAKEUP  = 0x00
    ADS1148_CMD_SLEEP   = 0x02
    ADS1148_CMD_SYNC_1  = 0x04
    ADS1148_CMD_SYNC_2  = 0x05
    ADS1148_CMD_RESET   = 0x06
    ADS1148_CMD_NOP     = 0xFF
    ADS1148_CMD_RDATA   = 0x12
    ADS1148_CMD_RDATAC  = 0x14
    ADS1148_CMD_SDATAC  = 0x16
    ADS1148_CMD_RREG    = 0x20
    ADS1148_CMD_WREG    = 0x40
    ADS1148_CMD_SYSOCAL = 0x60
    ADS1148_CMD_SYSGCAL = 0x61
    ADS1148_CMD_SELFCAL = 0x62 
    ADS1148_CMD_Restrict = 0xF1    //restricted command must never be issued to the device.
};

enum ADS1148_REGISTER_ADDRESS
{
    ADS1148_REG_ADDR_MUX0 = 0x00
    ADS1148_REG_ADDR_VBIAS
    ADS1148_REG_ADDR_MUX1
    ADS1148_REG_ADDR_SYS0
    ADS1148_REG_ADDR_OFC0
    ADS1148_REG_ADDR_OFC1
    ADS1148_REG_ADDR_OFC2
    ADS1148_REG_ADDR_FSC0
    ADS1148_REG_ADDR_FSC1
    ADS1148_REG_ADDR_FSC2
    ADS1148_REG_ADDR_IDAC0
    ADS1148_REG_ADDR_IDAC1
    ADS1148_REG_ADDR_GPIOCFG
    ADS1148_REG_ADDR_GPIODIR 
    ADS1148_REG_ADDR_GPIODAT
};


void ADS1148_Pin_Init()
{
    GPIO_SetOut(GPIO_NUM_ADS1148_CS GPIO_Out1);
    GPIO_SetOut(GPIO_NUM_ADS1148_SCLK GPIO_Out1);
    GPIO_SetOut(GPIO_NUM_ADS1148_MOSI GPIO_Out1);
    GPIO_SetIn(GPIO_NUM_ADS1148_MISO);
    GPIO_SetIn(GPIO_NUM_ADS1148_DRDY);
    GPIO_SetOut(GPIO_NUM_ADS1148_START GPIO_Out0);
}

UINT8 ADS1148_SendByte(UINT8 byte)
{
    UINT8 i num = 0;
  
    for(i=0; i<8; i++)
    {
     num <<= 1;
        ADS1148_SPI_SCLK(1);
        delay_2us(1);
     if((byte & 0x80)>>7)
     {
            ADS1148_SPI_MOSI(1);
     }
     else
     {
            ADS1148_SPI_MOSI(0);
     }
        
        if(ADS1148_SPI_MISO)
     {
     num++;
     }
        ADS1148_SPI_SCLK(0);
        delay_2us(1);
     byte <<= 1;
    }
    return num;
}

UINT16 ADS1148_SendHalfWord(UINT16 byte)
{
    UINT16 num = 0;
    UINT8 i;

    for(i=0; i<16; i++)
    {
        num <<= 1;
        ADS1148_SPI_SCLK(1);
        delay_2us(1);
        if((byte & 0x8000)>>15)
        {
            ADS1148_SPI_

评论

共有 条评论