标题:
AD7193驱动代码 C语言
[打印本页]
作者:
tyx623521553
时间:
2019-10-9 17:24
标题:
AD7193驱动代码 C语言
AD7193是一款ADI公司的AD芯片,差分带PGA
具体步骤
1.Init
2.Reset
3.Calibrate(zero&full)校准
4.RangeSetup(1,gain1)单双极性以及增益选择
5.ChannelSelect通道选择
6.SingleConversion获得AD值
7.ConvertToVolts转换成电压
8.ContinuousReadAvg(10)10次采样求均值
9.ConvertToVolts
10.TemperatureRead获得温度AD
这些代码是MCU通用的,不需修改
需要修改的是SPI函数
0.png
(10.43 KB, 下载次数: 69)
下载附件
2019-10-10 01:20 上传
单片机源程序如下:
#include "YRDKRL78G13.h" // YRDKRL78G13 definitions.
#include "ST7579.h" // ST7579 definitions.
#include "TIME.h" // TIME definitions.
#include "AD7193.h" // AD7193 definitions.
/******************************************************************************/
/************************ Variables Definitions *******************************/
/******************************************************************************/
unsigned long result = 0;
unsigned long degreesC = 0;
float voltage = 0;
/***************************************************************************//**
* @brief Draws the ADI logo and displays the name of ADI component.
*
* @param componentName - The name of the ADI component.
*
* @return None.
*******************************************************************************/
void ADI_Component(unsigned char* string)
{
const unsigned char adiComponent[7] =
{
0xFE, 0xFE, 0x82, 0xC6, 0xEE, 0xFE, 0xFE
};
ST7579_Image(0, 0, adiComponent, 7, 8);
ST7579_String(0, 9, string, 0);
}
/***************************************************************************//**
* @brief Main function.
*
* @return None.
*******************************************************************************/
void main(void)
{
/* Initialize YRDKRL78G13. */
YRDKRL78G13_Init();
/* Enable interrupts. */
__enable_interrupt();
/* Initialize timer. */
TIME_Init();
/* Initialize the ST7579 Display. */
ST7579_Init();
/* Initialize AD7193 device. */
if(AD7193_Init())
{
ADI_Component("AD7193 OK");
}
else
{
ADI_Component("AD7193 Err");
}
/* Reset the device. */
AD7193_Reset();
/* Allow a period of 500 us before accessing any of the on-chip registers. */
TIME_DelayUs(500);
/* Calibrate channel 0. */
AD7193_Calibrate(AD7193_MODE_CAL_INT_ZERO, AD7193_CH_0);
AD7193_Calibrate(AD7193_MODE_CAL_INT_FULL, AD7193_CH_0);
while(1)
{
/* Select unipolar operation and ADC's input range to +-2.5V. */
AD7193_RangeSetup(1, AD7193_CONF_GAIN_1);
/* Select channel AIN1(+) - AIN2(-). */
AD7193_ChannelSelect(AD7193_CH_0);
/* Perform a single conversion. */
result = AD7193_SingleConversion();
ST7579_String(2, 0, "CHANNEL 0:", 0);
ST7579_String(3, 0, "RAW: ", 0);
ST7579_String(4, 0, "1RD: [V]", 0);
ST7579_HexNumber(3, 30, result, 0);
/* The value of the voltage reference on PmodAD5 is 2.5V by default. */
voltage = AD7193_ConvertToVolts(result, 2.5);
ST7579_FloatNumber(4, 30, voltage, 3, 0);
/* Continuous reads. */
result = AD7193_ContinuousReadAvg(10);
voltage = AD7193_ConvertToVolts(result, 2.5);
ST7579_String(5, 0, "RAW: ", 0);
ST7579_String(6, 0, "AVG: [V]", 0);
ST7579_HexNumber(5, 30, result, 0);
ST7579_FloatNumber(6, 30, voltage, 3, 0);
/* Read the temperature. */
degreesC = AD7193_TemperatureRead();
ST7579_String(7, 0, "TMP: oC", 0);
ST7579_Number(7, 30, degreesC, 0);
}
}
复制代码
所有资料51hei提供下载:
7193.zip
(26.75 KB, 下载次数: 65)
2019-10-9 17:18 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
zhangleitj
时间:
2019-10-28 16:30
感谢分享
作者:
lyl_420819
时间:
2020-2-16 11:18
很好,学习了,谢谢楼主分享。
作者:
zhou5201986
时间:
2022-5-27 17:59
感谢楼主,应该和AD7190差不多吧
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1