学习目标:
MicroPython ESP32 开发笔记
例如:
- 一周掌握 Java 入门知识
学习内容:
I2C总线,AD5274
例如:
- 搭建 Java 开发环境
- 掌握 Java 基本语法
- 掌握条件语句
- 掌握循环语句
学习时间:
一周
学习产出:
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())