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

AD5270 AD5271 STM32 SPI驱动设计

硬件设计

AD5270 AD5271 简介:1024位、1%电阻容差误差、SPI接口和50-TP存储器数字变阻器。特性:单通道、1024/256位分辨率;标称电阻:20 kΩ,50 kΩ和100 kΩ;标称电阻容差误差:±1%(最大值);50次可编程(50-TP)游标存储器;变阻器模式下的温度系数:5 ppm/°C;2.7 V至5.5 V单电源供电;双电源供电:±2.5 V至±2.75 V(交流或双极性工作模式);SPI兼容型接口;游标设置回读功能;上电后采用50-TP存储器数据刷新;超薄LFCSP、10引脚、3 mm × 3 mm × 0.8 mm封装;紧凑型MSOP、10引脚、3 mm × 4.9 mm × 1.1 mm封装。

本文使用的工程代码,含使用手册如下:

AD5270AD5271STM32SPI驱动设计,针对AD5720原理图设计,与MCU采用SPI接口,工程实现设定数值资源-CSDN文库

原理图设计如下

与MCU管脚连接如下表所示

Label

24AA64T/24LC64

STM32F407

DIG_RES1_SDO

SDO

PB15

DIG_RES1_SDI

DIN

PB12

DIG_RES1_SCLK

SCLK

PB13

DIG_RES1_SYNC

SYNC

PB14

 软件设计

工程代码主要是完成如下内容:

管脚初始化,使用串口1作为调试串口。

使用stm32cubeIDE对管脚进行配置,其中PB12配置为GPIO输入模式,PB13/PB14/PB15配置为GPIO输出模式。如下图所示

 

 对AD5270数据进行配置,读写测试函数

void AD5270_set_value_U30(uint16_t value)
{
	if(value > 0x3FF)
	  printf("tolerance error is too larger\r\n");
	else
	{
		#if(DEBUG_AD5270 == 1)
			uint16_t RDAC_val_read;
		#endif
			printf("RDAC_val_write = %d\r\n", value);
			//enable RDAC write
			SPI_Tx_16bit(COMMAND_W_CONTROL|0x03);
			//Write RDAC Reg
			SPI_Tx_16bit(COMMAND_W_RDAC|value);
		#if(DEBUG_AD5270 == 1)
			//read RDAC Reg
			SPI_Tx_16bit(COMMAND_R_RDAC);
			RDAC_val_read=SPI_Tx_16bit(COMMAND_NOP);
			printf("RDAC_val_read = %d\r\n", RDAC_val_read);
		#endif
			//save to 50-tp
			//SPI_Tx_16bit(COMMAND_STORE_RDAC_50TP);
	}
}

主函数如下:

  /* USER CODE BEGIN 2 */
  AD5270_init();
  AD5270_set_value_U30(0xff);
  /* USER CODE END 2 */

初始化函数

void AD5270_IO_Initialize(void)
{
	SYNC_LOW;
	SCLK_LOW;
	SDIN_LOW;

//	SYNC_LOW_1;
//	SCLK_LOW_1;
//	SDIN_LOW_1;
}

 针对AD5270的一些宏定义函数

#define COMMAND_NOP  									(0x00<<10)
#define COMMAND_W_RDAC 								(0x01<<10)
#define COMMAND_R_RDAC  							(0x02<<10)
#define COMMAND_STORE_RDAC_50TP  			(0x03<<10)
#define COMMAND_SOFTWARE_RESET  			(0x04<<10)
#define COMMAND_R_50TP_NEXT_FRAME  		(0x05<<10)
#define COMMAND_R_LAST_50TP_LOCATION  (0x06<<10)
#define COMMAND_W_CONTROL  						(0x07<<10)
#define COMMAND_R_CONTROL  						(0x08<<10)
#define COMMAND_SOFTWARE_SHUTDOWN  		(0x09<<10)

void AD5270_init(void);
void AD5270_IO_Initialize(void);
uint16_t SPI_Tx_16bit(uint16_t sendData);
uint16_t SPI_Tx_16bit_1(uint16_t sendData);
void AD5270_set_value_U30(uint16_t value);
void AD5270_set_value_U33(uint16_t value);

测试记录

主函数运行结果

RDAC_val_write = 255
RDAC_val_read = 255

本文使用的工程代码,含使用手册如下:

AD5270AD5271STM32SPI驱动设计,针对AD5720原理图设计,与MCU采用SPI接口,工程实现设定数值资源-CSDN文库


http://www.kler.cn/a/286921.html

相关文章:

  • Idea调试的时候字符串路径乱码 poi解析时表单中文名字正确,但是找不到
  • 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(1.标准版)
  • 找不到mfc140u,具体原因分析
  • 【重庆市乡镇界】面图层shp格式arcgis数据乡镇名称和编码wgs84坐标无偏移内容测评
  • 递归练习六(普通练习11-15)
  • StarRocks强大的实时数据分析
  • 【数据结构之线性表】
  • VScode应用有哪些?
  • laravel请求第三方接口
  • 华为云 GaussDB 数据库和 MySQL 数据库的区别
  • 多线程篇(ThreadLocal 内存模型 伪共享(ThreadLocal ))(持续更新迭代)
  • 【区块链 + 供应链】广汽本田区块链合同供应链管理系统 | FISCO BCOS应用案例
  • java+Springboot+mysql小区维修管理平台41866-计算机毕业设计项目选题推荐(免费领源码)
  • SMART PLC高速计数器频率测量功能块(脉冲频率测量功能块)
  • Redis 键值对操作全攻略
  • Linux查看jar包错误日志及持久化运行jar包
  • Microsoft 将在 CrowdStrike 服务中断后举办 Windows 安全峰会
  • PyCharm新手指南:快速创建虚拟环境venv的步骤解析
  • cv2图像总结
  • JVM垃圾判定算法
  • react antd点击table行时加选中背景色
  • springboot中文件上传到本地
  • JVM性能监控实用工具jconsole与jvisualvm
  • 硬盘数据恢复软件哪个好用,已整理12款电脑数据恢复工具(收藏)
  • 惊喜!万博智云亮相2024数博会和第三届828 B2B企业节
  • 哈希基础概念即使用(C++)