esp32 i2c控制AD7254 测试DEMO

学习目标:

MicroPython ESP32  开发笔记

例如:

  • 一周掌握 Java 入门知识

学习内容:

I2C总线,AD5274

例如:

  1. 搭建 Java 开发环境
  2. 掌握 Java 基本语法
  3. 掌握条件语句
  4. 掌握循环语句

学习时间:

一周

学习产出:

from machine import Pin,I2C,Timer
from micropython import const
#sda scl 要加上拉电阻
# register definitions
AD5272_CMD_NOP        =  const(0x00)    # NOP 
AD5272_CMD_WRITE_RDAC =  const(0x01)    # Write contents of serial register data to RDAC
AD5272_CMD_READ_RDAC  =  const(0x02)          # Read contents of RDAC wiper register
AD5272_CMD_STORE_RDAC =  const(0x03)          # Store wiper setting:Store RDAC setting to 50-TP
AD5272_CMD_RESET      =  const(0x04)          # Software resiter: Refresh RDAC with last 50-TP stored value
AD5272_CMD_READ_50TP  =  const(0x05)          # Read contents of 50-TP from SDO output in the next frame
AD5272_CMD_READ_ADD   =  const(0x06)          # Read address of the last 50-TP
AD5272_CMD_WRITE_CNTR =  const(0x07)          # Write the contents of the serial register data to control register
AD5272_CMD_READ_CNTR  =  const(0x08)          # Read the contents of the control register
AD5272_CMD_SHUTDOWN   =  const(0x09)          # Software shutdown; D0=0:Normal mode, 1: shutdown mode
#AD5272_addr
AD5272_ADD     =  const(0x2f)         #ADDR: 0:0x5e; 1:0x58; NC:0x5c  =  const(0x8)   #0:0x5f; 1:0x59; NC:0x5d
class AD5272_I2C():
    def __init__(self,i2c):
        self.i2c=i2c
        self.ucDATA= bytearray(2)
    def AD5272WriteCmd(self,ucCMD,nDATA):
        self.ucDATA[0]=(ucCMD<<2)|(nDATA>>8)
        self.ucDATA[1]=nDATA&0xff
        self.i2c.writeto(AD5272_ADD, self.ucDATA)
    def AD5272_ENABLE_UPDATE(self):
        self.AD5272WriteCmd(AD5272_CMD_WRITE_CNTR,0x02)
    # get reg
    def AD5272ReadCmd(self):
        t=self.i2c.readfrom_mem(AD5272_ADD,AD5272_CMD_READ_CNTR,2)
        print(t)
        temp=(t[0]&0x03)*256+t[1]
        return temp
    def AD5272WriteRDAC(self,ucDAT):
        self.AD5272WriteCmd(AD5272_CMD_WRITE_RDAC,ucDAT)
    def AD5272ReadRDAC(self):
        t=self.i2c.readfrom_mem(AD5272_ADD,AD5272_CMD_READ_RDAC,2)
        print(t)
        temp=(t[0]&0x03)*256+t[1]
        return temp
##############################
i2c = I2C(sda=Pin(23),scl=Pin(19))
Dwq = AD5272_I2C(i2c)
#add=i2c.scan()
#print(add)
print(Dwq.AD5272_ENABLE_UPDATE())
print(Dwq.AD5272ReadCmd())
print(Dwq.AD5272WriteRDAC(512)) #公式 R= 1023/1024*20K
print(Dwq.AD5272ReadRDAC())

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值