当前位置: 首页 > news >正文

a5做网站在线生成个人网址

a5做网站,在线生成个人网址,企业系统查询,php网站源码模板DACx0502 说明 16 位 DAC80502、14 位 DAC70502 和 12 位DAC60502 (DACx0502) 数模转换器 (DAC) 均为具有电压输出的高精度、低功耗器件。 DACx0502 线性度小于 1LSB。凭借高精度和微型封装特性,DACx0502 非常适合以下 应用: 增益和失调电压校准、电流…

DACx0502 说明

16 位 DAC80502、14 位 DAC70502 和 12 位DAC60502 (DACx0502) 数模转换器 (DAC) 均为具有电压输出的高精度、低功耗器件。

DACx0502 线性度小于 1LSB。凭借高精度和微型封装特性,DACx0502 非常适合以下 应用: 增益和失调电压校准、电流或电压设置点设定和电源控制。这些器件包括一个 2.5V、5ppm/°C 内部基准,可提供 1.25V、2.5V 或 5V 的满量程输出电压范围。ACx0502 采用了上电复位电路,可确保 DAC 输出根据 RSTSEL 引脚的状态以零电平或中间电平上电,并在向器件写入有
效代码之前一直保持该电平。

DACx0502 的数字接口可通过 SPI2C 引脚配置为 SPI或 I2C 模式。在 SPI 模式下,DACx0502 使用一个在高达 50MHz 的时钟频率下运行的通用 3 线制串行接口。在 I2C 模式下,DACx0502 支持标准 (100kbps)、快速 (400kbps) 和快速+ (1.0Mbps) 工作模式。

DACx0502 功能方框图

在这里插入图片描述

DACx0502 引脚配置和功能

在这里插入图片描述

DACx0502 驱动模式

  • SPI 或 IIC

在这里插入图片描述

DACx0502 寄存器映射

在这里插入图片描述

测试平台

  • 测试平台:STM32F103ZET6

  • 测试芯片:DAC60502

驱动及应用示例

  • myiic.c
#include "myiic.h"
#include "delay.h"// 初始化IIC
void IIC_Init(void)
{					     RCC->APB2ENR|=1<<3;GPIOB->CRL&=0X00FFFFFF;GPIOB->CRL|=0X33000000;	   GPIOB->ODR|=3<<6;
}
// 产生IIC起始信号
void IIC_Start(void)
{SDA_OUT();IIC_SDA=1;	  	  IIC_SCL=1;delay_us(4);IIC_SDA=0;delay_us(4);IIC_SCL=0;
}	  
// 产生IIC停止信号
void IIC_Stop(void)
{SDA_OUT();IIC_SCL=0;IIC_SDA=0;delay_us(4);IIC_SCL=1; IIC_SDA=1;delay_us(4);
}
// 等待应答信号到来
// 返回值:1,接收应答失败
//        0,接收应答成功
uint8_t IIC_Wait_Ack(void)
{uint8_t ucErrTime=0;SDA_IN();IIC_SDA=1;delay_us(1);	   IIC_SCL=1;delay_us(1);	 while(READ_SDA){ucErrTime++;if(ucErrTime>250){IIC_Stop();return 1;}}IIC_SCL=0;return 0;  
} 
// 产生ACK应答
void IIC_Ack(void)
{IIC_SCL=0;SDA_OUT();IIC_SDA=0;delay_us(2);IIC_SCL=1;delay_us(2);IIC_SCL=0;
}
// 不产生ACK应答		    
void IIC_NAck(void)
{IIC_SCL=0;SDA_OUT();IIC_SDA=1;delay_us(2);IIC_SCL=1;delay_us(2);IIC_SCL=0;
}
// IIC写一个字节		  
void IIC_Write_Byte(uint8_t txd)
{                        uint8_t t;   SDA_OUT(); 	    IIC_SCL=0;for(t=0;t<8;t++){              IIC_SDA=(txd&0x80)>>7;txd<<=1; 	  delay_us(2);IIC_SCL=1;delay_us(2); IIC_SCL=0;	delay_us(2);}	 
} 	    
// IIC读一个字节
// ack=1,发送ACK,
// ack=0,发送nACK   
uint8_t IIC_Read_Byte(uint8_t ack)
{uint8_t i,receive=0;SDA_IN();for(i=0;i<8;i++ ){IIC_SCL=0; delay_us(2);IIC_SCL=1;receive<<=1;if(READ_SDA)receive++;delay_us(1); }if (!ack)IIC_NAck();elseIIC_Ack();return receive;
}void IIC_Write_UINT16(uint8_t dev_addr, uint8_t wr_addr, uint16_t data)
{IIC_Start();IIC_Write_Byte(dev_addr);IIC_Wait_Ack(); IIC_Write_Byte(wr_addr);IIC_Wait_Ack(); IIC_Write_Byte(data >> 8);IIC_Wait_Ack(); IIC_Write_Byte(data & 0xFF);IIC_Wait_Ack();  	IIC_Stop();delay_ms(2);
}uint16_t IIC_Read_UINT16(uint8_t dev_addr, uint8_t rd_addr)
{uint16_t data;IIC_Start();IIC_Write_Byte(dev_addr);IIC_Wait_Ack();IIC_Write_Byte(rd_addr);IIC_Wait_Ack(); IIC_Start();  	IIC_Write_Byte(dev_addr + 1);IIC_Wait_Ack();data = IIC_Read_Byte(1);data = (data <<8 ) + IIC_Read_Byte(0);IIC_Stop();return data;
}
  • myiic.h
