主题中讨论的其他器件: ADS112U04、 MAX232、 ADS122U04
您好!
我当前正在尝试更改 ADS112U04EVM 上的配置寄存器、但在尝试读取寄存器或手动获取转换结果时、器件没有响应。
我已经在该器件上阅读了一些文章、我认为我在软件方面做的一切都是正确的。 无论如何、我已经在下面发布了大部分内容。 我已通过 PuTTy 检查计算机的写入输出来确认其工作正常。
该器件上还有很多跳线和开关。 我尝试通过在 JP1上短接来停止器件上的 Tiva 处理器、这没有任何变化。 我还想知道是否需要将 J3上的 GPIO1引脚拉为高电平、因为非 EVM 版本的数据表显示必须将其上拉才能执行 TI 上一篇文章中所述的命令、 但是、对于 EVM 版本、它不会这样说。
代码如下:
----
#set 串行数据
SER = serial.Serial ('/dev/ttymxc0、115200、字节大小= serial.EIGHTBITS、stopbits=serial.stopbits_one、timeout=1)
复位
SER.WRITE (struct.pack ('!BB'、0x55、0x06))
SER.FlushOutput ()
时间睡眠(0.1)
用于连续转换的#SET 寄存器
SER.WRITE (struct.pack ('!BB'、0x55、0x22)) #read config register 1 -应为0x00
SER.flushOutput ()() #send 缓冲区中剩下的所有内容
conf1_read = ser.read ().rstrip ()#read
打印("配置寄存器1") #test 语句
print (struct.unpackt ('!B'、conF1_read)) #show values
时间睡眠(0.1)
SER.WRITE (struct.pack ('!BBB'、0x55、0x42、0x48) #SYNC WORD -写入寄存器1 -将数据更改为0x48
SER.FlushOutput ()
TIME.SLEEP (0.01)
SER.WRITE (struct.pack ('!BB'、0x55、0x22)) #SYNC word -再次读取配置寄存器1以确保写入工作正常
SER.FlushOutput ()
conf1_read = ser.read ().rstrip ()
打印("配置寄存器1")
print (struct.unpackt ('!B'、conF1_read))
SER.FlushOutput ()
TIME.SLEEP (0.01)
输出从 ADC 接收到的数据
当为真时:
开始/同步字节
SER.WRITE (struct.pack ('!BB'、0x55、0x08)) #START 转换命令
SER.FlushOutput ()
TIME.SLEEP (0.01)
SER.WRITE (struct.pack ('!BB'、0x55、0x10)) #read data (RDATA 字节)命令
SER.FlushOutput ()
received_data = ser.read().rstrip () #read 串行端口
DATA_LEFT = ser.inWaiting () 检查剩余字节
print (struct.unpackt ('!B'、received_data) #print 到终端接收到的数据
----
感谢您的任何帮助!