EVAL-CN0556-EBZ

Programmable High Current and Voltage Source/Sink Power Supply

Overview

The EVAL-CN0556-EBZ is a programmable buck or boost power supply featuring an adjustable buck output of 2V to 14V, 35A, and adjustable boost output of 14V to 56V, 10A. The design allows the mode of operation to externally controlled or automatically selected. Six independent control loops regulate input and output voltage in both directions, as well as provide input and output current limit programming and monitoring.

The system input and output voltages and currents are monitored and controlled through analog I/O. Using an analog I/O module, a single board computer such as a Raspberry Pi platform can receive telemetry information to control the board remotely.

https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/eval-cn0556-ebz_angle.jpg

Features

  • High Efficiency Buck or Boost DC-DC Converter

  • 14V to 56V Buck Input Voltage and 8V to 14V Boost Input Voltage

  • Fully Programmable Bidirectional Control and Monitoring

  • Seamless Buck-to-Boost Transition and Vice Versa

  • Buck Mode: 35A Maximum Output Current

  • Boost Mode: 10A Maximum Output Current

  • Reverse Current Protection

Simplified Block Diagram

https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/cn0556_simplified_block_diagram.png

System Setup

Requirements

Hardware

  • EVAL-CN0556-EBZ

  • Analog I/O module EVAL-CN0554-RPIZ

  • Raspberry Pi 4 Model B

  • Raspberry Pi 4 USB-C power supply

  • Benchtop power supply, up to 56V and 35A

  • Digital multimeter

  • Electronic load

  • MicroHDMI to HDMI cable

  • Monitor with HDMI display

  • USB keyboard and mouse

  • 16 GB microSD card

Software

Documentation

Software Setup

The input and output voltages and current limits of the CN0556 can be controlled through software. Interfacing CN0556 with the CN0554 analog I/O module enables full control capability. For the device to run, the SD card should be loaded with Analog Devices Kuiper Linux, a distribution based on Raspbian from the Raspberry Pi Foundation. It incorporates Linux device drivers for ADI products as well as tools and other software products designed and created with ease of use in mind. The reasoning behind creating this distribution is to minimize the barriers to integrating ADI hardware devices into a Linux-based embedded system.

Access to the embedded system can be through a remote PC connected either via LAN cable or Wi-Fi.

Downloading and Flashing ADI Kuiper Linux Image on SD Card

In order to control the EVAL-CN0556-EBZ from the Raspberry Pi, you need to install ADI Kuiper Linux on an SD card. Complete instructions, including where to download the SD card image, how to write it to the SD card, and how to configure the system are provided at Kuiper Images.

https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/command_prompt.png

There is an available Wiki Page which explains in detail on how to download and flash the SD card using Windows or Linux OS: ‘Configuring the SD Card for Raspberry Pi Projects’ in the Formatting and Flashing SD Cards using Windows.

Configuring the SD Card for CN0556

For the Linux kernel to identify the device connected to the expansion header, update the device tree overlay. A Device Tree Overlay contains information about additional connected hardware, the EVAL-CN0556-EBZ for this case. The overlay file is already included in the SD card and just needs to be matched to the EVAL-CN0556-EBZ.

Follow Raspberry Pi, substituting the following lines in config.txt.

This brings up the file in the terminal. Scroll down until the line that begins with dtoverlay is found; then, whatever it currently is, change it to:

dtoverlay=rpi-cn0556

Running the Example Scripts using PyADI-IIO

PyADI-IIO is a python abstraction module for ADI hardware with IIO drivers to make them easier to use. This module provides device-specific APIs built on top of the current libIIO python bindings. These interfaces try to match the driver naming as much as possible without the need to understand the complexities of libIIO and IIO.

Follow the step-by-step procedure on how to install, configure, and set up PyADI-IIO and all necessary packages and modules found in PyADI-IIO.

Hardware Configuration

Jumper Settings

Using 3.3V from the on-board LDO

At P1, check if the shunt placed is in correct position. The shunt should be placed correctly to short Pins 3 and 4. If it is not in proper placement, move the shunt to the correct position before performing the rest of the tests.

https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/p1_1.jpg

Disabling Current Sharing Capability

The CN0556 enables a masterless fault-tolerant mechanism for sharing output current, following below configuration:

Share Capability

ISHARE pin

IGND pin

ENABLED

ISHARE shorted to IGND with RSHARE resistor in between

DISABLED

Shorted to INTVCC

Shorted to AGND

By default, this capability is disabled in CN0556.

  • Shunt must be placed on P5 to short ISHARE to INTVCC

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/p5_2.jpg
  • Solder jumper P6 is OPEN by default to disconnect ISHARE to IGND:

https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/jumper_p6.png
  • Solder jumper P7 is SHORTED by default to short IGND to AGND:

https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/jumper_p7.png

Hardware Setup

CN0556 Initial Hardware Setup (BUCK or BOOST Mode)

