| Linduino 1.3.0 Linear Technology Arduino-Compatible Demonstration Board

Functions | Variables
DC2248A.ino File Reference
RF, Silicon Oscillators, PLL Synthesizers, and VCOs » LTC6951: Ultra-Low Jitter 2MHz to 2.7GHz Multi-Output Clock Synthesizer with Integrated VCO

DC2248A LTC6951: Ultra-Low Jitter 2MHz to 2.7GHz Multi-Output Clock Synthesizer with Integrated VCO. More...

## Detailed Description

DC2248A LTC6951: Ultra-Low Jitter 2MHz to 2.7GHz Multi-Output Clock Synthesizer with Integrated VCO.

      Setup:
        Set the terminal baud rate to 115200 and select the newline terminator.
        Refer to Demo Manual DC2248A.
        Ensure all jumpers are installed in the factory default positions.
        One Power Supply is needed for this demo board: 6V supply.

    Command Description:
        1-  Load Default Settings from a Look-up Table- Loads the SPI map from one of 10 options in a look-up table.
            The look-up table allows the user to select different frequencies and synchronization option.  All options
            assume a 100MHz reference input and a default DC2248A BOM.

            ** If you want to use a different loop filter, reference frequency or different
            register settings.  Please use LTC6951Wizard for the loop filter design and initial
            device setup.  The register settings from LTC6951Wizard can be entered into menu option 2
            or you can change the default registers in the LTC6951_lkup_tbl array.  After the
            LTC6951Wizard settings are created, export the register settings by selecting
            File --> Export Register Settings from the TLC6951Wizard Menu.

        2-  READ/WRITE to Registers Addresses- Selecting this option will cause all the registers to
            be read, stored to variables, and displayed.  The user will then have the option
            to write to one register address at a time.

        3-  READ/WRITE to Registers Fields- Selecting this option will allow the user
            to read or write to one register field name at a time.

        4-  This function stores the current SPI settings in the demo boards EEPROM

        5-  This function loads SPI settings from the demo boards EEPROM to the device

        6-  Frequency chnage Timing test (SPI write + Calibration + Settling Time):
            Provides two frequency settings and allows user to toggle between the two frequencies by
            changing the N-divider(ND) value.  The user can monitor the STATUS pin.  The user
            can trigger off the STATUS or CS pins. In most cases the user will want to set the SPI
            frequency to 8MHz (see menu option 7)

         7- SPI Frequency:  Allows user to control Linduino's SPI frequency.  By default this is set to 8MHz
            when connecting Linduino directly to the DC2248.  If Linduino is connected to the DC2430 the default
            SPI rate is 4MHz

         8- If using a DC2430 (Linduino Expander), this allows the user to select 1 of 8 sites to talk to.

    USER INPUT DATA FORMAT:
     decimal : 1024
     hex     : 0x400
     octal   : 02000  (leading 0 "zero")
     binary  : B10000000000
     float   : 1024.0

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

http://www.linear.com/product/LTC6951#demoboards

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 DC2248A.ino.

Go to the source code of this file.

## Functions
static void | print_title ()
| Prints the title block when program first starts. More...
static void | print_prompt ()
| Prints main menu. More...
static void | menu_1_load_default_settings ()
| Menu 1: Load Default SPI Register Settings This function loads the register settings from a look up table. More...
static void | menu_2_RW_to_reg_addresss ()
| Menu 2: Reads and/or Writes the SPI register address This function reads and displays all SPI register address settings in HEX format. More...
static void | menu_3_RW_to_reg_field ()
| Menu 3: Reads and/or Writes individual SPI fields This function provides the user with a list of all SPI fields. More...
static void | menu_4_store_settings ()
| Store PLL settings to nonvolatile EEPROM on demo board. More...
static void | menu_5_restore_settings ()
| Read stored PLL settings from nonvolatile EEPROM on demo board. More...
static void | menu_6_multibytewrite ()
| Frequency change Timing test (SPI write + Calibration + Settling Time): Provides two frequency settings and allows user to toggle between the two frequencies by changing the N-divider(ND) value. More...
static void | menu_7_SPI_speed ()
| Read stored PLL settings from nonvolatile EEPROM on demo board. More...
static void | menu_8_DC2430_site_select ()
| Read stored PLL settings from nonvolatile EEPROM on demo board. More...
static void | setup ()
| Initialize Linduino. More...
static void | loop ()
| Repeats Linduino loop. More...
long | field_menu_RW (long field_val, char field_name[], uint8_t f)
| Support function for function menu_3_RW_to_reg_field displays current state of select field provides user the option to write to that field or return to menu. More...
static void | DUTsync (uint16_t delay_num)
| Syncs LTC6951 Outputs using SSYNC bit. More...
static void | dc2430_site_select (int site_select)
| Called from function menu_8_DC2430_site_select(), programs DC2430 to site selected. More...

