Post Go back to editing

AD5383 PCBA doesn't work

Category: Hardware
Product Number: AD5383

Hi there, I installed 4 AD5383 chips on the circuit board, and tested the 4 chips with two SPIs of Raspberry Pi, but all of chips didn't work. I set the internal 2.5V reference voltage, and after running the code attached, I found that the REFOUT/REFIN pin of the chip did not have a reference voltage output, and it felt like the chip did not respond to the input command. I tested SYNC, DIN and SCLK of the chip with an oscilloscope, they were all fine. I tested it with an EVAL-AD5380SDZ board, powered by the same power supply, plugged in the same SPI signal, and used the same code, the evaluation board worked fine. Could you lease help to find out what's the possible issue?


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import spidev
import time

class AD5380_Controller:
def __init__(self):

self.spi = spidev.SpiDev()
self.spi.open(0, 0) # Use SPI0, CE0
self.spi.max_speed_hz = 100000

def set_internal_reference(self):
print('Setting internal reference to 2.5V')
self.spi.xfer2([0b00001100, 0b00011101, 0x00])
time.sleep(1)

def main(self):
self.set_internal_reference()
self.spi.xfer2([0x00,0xff,0xff]) #port 0 high
time.sleep(0.01)
self.spi.xfer2([0x00,0b11000000,0x00]) #port 0 low
time.sleep(0.01)
self.spi.xfer2([0x00,0xff,0xff]) #port 0 high


if __name__ == '__main__':
controller = AD5380_Controller()
controller.main()

PDF

Thread Notes

Parents
  • Hi  ,

    The code provided appears to correctly configure the AD5383 chip for setting the internal reference voltage to 2.5V based on the datasheet specifications. Can you send scope shots of the SPI signals during a command sequence?

    Best Regrds,

    Den

  • Hi Den,

    I removed the anti-reverse polarity diodes, connected the DVCC and AVCC of the chip directly to the 5V power supply, after running the code, the REFOUT/REFIN of the 4 DAC chips on the PCBA have voltages, and the test was repeatedly set with 2.5V and 1.25V, obviously the chip responded to the SPI signal. But VOUT always outputs 0, what is the possible problem?

    Thank you.


    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

    import spidev
    import time
    from IOPi import IOPi
    import RPi.GPIO as GPIO

    class AD5380_Controller:
    def __init__(self):
    GPIO.setmode(GPIO.BCM)
    GPIO.setwarnings(False)

    self.spi = spidev.SpiDev()
    self.spi.open(0, 0) # Use SPI0, CE0
    self.spi.max_speed_hz = 100000

    self.busA = IOPi(0x20)
    self.busA.set_port_direction(0, 0x00)
    self.busA.set_port_direction(1, 0x00)

    def RESET_DAC(self, level):
    self.busA.write_pin(14, level)

    def main(self):
    self.RESET_DAC(1)
    print('Setting 00 internal reference to 2.5V')
    self.spi.xfer2([0b00001100, 0b00011101, 0x00]) #internal ref 2.5v
    time.sleep(0.01)

    for i in range(32):
    time.sleep(0.01)
    data_h = 0x00+i #0-31
    self.spi.xfer2([data_h,0xff,0xff])
    print(i)

    if __name__ == '__main__':
    controller = AD5380_Controller()
    controller.main()

  • Hi Den,

    Could you please check if there are any porblems in the pcb layout?

    Thank.

         

Reply Children
No Data