#ifndef __MYIIC_H__
#define __MYIIC_H__
#include "sys.h"//IO方向设置
#define SDA_IN()  {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;}
#define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)3<<28;}//IO操作函数	 
#define IIC_SCL    PBout(6) 		//SCL
#define IIC_SDA    PBout(7) 		//SDA	 
#define READ_SDA   PBin(7) 	 		//输入SDA //IIC操作函数
void IIC_Init(void);                //初始化IIC的IO口				 
void IIC_Start(void);				//发送IIC开始信号
void IIC_Stop(void);	  			//发送IIC停止信号
void IIC_Write_Byte(uint8_t txd);	//IIC发送一个字节
uint8_t IIC_Read_Byte(uint8_t ack);	//IIC读取一个字节
uint8_t IIC_Wait_Ack(void);			//IIC等待ACK信号
void IIC_Ack(void);					//IIC发送ACK信号
void IIC_NAck(void);				//IIC不发送ACK信号void IIC_Write_UINT16(uint8_t dev_addr, uint8_t wr_addr, uint16_t data);
uint16_t IIC_Read_UINT16(uint8_t dev_addr, uint8_t rd_addr);#endif
  • dacx0502.c
#include "dac60502.h" 
#include "delay.h" 										 //初始化IIC接口
int DAC60502_Init(void)
{IIC_Init();return 0;
}void DAC60502_Write(uint16_t WrAddr, uint16_t Data)
{IIC_Write_UINT16(DEV_ADDR, WrAddr, Data);
}uint16_t DAC60502_Read(uint16_t RdAddr)
{return IIC_Read_UINT16(DEV_ADDR, RdAddr);
}
  • dac60502.h
#ifndef __DAC60502_H__
#define __DAC60502_H__
#include "myiic.h"   #define DEV_ADDR 		0x90#define NOOP   			0x00
#define DEVID  			0x01
#define SYNC   			0x02
#define CONFIG    		0x03
#define GAIN  			0x04
#define TRIGGER   		0x05
#define STATUS  		0x06
#define DAC_A  			0x08
#define DAC_B  			0x09int DAC60502_Init(void);
void DAC60502_Write(uint16_t WrAddr, uint16_t Data);
uint16_t DAC60502_Read(uint16_t RdAddr);#endif
  • main.c
#include "sys.h"
#include "delay.h"
#include "usart.h" 
#include "led.h" 		 	 
#include "dac60502.h" 
#include "usmart.h" int main(void)
{	uint16_t data = 0;Stm32_Clock_Init(9);	//系统时钟设置uart_init(72,115200);	//串口初始化为115200delay_init(72);	   	 	//延时初始化 usmart_dev.init(72);	//初始化USMART		LED_Init();		  		//初始化与LED连接的硬件接口DAC60502_Init();		//IIC初始化 while(1){data = data + 0x1;if(data > 0x0fff)data = 0;DAC60502_Write(DAC_A,data << 4);printf("Write: %d \r\n", data);delay_ms(100);printf("Read: %d \r\n", DAC60502_Read(DAC_A) >> 4);delay_ms(100);LED0=!LED0;}return 0;
}
http://www.yayakq.cn/news/283766/

相关文章:

  • 扁平化设计风格的网站齐齐哈尔网架公司
  • 网站开发实用技术答案wordpress指定页面提示框
  • 网站建设实训周记宿迁建站网
  • 网上做石材去哪个网站国内外ai设计素材网站
  • 百度权重5的网站能卖多少钱顺德专业网站制作
  • 网站备案掉了菏泽网站建设推广
  • 如何虚拟一个公司网站广东住房和城乡建设厅官方网站
  • 河北省建设工程质监站网站深圳人口
  • 网站排名不稳定东营雪亮工程app下载二维码
  • 公司网站开发费计入公益网站建设分析
  • 网站商城具有哪些功能模块外贸网站有哪些?
  • 营销型网站策划 pptwordpress 位置
  • 淄博做网站的网络公司网页实时翻译软件
  • 网站前台后台编程网址
  • hp网站步骤一
  • 学生网站建设实训报告打代码怎么做网站
  • 网站的需求分析包括哪些深圳建站公司的小技巧
  • 电脑做视频的网站比较好建设网站开发公司
  • 建设信用卡网站首页站长工具平台
  • 我想做亚马逊网站怎么做兰州网络推广排行
  • 济宁网站建设那家好百度seo公司一路火
  • 官网网站备案流程图济宁哪里有做网站的
  • 货源网站开发北京高端网站建设服务
  • 知识付费网站开发中装建设董事长
  • vps wordpress站点慢重庆网站开发哪家专业
  • 企业建设企业网站的好处二次开发是指
  • 如何免费自己建网站汕头seo网络推广
  • 武隆网站建设wordpress 好的插件推荐
  • 音乐网站开发开发wordpress最新模板下载
  • 网站建设代码下载大全建筑网课平台