## Variables
static int8_t | demo_board_connected = 0
| Demo Board Name stored in QuikEval EEPROM. More...
static int8_t | dc2248_board_connected = 0
| Demo Board Name stored in QuikEval EEPROM. More...
static uint8_t | First_Run =0
| if first time through loop = 0, otherwise=1 More...
boolean | Using_DC2430 = false
| Indicator if DC2430 (Linduino Expander) is connected. More...
static int | dc2430_site_A0_APin =0
| DC2430 resistor tree, if it reads 3.3V then DC2430 connected. More...
static int | dc2430_site_A1_APin =1
| DC2430 resistor tree, if it reads 1.66V then DC2430 connected. More...
static int | dc2430_site_A2_APin =2
| DC2430 INFO ONLY, measures DC2226 (Linduino) VCCIO voltage. More...
static int | dc2430_site_DA0_Pin =2
| DC2430 digital pin allows Linduino to control which DC2430 site is selected. More...
static int | dc2430_site_DA1_Pin =3
| DC2430 digital pin allows Linduino to control which DC2430 site is selected. More...
static int | dc2430_site_DA2_Pin =4
| DC2430 digital pin allows Linduino to control which DC2430 site is selected. More...
static int | dc2430_en_Pin =5
| DC2430 digital pin enables Linduino to control which DC2430 site is selected & turns on DC2430 LED. More...

## Function Documentation

## ◆ dc2430_site_select()

static void dc2430_site_select | ( | int | site_select | ) |
| static

Called from function menu_8_DC2430_site_select(), programs DC2430 to site selected.

Returns
  void

Definition at line 800 of file DC2248A.ino.

## ◆ DUTsync()

static void DUTsync | ( | uint16_t | delay_num | ) |
| static

Syncs LTC6951 Outputs using SSYNC bit.

Returns
  void

Definition at line 636 of file DC2248A.ino.

## ◆ field_menu_RW()

long field_menu_RW | ( | long | field_val,
|  | char | field_name[],
|  | uint8_t | f
| ) |  |

Support function for function menu_3_RW_to_reg_field displays current state of select field provides user the option to write to that field or return to menu.

Returns
  field value (user input) that will be written to part

Parameters

  field_val | current state of the selected field
  field_name | SPI Field name selected
  f | SPI field identifier identifies selected fields information in SPI MAP arrays

Definition at line 437 of file DC2248A.ino.

## ◆ loop()

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

Repeats Linduino loop.

Returns
  void

Definition at line 254 of file DC2248A.ino.

## ◆ menu_1_load_default_settings()

static void menu_1_load_default_settings | ( |  | ) |
| static

Menu 1: Load Default SPI Register Settings This function loads the register settings from a look up table.

The setting loaded with this function assume the LTC6951's reference is set to 100MHz and the DC2248A's BOM has not been modified. The settings in the look up table were created using the LTC6951Wizard. It is recommended to use the LTC6951Wizard to create the register settings for all desired frequency plans and enter these frequency plans into a look-up table. The LTC6951Wizard generates register values for optimal LTC6951 performance.

Returns
  void

Definition at line 324 of file DC2248A.ino.

## ◆ menu_2_RW_to_reg_addresss()

static void menu_2_RW_to_reg_addresss | ( |  | ) |
| static

Menu 2: Reads and/or Writes the SPI register address This function reads and displays all SPI register address settings in HEX format.

It then provides an option to modify(write to) individual registers one at time

EXAMPLE:

- 0- ADDR00 = 0x04 (read only)
- 1- ADDR01 = 0x04
- ....
- 21- ADDR15 = 0x04
- 22- ADDR16 = 0x65 (read only)
- 0 - Return to Main Menu
- Enter a command (1-21 to modify register, or '0' to return to Main Menu):
  Returns
    void

Definition at line 382 of file DC2248A.ino.

## ◆ menu_3_RW_to_reg_field()

static void menu_3_RW_to_reg_field | ( |  | ) |
| static

Menu 3: Reads and/or Writes individual SPI fields This function provides the user with a list of all SPI fields.

The user can select a SPI field to read its current value. Then the user will be provided with an option to write to that field or return to the selection menu.

EXAMPLE:

