| Linduino 1.3.0 Linear Technology Arduino-Compatible Demonstration Board

Functions | Macros | Variables
program.ino File Reference

Linear Technology DC1962C Demonstration Board LTC3880, LTC2974, LTC2977: Power Management Solution for Application Processors. More...

## Detailed Description

Linear Technology DC1962C Demonstration Board LTC3880, LTC2974, LTC2977: Power Management Solution for Application Processors.

This sketch has only been tested on a Mega 2560. It is known to fail on Aarduino Uno and Linduino due to size of RAM.

    NOTES
      Setup:
       Set the terminal baud rate to 115200 and select the newline terminator.

http://www.linear.com/product/LTC3880

http://www.linear.com/product/LTC2974

http://www.linear.com/product/LTC2977

http://www.linear.com/demo/DC1962C

Copyright 2018(c) Analog Devices, Inc.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of Analog Devices, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
- The use of this software may or may not infringe the patent rights of one or more patent holders. This license does not release you from the requirement that you obtain separate licenses from these patent holders to use this software.
- Use of the software either in source or binary form, must be run on or directly connected to an Analog Devices Inc. component.

THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definition in file program.ino.

Go to the source code of this file.

## Functions
static void | wait_for_nvm ()
| Wait for nvm operation to complete. More...
static void | program_nvm ()
| Program the nvm. More...
static void | verify_nvm ()
| Verify the nvm. More...
static void | restore_nvm ()
| Restore nvm to ram. More...
static void | reset_all_devices ()
| Reset all devices. More...
static void | setup ()
| Initialize Linduino. More...
static void | loop ()
| Repeats Linduino loop. More...
static void | print_title ()
| Prints the title block when program first starts. More...
static void | print_prompt ()
| Prints main menu. More...

## Macros
#define | SIGRD 5
#define | LTC3880_I2C_ADDRESS 0x30
#define | LTC2974_I2C_ADDRESS 0x32
#define | LTC2977_I2C_ADDRESS 0x33

## Variables
static uint8_t | ltc3880_i2c_address
static uint8_t | ltc2974_i2c_address
static uint8_t | ltc2977_i2c_address
static LT_SMBusNoPec * | smbusNoPec = new LT_SMBusNoPec()
static LT_SMBusPec * | smbusPec = new LT_SMBusPec()
static NVM * | nvm = new NVM(smbusNoPec, smbusPec)
static LT_SMBus * | smbus = smbusNoPec
static LT_PMBus * | pmbus = new LT_PMBus(smbus)
static bool | pec = false
static uint8_t | dc1613_addresses [] = { LTC3880_I2C_ADDRESS, LTC2974_I2C_ADDRESS, LTC2977_I2C_ADDRESS }

## Function Documentation

## ◆ loop()

static void loop | ( | void |  | ) |
| static

Repeats Linduino loop.

Returns
  void

Definition at line 202 of file program.ino.

## ◆ print_prompt()

static void print_prompt | ( |  | ) |
| static

Prints main menu.

Returns
  void

Definition at line 287 of file program.ino.

## ◆ print_title()

static void print_title | ( | void |  | ) |
| static

Prints the title block when program first starts.

Returns
  void

Definition at line 273 of file program.ino.

## ◆ program_nvm()

static void program_nvm | ( |  | ) |
| static

Program the nvm.

Returns
  void

Definition at line 109 of file program.ino.

## ◆ reset_all_devices()

static void reset_all_devices | ( |  | ) |
| static

Reset all devices.

Returns
  void

Definition at line 157 of file program.ino.

## ◆ restore_nvm()

static void restore_nvm | ( |  | ) |
| static

Restore nvm to ram.

Returns
  void

Definition at line 145 of file program.ino.

## ◆ setup()

static void setup | ( | void |  | ) |
| static

Initialize Linduino.

Returns
  void

Definition at line 177 of file program.ino.

## ◆ verify_nvm()

static void verify_nvm | ( |  | ) |
| static

Verify the nvm.

Returns
  void

Definition at line 124 of file program.ino.

## ◆ wait_for_nvm()

static void wait_for_nvm | ( |  | ) |
| static

Wait for nvm operation to complete.

Returns
  void

Definition at line 94 of file program.ino.

## Macro Definition Documentation

## ◆ LTC2974_I2C_ADDRESS

#define LTC2974_I2C_ADDRESS 0x32

Definition at line 73 of file program.ino.

## ◆ LTC2977_I2C_ADDRESS

#define LTC2977_I2C_ADDRESS 0x33

Definition at line 74 of file program.ino.

## ◆ LTC3880_I2C_ADDRESS

#define LTC3880_I2C_ADDRESS 0x30

Definition at line 72 of file program.ino.

## ◆ SIGRD

#define SIGRD 5

Definition at line 71 of file program.ino.

## Variable Documentation

## ◆ dc1613_addresses

uint8_t dc1613_addresses[] = { LTC3880_I2C_ADDRESS, LTC2974_I2C_ADDRESS, LTC2977_I2C_ADDRESS }
| static

Definition at line 90 of file program.ino.

## ◆ ltc2974_i2c_address

uint8_t ltc2974_i2c_address
| static

Definition at line 78 of file program.ino.

## ◆ ltc2977_i2c_address

uint8_t ltc2977_i2c_address
| static

Definition at line 79 of file program.ino.

## ◆ ltc3880_i2c_address

uint8_t ltc3880_i2c_address
| static

Definition at line 77 of file program.ino.

## ◆ nvm

NVM* nvm = new NVM(smbusNoPec, smbusPec)
| static

Definition at line 83 of file program.ino.

## ◆ pec

bool pec = false
| static

Definition at line 88 of file program.ino.

## ◆ pmbus

LT_PMBus* pmbus = new LT_PMBus(smbus)
| static

Definition at line 86 of file program.ino.

## ◆ smbus

LT_SMBus* smbus = smbusNoPec
| static

Definition at line 85 of file program.ino.

## ◆ smbusNoPec

LT_SMBusNoPec* smbusNoPec = new LT_SMBusNoPec()
| static

Definition at line 81 of file program.ino.

## ◆ smbusPec

LT_SMBusPec* smbusPec = new LT_SMBusPec()
| static

Definition at line 82 of file program.ino.