1974|20

2578

帖子

6

TA的资源

五彩晶圆(初级)

ADX824 32bit ADC驱动 [复制链接]

 
#include "main.h"
#include "main_thread.h"
#include "set.h"
#include "ADX824.H"


/*****************************************
1 delay(TCSSC) > 40ns
2 delay(TSCLKDLY) > (24 * (1 /fclk)) 
3 delay(TSCSC)  > (24 * (1 /fclk))
4 Send the CMD_RDATAC before using ADX824_ReadValue
*****************************************/


/*
Function:       ADX824_Init
Description:    ADX824 GPIO and SPI initialization  
Input :         null
return:         null
*/
void ADX824_Init(void)
{
	// RESET/PWDN/RESET definition
	GPIO_Init();
	ADX82X_PWDN_HIGH;
	ADX82X_RESET_HIGH;
	// SPI INIT   CPOL = LOW/CPHA = 1EDGE/BaudRate 2Mhz
	ADX824_SPI_Init();
}

/*
Function:       ADX824_WriteCMD
Description:    ADX824 Write cmd 
Input :         CMD
return:         null
*/
void ADX824_WriteCMD(uint8_t CMD)
{
	uint8_t r;
	SPI_NSS_L;
	delay(TCSSC);
	ADX824_SPI_TransmitReceive_ReadSetREG(&CMD,&r,1);
	delay(TSCSC);
	SPI_NSS_H;
}

/*
Function:       ADX824_SetReg
Description:    ADX824 Write register
Input :         regAddess : Need to write the first address of the register
								sbuff : Write reg value
								size:		Write the number of registers
return:         null
*/
void ADX824_SetReg(uint8_t regAddess,uint8_t *sbuff,uint8_t size)
{
	uint8_t p[3],r[20],i;
	
	p[0] = CMD_SDATAC;
	p[1] = CMD_WREG | regAddess;
	p[2] = size - 1;
	SPI_NSS_L;
	delay(TCSSC);
	for(i = 0;i < 3;i ++)
	{
		ADX824_SPI_TransmitReceive_ReadSetREG(&p[i],&r[i],1);
		delay(TSCLKDLY);
	}
	for(i = 0;i < size;i ++)
	{
		ADX824_SPI_TransmitReceive_ReadSetREG(&sbuff[i],&r[i],1);
		delay(TSCLKDLY);
	}
	delay(TSCSC);
	SPI_NSS_H;
}

/*
Function:       ADX824_ReadReg
Description:    ADX824 read register
Input :         regAddess : Need to read the first address of the register
								sbuff : Read register save buff
								size:		read the number of registers
return:         null
*/
void ADX824_ReadReg(uint8_t regAddess,uint8_t *rbuff,uint8_t size)
{
	uint8_t p[3],r[20],i;
	
	p[0] = CMD_SDATAC;
	p[1] = CMD_RREG | regAddess;
	p[2] = size - 1;
	SPI_NSS_L;
	delay(TCSSC);
	for(i = 0;i < 3;i ++)
	{
		ADX824_SPI_TransmitReceive_ReadSetREG(&p[i],&r[i],1);
		delay(TSCLKDLY);
	}
	for(i = 0;i < size;i ++)
	{
		ADX824_SPI_TransmitReceive_ReadSetREG(&r[i],&rbuff[i],1);
		delay(TSCLKDLY);
	}
	delay(TSCSC);
	SPI_NSS_H;
}

/*
Function:       ADX824_ReadValue
Description:    ADX824 read value
Input :         null
return:         read value
*/
uint32_t ADX824_ReadValue(void)
{
	uint8_t p[4],r[4];
	uint32_t  value;
	SPI_NSS_L;
	ADX824_SPI_TransmitReceive_ReadValue(p,r,4);
	SPI_NSS_H;
	value = (uint32_t)(r[0] << 24) + (uint32_t)(r[1] << 16) + (uint32_t)(r[2] << 8) + (uint32_t)(r[3]);
	return value;
}

void ADX824_Test(void)
{
	uint32_t Value;
	uint8_t config0;
	ADX824_Init();
	config0 = Pulse_sync_mode | High_resolution_mode | DR_500sps | Linear_phase | FILTR_Sinc_LPF;
	ADX824_SetReg(CONFIG0,&config0,1);
	ADX824_WriteCMD(CMD_RDATAC);
	while(1)
	{
		if(ADX82X_DRDY_READ == 0)
		{
			Value = ADX824_ReadValue();
		}
	}
}

#ifndef _ADX824_H_
#define _ADX824_H_

#define ADX82X_PWDN_HIGH		
#define ADX82X_PWDN_LOW			
#define ADX82X_RESET_HIGH		
#define ADX82X_RESET_LOW		

#define ADX82X_DRDY_READ		

#define	SPI_NSS_L						
#define	SPI_NSS_H						

#define CMD_WAKEUP					0x00
#define CMD_STANDBY					0x02
#define CMD_SYNC						0x04
#define	CMD_RESET						0X06
#define CMD_RDATAC					0X10
#define CMD_SDATAC					0x11
#define	CMD_RDATA						0x12
#define	CMD_RREG						0x20
#define CMD_WREG						0x40
#define CMD_OFSCAL					0x60
#define	CMD_GANCAL					0x61