The EVAL-CN0556-EBZ can be programmed to function in buck or boost mode. Follow below steps to check the buck and boost converter functionality of the EVAL-CN0556-EBZ when connected to the EVAL-CN0554-RPIZ, and its capability to control and monitor the input and output voltage and current.

Buck Mode Setup

Boost Mode Setup

CN0556 Buck Mode Setup

CN0556 Boost Mode Setup

  1. Connect the EVAL-CN0554-RPIZ to the Raspberry Pi 4 using the P20 connector as shown below.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/rpi_554.png
  2. Insert the MicroSD card into the Raspberry Pi’s SD card slot. See Software Setup section for instructions on how to configure the SD Card for CN0556.

  3. Connect the EVAL-CN0556-EBZ on top of the EVAL-CN0554-RPIZ and Raspberry Pi 4 combination based on the connections indicated below.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/cn0554_cn0556_rev_c.png
  4. Ensure that the jumper configuration at P1 and P5 is correct before powering on the device. See Jumper Settings to verify the configuration.

  5. Ensure that the P3 is not shorted by any wire.

  6. Set up the connections to the Raspberry Pi 4.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/cn0556_figures.png
  7. Connect the MicroHDMI cable to the Raspberry Pi 4 and the other end to the display monitor.

  8. Connect the USB keyboard and a USB mouse to any of the USB ports in the Raspberry Pi 4.

  9. Plug the USB type C power adapter into the Raspberry Pi and wait for it to boot up.

Mode 1: CN0556 in Buck Mode

Hardware Setup (continuation):

Warning

The following steps involve high DC voltages. Follow instructions carefully to prevent hot plugging, which may damage the device by an overvoltage transient.

  1. Prepare a bench top power supply, electronic load, and two digital multimeters.

  2. Ensure that the power supply is completely turned off during the setup.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/cn0556_buck_boost_setup.png
  3. Connect the power supply to V1 terminals (BSTOUT and BSTGND).

  4. Connect the first DMM to the V1 input terminals (BSTOUT and BSTGND).

  5. Connect the electronic load to V2 terminals (BCKOUT and BCKGND).

  6. Connect the second DMM to the V2 output terminals (BCKOUT and BCKGND).

  7. Switch on the multimeter to measure DC voltage and probe the following points after the test program has finished running.

  8. Proceed to Running the Buck Mode Example Script section for step-by-step instructions on how to get measurements.

Running the Buck Mode Example Script

Tip

By default, the example script sets the board into Buck Mode and sets its parameters to its maximum values. You may try to adjust the values after this test. Refer to the table of ranges appropriate for each control function.

  1. Ensure that the power supply is at the V1 left side and the electronic load is at the V2 right side.

  2. Once the Raspberry Pi 4 has finished booting, open the command prompt or terminal and navigate through the examples folder inside the downloaded or cloned pyadi-iio directory.

  3. Turn on the power supply and the electronic load.

  4. Set the power supply at V1 left side to 56V and set the current limit to 2A. Do not enable the power supply yet.

  5. Set the electronic load at the right side to 0.1A.

  6. Enable the electronic load.

  7. Navigate into the cn0556_examples folder inside the pyadi-iio > examples directory.

  8. Run the example script using the command:

    ~/pyadi-iio/examples/cn0556_examples$
    
    python cn0556_example_buck.py
    
  9. The details of the current and voltage set at the output will be displayed.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/pyadi-iio_buck_1.png
  10. Enable the output of the power supply into the V1 terminals.

  11. Check the DMM at the output V2 side. It should read approximately 14V.

  12. If the reading is not 14V (or almost 0V), try to slowly increase the input DC voltage at V1 to up to 58V. Once the output is 14V, decrease the input voltage at V1 to 56V again.

  13. Once the power supply is enabled, and the DMM reads approx. 14V, press the ENTER key.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/pyadi-iio_buck_2.png
  14. The input and output voltage and current at the V1 and V2 side will be printed in the command window.

  15. The board will continuously regulate the output voltage to 14V unless CN0556 is turned off.

  16. Press ENTER to disable and turn off the board.

  17. Turn off the power supply and the electronic load. Make sure that the settings of the power supply are at 0V and 0A limit, as well as the electronic load to 0A.

Summary of Buck Mode Functions

The CN0556 buck mode pyadi-iio example script enables the user to control the input and output parameters of the board, as well as to measure the current and voltage at the input and output terminals. The summary of the CN0556 functions for Buck Mode can be found below:

Table 1 Buck Mode Functions Summary

Parameter

Pyadi-iio Function

Description

Minimum Value

Maximum Value

Write Functions

V1 Input Voltage

my_cn0556.set_buck_input_volt(value)

sets the buck input voltage value

14V

56V

V1 Undervoltage

my_cn0556.set_buck_input_undervolt(value)

set the buck input undervoltage value

12V

54V

V2 Output Voltage

my_cn0556.set_buck_output_volt(value)

sets the buck output voltage value

2V

14V

V1 Input Current Limit

my_cn0556.set_buck_input_current_lim(value)

sets the buck input current limit value

0.07A

10A