- 1-ALCCAL 25-LKWIN 49-PART *
- 2-ALCEN 26-LOCK * 50-PD
- ....
- 21-DLY4 45-OINV1 69-SYNCEN4
- 23-INVSTAT 47-OINV3 71-x
- 24-LKCT 48-OINV4
- 0 - Return to Main Menu
- * = READ ONLY FIELD
- Enter a command (1-71 to modify register, or '0' to return to Main Menu):
  Returns
    void

Definition at line 498 of file DC2248A.ino.

## ◆ menu_4_store_settings()

static void menu_4_store_settings | ( |  | ) |
| static

Store PLL settings to nonvolatile EEPROM on demo board.

Returns
  void

Definition at line 564 of file DC2248A.ino.

## ◆ menu_5_restore_settings()

static void menu_5_restore_settings | ( |  | ) |
| static

Read stored PLL settings from nonvolatile EEPROM on demo board.

Returns
  void

Definition at line 589 of file DC2248A.ino.

## ◆ menu_6_multibytewrite()

static void menu_6_multibytewrite | ( |  | ) |
| static

Frequency change Timing test (SPI write + Calibration + Settling Time): Provides two frequency settings and allows user to toggle between the two frequencies by changing the N-divider(ND) value.

The user can monitor the STATUS pin. The user can trigger off the STATUS or CS pins. In most cases the user will want to set the SPI frequency to 8MHz (see menu option 7)

Returns
  void

Definition at line 651 of file DC2248A.ino.

## ◆ menu_7_SPI_speed()

static void menu_7_SPI_speed | ( |  | ) |
| static

Read stored PLL settings from nonvolatile EEPROM on demo board.

Returns
  void

Definition at line 698 of file DC2248A.ino.

## ◆ menu_8_DC2430_site_select()

static void menu_8_DC2430_site_select | ( |  | ) |
| static

Read stored PLL settings from nonvolatile EEPROM on demo board.

Returns
  void

Definition at line 758 of file DC2248A.ino.

## ◆ print_prompt()

static void print_prompt | ( |  | ) |
| static

Prints main menu.

Definition at line 893 of file DC2248A.ino.

## ◆ print_title()

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

Prints the title block when program first starts.

Definition at line 862 of file DC2248A.ino.

## ◆ setup()

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

Initialize Linduino.

Returns
  void

Definition at line 145 of file DC2248A.ino.

## Variable Documentation

## ◆ dc2248_board_connected

int8_t dc2248_board_connected = 0
| static

Demo Board Name stored in QuikEval EEPROM.

Definition at line 127 of file DC2248A.ino.

## ◆ dc2430_en_Pin

int dc2430_en_Pin =5
| static

DC2430 digital pin enables Linduino to control which DC2430 site is selected & turns on DC2430 LED.

Definition at line 140 of file DC2248A.ino.

## ◆ dc2430_site_A0_APin

int dc2430_site_A0_APin =0
| static

DC2430 resistor tree, if it reads 3.3V then DC2430 connected.

Definition at line 132 of file DC2248A.ino.

## ◆ dc2430_site_A1_APin

int dc2430_site_A1_APin =1
| static

DC2430 resistor tree, if it reads 1.66V then DC2430 connected.

Definition at line 133 of file DC2248A.ino.

## ◆ dc2430_site_A2_APin

int dc2430_site_A2_APin =2
| static

DC2430 INFO ONLY, measures DC2226 (Linduino) VCCIO voltage.

Definition at line 134 of file DC2248A.ino.

## ◆ dc2430_site_DA0_Pin

int dc2430_site_DA0_Pin =2
| static

DC2430 digital pin allows Linduino to control which DC2430 site is selected.

Definition at line 137 of file DC2248A.ino.

## ◆ dc2430_site_DA1_Pin

int dc2430_site_DA1_Pin =3
| static

DC2430 digital pin allows Linduino to control which DC2430 site is selected.

Definition at line 138 of file DC2248A.ino.

## ◆ dc2430_site_DA2_Pin

int dc2430_site_DA2_Pin =4
| static

DC2430 digital pin allows Linduino to control which DC2430 site is selected.

Definition at line 139 of file DC2248A.ino.

## ◆ demo_board_connected

int8_t demo_board_connected = 0
| static

Demo Board Name stored in QuikEval EEPROM.

Definition at line 126 of file DC2248A.ino.

## ◆ First_Run

uint8_t First_Run =0
| static

if first time through loop = 0, otherwise=1

Definition at line 128 of file DC2248A.ino.

## ◆ Using_DC2430

boolean Using_DC2430 = false

Indicator if DC2430 (Linduino Expander) is connected.

Definition at line 129 of file DC2248A.ino.