#define REG_ID_CFG					0X00
#define	CONFIG0							0X01
#define	CONFIG1							0X02
#define	HPF0								0X03
#define	HPF1								0X04
#define	OFC0								0X05			
#define	OFC1								0X06		
#define	OFC2								0X07	
#define	FSC0								0X08	
#define	FSC1								0X09	
#define	FSC2								0X0A	

//config0 01h
#define Pulse_sync_mode						0x00
#define Continuous_sync_mode			0x80
#define	Low_power_mode						0x00					
#define	High_resolution_mode			0x40	
#define DR_250sps									0x00
#define	DR_500sps									0x08	
#define	DR_1000sps								0x10
#define	DR_2000sps								0x18
#define	DR_4000sps								0x20
#define Linear_phase							0x00
#define Minimum_phase							0x04
#define	FILTR_Reserved						0x00
#define	FILTR_Sinc								0x01
#define	FILTR_Sinc_LPF						0x02
#define	FILTR_Sinc_LPF_HPF				0x03

//config1 02h
#define MUX_AINP1_N1							0X00
#define MUX_AINP2_N2							0X10
#define MUX_Shout_400_res					0X20
#define MUX_Shout_AIN1_CONN_AIN2	0X30
#define MUX_EXT_Shout_AINN2				0X40
#define PGA_CHOP_DISABLE					0X00
#define PGA_CHOP_ENABLE						0X08
#define PGA_GAIN_1								0x00
#define PGA_GAIN_2								0x01
#define PGA_GAIN_4								0x02
#define PGA_GAIN_8								0x03
#define PGA_GAIN_16								0x04
#define PGA_GAIN_32								0x05
#define PGA_GAIN_64								0x06

void ADX824_Init(void);
void ADX824_WriteCMD(uint8_t CMD);
void ADX824_SetReg(uint8_t regAddess,uint8_t *sbuff,uint8_t size);
void ADX824_ReadReg(uint8_t regAddess,uint8_t *rbuff,uint8_t size);
uint32_t ADX824_ReadValue(void);

#endif

ADX824驱动,通常是用来测地震的

此帖出自stm32/stm8论坛

最新回复

资料及采购通道在哪  详情 回复 发表于 2024-5-13 14:14
个人签名

希望做一些大家觉得好用的东西!


回复
举报

6319

帖子

0

TA的资源

五彩晶圆(高级)

厉害了,来测地震的

此帖出自stm32/stm8论坛

点评

测其他的当然也行,但是可以用来测地震  详情 回复 发表于 2023-9-13 08:43

回复

2578

帖子

6

TA的资源

五彩晶圆(初级)

Jacktang 发表于 2023-9-13 07:28 厉害了,来测地震的

测其他的当然也行,但是可以用来测地震

此帖出自stm32/stm8论坛
个人签名

希望做一些大家觉得好用的东西!


回复

1115

帖子

17

TA的资源

纯净的硅(高级)

这么高精度,确实少见,不知价格几何?

此帖出自stm32/stm8论坛

点评

价格不太清楚,官网看看  详情 回复 发表于 2023-9-13 08:55

回复

2578

帖子

6

TA的资源

五彩晶圆(初级)

fxyc87 发表于 2023-9-13 08:47 这么高精度,确实少见,不知价格几何?

价格不太清楚,官网看看

此帖出自stm32/stm8论坛
个人签名

希望做一些大家觉得好用的东西!


回复

6039

帖子

4

TA的资源

版主

楼主这是准备用到哪里呢?

此帖出自stm32/stm8论坛

点评

是我们公司的芯片,我分享下驱动  详情 回复 发表于 2023-9-13 09:51

回复

2578

帖子

6

TA的资源

五彩晶圆(初级)

damiaa 发表于 2023-9-13 09:25 楼主这是准备用到哪里呢?

是我们公司的芯片,我分享下驱动

此帖出自stm32/stm8论坛
个人签名

希望做一些大家觉得好用的东西!


回复

27

帖子

3

TA的资源

一粒金砂(中级)

这个精度够高的,想来价格也应该是天花板级别的。

此帖出自stm32/stm8论坛

点评

还好还好,国产肯定是物美价廉  详情 回复 发表于 2023-9-13 10:57

回复

2578

帖子

6

TA的资源

五彩晶圆(初级)

hhp_008 发表于 2023-9-13 10:03 这个精度够高的,想来价格也应该是天花板级别的。

还好还好,国产肯定是物美价廉

此帖出自stm32/stm8论坛
个人签名

希望做一些大家觉得好用的东西!


回复

5637

帖子

6

TA的资源

版主

这么高的精度有点不可思议,一般24为就算挺高的了  

此帖出自stm32/stm8论坛

点评

各有各的市场  详情 回复 发表于 2023-9-15 17:21
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引


回复

2578

帖子

6

TA的资源

五彩晶圆(初级)

秦天qintian0303 发表于 2023-9-15 17:20 这么高的精度有点不可思议,一般24为就算挺高的了  

