主题中讨论的其他器件:DAC8568
您好!
我在使用升压 DAC8568以及连接 Raspberry Pi 方面遇到了一些困难。 简而言之、我能够照亮升压封装上的 LED、但不能按照8568数据表中的要求照亮这些 LED。
我将封装通过3.3V 电源、5V 电源(LED 所需)和接地线连接到 Raspberry Pi。 DAC 的 SCLK 连接到 Pi SCLK、DAC /SYNC (实际上是芯片选择)连接到 Pi CE1、DAC /LDAC 连接到 Pi GND、DAC MOSI 连接到 Pi MOSI。 我不连接 DAC/CLR、但如果需要、我可以将其物理连接到接地以复位芯片。
我认为我的接线是好的、因为我可以使用 python 脚本或使用 sudo echo -ne "\xxx\xxx\xxx">/dev/spidev0.1从终端点亮 LED
我通过以下视频了解了终端技巧: https://www.youtube.com/watch?v=iwzXh2V1SP4
不过、我的问题是 LED 没有按照数据表中的预期点亮。 我应该是照明 A、而是照明 B。我应该点亮 B、而应该点亮 D 等 我已经尝试充分利用所有这些功能、可以调暗 LED 并打开新 LED、但绝不会按照数据表的方式真正期望 LED 正常工作。
例如、在第35页的表11中、我认为为 DAC_A 提供完整输出应该能够通过:0000 0000 1111 1111 1111 1111 1111、这是十六进制的0x00、0x0F、0xFF、0xFF。 但是、当我这么做时、LED B 亮起。 我能够通过写入0x00 0x02 0xFF、0xFF 使 LED A 打开(对于第二个字节0x02、我可以通过写入0x02-9来调节 LED 亮度、但在0x0A 时、LED B 打开)。
下面是我的 python 脚本--很抱歉我没有任何示波器读数。 在我提到的注释中、我在数据表中的哪个位置查找要发送的位。 我很不熟悉使用模拟组件、也不是 EE、因此可能我没有正确执行时序、或者产生一些其他愚蠢的错误。 感谢您的帮助!
# -*- coding: utf-8 -*-
"""
Created on Sat Jul 8 16:33:05 2017
@author: pi
for texas instruments BOOST DAC8568
for BOOST schematic showing LEDs www.ti.com/.../boost-dac8568
for DAC8568 datasheet: www.ti.com/.../dac8568
"""
import spidev
import time
spi = spidev.SpiDev() #create spi object
spi.open(0,1) #open spi port 0, device (CS) 1
#spi.bits_per_word = 8 does not seem to matter
#spi.max_speed_hz = 50000000 #does not seem to matter
#you have to power the DAC, you can write to the buffer and later power on if you like
power_up = spi.xfer2([0x04, 0x00, 0x00, 0xFF]) #p.37 Table11 in datasheet: powers all DACS
voltage_write = spi.xfer2([0x00, 0x0F, 0xFF, 0xFF ]) #p.35 Table11 in datasheet supposed write A--but lights B
voltage_write = spi.xfer2([0x00, 0x1F, 0xFF, 0xFF ]) #supposed write B--but lights D
voltage_write = spi.xfer2([0x00, 0x2F, 0xFF, 0xFF ]) #supposed write C--but lights F
voltage_write = spi.xfer2([0x00, 0x3F, 0xFF, 0xFF ]) #supposed write D--but lights H
voltage_write = spi.xfer2([0x00, 0x4F, 0xFF, 0xFF ]) #supposed write E--but does nothing
spi.close()