Linduino  1.3.0
Linear Technology Arduino-Compatible Demonstration Board
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_SMBusNoPecsmbusNoPec = new LT_SMBusNoPec()
 
static LT_SMBusPecsmbusPec = new LT_SMBusPec()
 
static NVMnvm = new NVM(smbusNoPec, smbusPec)
 
static LT_SMBussmbus = smbusNoPec
 
static LT_PMBuspmbus = 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.