各有各的市场

此帖出自stm32/stm8论坛
个人签名

希望做一些大家觉得好用的东西!


回复

6763

帖子

9

TA的资源

版主

测其他的当然也行,但是可以用来测地震,来个测地震的原理图,我们学习学习呀!

此帖出自stm32/stm8论坛

点评

没有测地震的原理图,有客户这么用  详情 回复 发表于 2023-9-15 19:27

回复

2578

帖子

6

TA的资源

五彩晶圆(初级)

lugl4313820 发表于 2023-9-15 18:40 测其他的当然也行,但是可以用来测地震,来个测地震的原理图,我们学习学习呀!

没有测地震的原理图,有客户这么用

此帖出自stm32/stm8论坛
个人签名

希望做一些大家觉得好用的东西!


回复

346

帖子

3

TA的资源

纯净的硅(初级)

能分享数据手册吗?看看参数如何

此帖出自stm32/stm8论坛

点评

半导小芯搜索一下  详情 回复 发表于 2023-9-17 20:44

回复

2578

帖子

6

TA的资源

五彩晶圆(初级)

hjl2832 发表于 2023-9-17 20:04 能分享数据手册吗?看看参数如何

半导小芯搜索一下

此帖出自stm32/stm8论坛
个人签名

希望做一些大家觉得好用的东西!


回复

2056

帖子

0

TA的资源

五彩晶圆(初级)

要设计高精度的参考源吗?如果内部有参考源就好了

 

此帖出自stm32/stm8论坛

点评

外部高精度参考看看凌特  详情 回复 发表于 2023-9-25 09:07

回复

2578

帖子

6

TA的资源

五彩晶圆(初级)

IC爬虫 发表于 2023-9-25 09:06 要设计高精度的参考源吗?如果内部有参考源就好了  

外部高精度参考看看凌特

此帖出自stm32/stm8论坛
个人签名

希望做一些大家觉得好用的东西!


回复

7274

帖子

18

TA的资源

五彩晶圆(中级)

32bit这得信号多稳定啊。。。不然的话随便跳一点,后面一大半数据都在飘。

此帖出自stm32/stm8论坛

点评

是的嘞  详情 回复 发表于 2023-9-27 16:05
个人签名

默认摸鱼,再摸鱼。2022、9、28


回复

2578

帖子

6

TA的资源

五彩晶圆(初级)

freebsder 发表于 2023-9-27 15:20 32bit这得信号多稳定啊。。。不然的话随便跳一点,后面一大半数据都在飘。

是的嘞

此帖出自stm32/stm8论坛
个人签名

希望做一些大家觉得好用的东西!


回复

1

帖子

0

TA的资源

一粒金砂(初级)

资料及采购通道在哪


此帖出自stm32/stm8论坛

点评

我的邮箱 xutong@anlogysemi.com  详情 回复 发表于 2024-5-13 16:48

回复
您需要登录后才可以回帖 登录 | 注册

猜你喜欢
随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
用51DIY个电子日历,如何?

近日闲来无事,颇有生非之感.忽见坛子里有一文曰:,遂依其附图,搭面包板,实验....一天乃成.整理其SCH,如后(PROTEL99SE格式)另附已 ...

【备战2011国赛子分类】——仪器仪表类+资料锦集

本帖最后由 paulhyde 于 2014-9-15 03:01 编辑

[MSP430 学习笔记] 晶体振荡器的负载电容

最近有童靴在问如何确定MSP430的晶体负载电容,一般来讲,大家都是在用一些经验值,对其原理也不是特别清楚。 有兴趣的同学可以看 ...

2013年国赛元器件清单重点分析!(随时更新)

>>2013年器件清单对比及分析_by chbaaic >>分析2013年器件清单中几个比较不寻常的器件_by longhaozheng >>官 ...

【sensorTile 器件详解】LSM6DSM 加速度Acc+陀螺仪Gyro (第一篇)

本帖最后由 uniquey 于 2016-12-12 15:49 编辑 文章开篇,我们先从基本信息上了解一下LSM6DSM。虽然有些参数较深入(如Noise ...

这可能就是我2020年上半年的总结了……你的呢?

前天下暴雨,据说阵风达到了10级,最后造成多处线路故障。 这是晚上6点多在暴雨前拍的,乌云压境可能说的就是这种感觉吧 ...

移相器分类及工作原理(上)

移相器有模拟和数字两种形式,模拟式移相器相移量可在一定范围内连续可变,而数字式移相器的相移量只能在一定范围内取某些特定值 ...

【GD32L233C-START评测】Part1:开箱有意外?

1、介绍 由于个人问题,所以最近才拿到板子,不过不影响测评哈,在申请之前,大概了解了一下【GD32L233C-START】评估板,不过 ...

STM8应用全集

含技术手册、程序、例程。 661677 661678 https://download.eeworld.com.cn/detail/jujuyaya222/357007

原理图设计求助

4个led驱动电路板 控制4个灯同时亮,有8个霍尔传感器检测8个位置,每检测一个位置4个灯同时亮,我的灯3A 3.3v 10w左右,有光耦继 ...

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表