V2 Output Current Limit

my_cn0556.set_buck_output_current_lim(value)

sets the buck output current limit value

12A

35 A

Read Functions

Input Voltage at V1

my_cn0556.measure_buck_input_volt()

measures the buck input voltage at V1 side

approx. 14 V to 56 V

Output Voltage at V2

my_cn0556.measure_buck_output_volt()

measures the buck output voltage at V2 side

approx. 2 V to 14 V

Input Current at V1

my_cn0556.measure_buck_input_current()

measures the buck input current at V1 side

approx. 0.07 A to 10 A

Output Current at V2

my_cn0556.measure_buck_output_current()

measures the buck output current at V2 side

approx. 0 A to 35 A

Mode 2: CN0556 in Boost Mode

Hardware Setup (continuation):

Warning

The following steps involve high DC voltages. Follow instructions carefully to prevent hot plugging, which may damage the device by an overvoltage transient.

  1. Prepare a bench top power supply, electronic load, and two digital multimeters.

  2. Ensure that the power supply is completely turned off during the setup.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/boost_setup_rpi_556_554.png
  3. Connect the power supply to V2 terminals (BCKOUT and BCKGND).

  4. Connect the second DMM to the V2 input terminals (BCKOUT and BCKGND).

  5. Connect the electronic load to V1 terminals (BSTOUT and BSTGND).

  6. Connect the first DMM to the V1 output terminals (BSTOUT and BSTGND).

  7. Switch on the multimeter to measure DC voltage.

  8. Proceed to Running the Boost Mode Example Script section for step-by-step instructions on how to get measurements.

Running the Boost Mode Example script

Tip

By default, the example script sets the board into Boost Mode and sets its parameters to its maximum values. You may try to adjust the values after this test. Refer to the table of ranges appropriate for each control function.

  1. Ensure that the power supply is at the V2 right side, and the electronic load is at the V1 left side.

  2. Once the Raspberry Pi 4 has finished booting, open the command prompt or terminal and navigate through the examples folder inside the downloaded or cloned pyadi-iio directory.

  3. Turn on the power supply and the electronic load.

  4. Set the power supply at V2 left side to 14V and set the current limit to 10A. Do not enable the power supply yet.

  5. Set the electronic load at the right side to 0.1A.

  6. Enable the electronic load.

  7. Navigate into the cn0556_examples folder inside the pyadi-iio > examples directory.

  8. Run the example script using the command:

    ~/pyadi-iio/examples/cn0556_examples$
    
    python cn0556_example_boost.py
    
  9. The details of the current and voltage set at the output will be displayed.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/pyadi-iio_boost_1.png
  10. Enable the output of the power supply into the V2 terminals.

  11. Check the DMM at the output V1 side. It should read approximately 56V.

  12. Once the power supply is enabled, and the DMM at the left side reads approx. 56V, press the ENTER key.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0556-ebz/pyadi-iio_boost_2.png
  13. The input and output voltage and current at the V1 and V2 side will be printed in the command window.

  14. The board will continuously regulate the output voltage to 56V unless CN0556 is turned off.

  15. Press ENTER to disable and turn off the board.

  16. Turn off the power supply and the electronic load. Make sure that the settings of the power supply are at 0V and 0A limit, as well as the electronic load to 0A.

Summary of Boost Mode Functions

The CN0556 boost mode pyadi-iio example script enables the user to control the input and output parameters of the board, as well as to measure the current and voltage at the input and output terminals. The summary of the CN0556 functions for Boost Mode can be found below:

Table 2 Boost Mode Functions Summary

Parameter

pyadi-iio Function

Description

Minimum Value

Maximum Value

Write Functions

V2 Input Voltage

my_cn0556.set_boost_input_volt(value)

sets the boost input voltage value

10V

14V

V2 Undervoltage

my_cn0556.set_boost_input_undervolt(value)

sets the boost input undervoltage value

8V

12V

V1 Output Voltage

my_cn0556.set_boost_output_volt(value)

sets the boost output voltage value

14V

56V

V2 Input Current Limit

my_cn0556.set_boost_input_current_lim(value)

sets the boost input current limit value

12A

35A

V1 Output Current Limit

my_cn0556.set_boost_output_current_lim(value)

set the boost output current limit value

0.07A

10A

Read Functions

Input Voltage at V2

my_cn0556.measure_boost_input_volt()

measures the boost input voltage at V2 side

approx. 10V to 14V

Output Voltage at V1

my_cn0556.measure_boost_output_volt()

measures the boost output voltage at V1 side

approx. 14V to 56V

Input Current at V2

my_cn0556.measure_boost_input_current()

measures the boost input current at V2 side

approx. 0A to 35A

Output Current at V1

my_cn0556.measure_boost_output_current()

measures the boost output current at V1 side

approx. 0.07A to 10A

Schematic, PCB Layout, Bill of Materials

Download

EVAL-CN0556-EBZ Design & Integration Files

  • Schematics

  • PCB Layout

  • Bill of Materials

  • Allegro Project