76 #define LTC6946_CS QUIKEVAL_CS 81 #define LTC6946_ALCCAL 1 82 #define LTC6946_ALCEN 2
83 #define LTC6946_ALCHI 3
84 #define LTC6946_ALCLO 4
85 #define LTC6946_ALCMON 5
86 #define LTC6946_ALCULOK 6
91 #define LTC6946_CPCHI 11
92 #define LTC6946_CPCLO 12
93 #define LTC6946_CPDN 13
94 #define LTC6946_CPINV 14
95 #define LTC6946_CPMID 15
96 #define LTC6946_CPRST 16
97 #define LTC6946_CPUP 17
98 #define LTC6946_CPWIDE 18
99 #define LTC6946_FILT 19
100 #define LTC6946_LKCT 20
101 #define LTC6946_LKEN 21
102 #define LTC6946_LKWIN 22
103 #define LTC6946_LOCK 23
104 #define LTC6946_MTCAL 24
105 #define LTC6946_ND 25
106 #define LTC6946_OD 26
107 #define LTC6946_OMUTE 27
108 #define LTC6946_PART 28
109 #define LTC6946_PDALL 29
110 #define LTC6946_PDOUT 30
111 #define LTC6946_PDPLL 31
112 #define LTC6946_PDREFO 32
113 #define LTC6946_PDVCO 33
114 #define LTC6946_POR 34
115 #define LTC6946_RD 35
116 #define LTC6946_REV 36
117 #define LTC6946_RFO 37
118 #define LTC6946_THI 38
119 #define LTC6946_TLO 39
120 #define LTC6946_UNLOK 40
124 #define LTC6946_NUM_REGADDR 12 125 #define LTC6946_NUM_REGFIELD 41
132 #define OneMHz 1000000L 134 #define LTC6946_1_MAXFREQ 3740 135 #define LTC6946_2_MAXFREQ 4910
136 #define LTC6946_3_MAXFREQ 5790
137 #define LTC6946_4_MAXFREQ 6390
139 #define LTC6946_1_MINFREQ 2240 140 #define LTC6946_2_MINFREQ 3080
141 #define LTC6946_3_MINFREQ 3840
142 #define LTC6946_4_MINFREQ 4200
144 #define LTC6946_MIN_REF_FREQ 10 145 #define LTC6946_MAX_REF_FREQ 250
364 void HZto64(
unsigned long an[],
365 unsigned long MHzPart,
375 void init64(
unsigned long an[],
376 unsigned long bigPart,
377 unsigned long littlePart
383 void shl64(
unsigned long an[]
389 void shl64by(
unsigned long an[],
396 void shr64(
unsigned long an[]
402 void shr64by(
unsigned long an[],
409 void add64(
unsigned long an[],
416 void sub64(
unsigned long an[],
423 boolean eq64(
unsigned long an[],
430 boolean lt64(
unsigned long an[],
437 void div64(
unsigned long num[],
445 void mul64(
unsigned long an[],
452 void prt(
unsigned long an[]
uint8_t LTC6946_read(uint8_t cs, int8_t address)
LTC6946 Read Single Address reads 8 bit Data field to LTC6946.
void set_LTC6946_global_fref(unsigned long fref_MHz, unsigned long fref_Hz)
sets globals LTC6946_Fref_MHz and LTC6946_Fref_Hz
uint8_t get_LTC6946_SPI_FIELD_NUMBITS(uint8_t f)
returns the number of bits for a given field name in the SPI map
void sub64(unsigned long an[], unsigned long ann[])
64 bit Subtract ann from an (an[] = an[] - ann[])
void set_LTC6946_global_frf(unsigned long frf_MHz, unsigned long frf_Hz)
sets globals LTC6946_Frf_MHz and LTC6946_Frf_Hz
long LTC6946_read_field(uint8_t cs, uint8_t address, uint8_t MSB_loc, uint8_t numbits)
LTC6946 Read Single Field For SPI FIELDS located in 1 or multiple address locations reads specific ad...
void HZto64(unsigned long an[], unsigned long MHzPart, unsigned long HzPart)
create a 64 bit Hz number from 32 bit xxxx MHz number and 32 bit yyy yyy Hz number.
void add64(unsigned long an[], unsigned long ann[])
64 bit Add ann to an (an[] = an[] + ann[])
void set_LTC6946_SPI_FIELD(uint8_t cs, uint8_t f, long field_data)
Sets the LTC6946 SPI field value calls function LTC6946_read_field, which reads specific address/fiel...
void LTC6946_init()
Initializes the SPI MAP arrays The values set in initialization are used all the LTC6946 SPI/WRITE an...
unsigned long get_LTC6946_global_fref_Hz()
returns global LTC6946_Fref_Hz
unsigned long get_LTC6946_global_fref_MHz()
returns global LTC6946_Fref_MHz
void mul64(unsigned long an[], unsigned long ann[])
64 bit multiply, an=an*ann
void init64(unsigned long an[], unsigned long bigPart, unsigned long littlePart)
Creates a equivalent 64 bit number from 2 32 bit numbers.
void set_LTC6946_ALLREGS(uint8_t cs, uint8_t reg01, uint8_t reg02, uint8_t reg03, uint8_t reg04, uint8_t reg05, uint8_t reg06, uint8_t reg07, uint8_t reg08, uint8_t reg09, uint8_t reg0A)
Writes values to ALL LTC6946 RW address.
void LTC6946_write(uint8_t cs, uint8_t address, uint8_t Data)
LTC6946 Write Single Address writes 8 bit Data field to LTC6946.
uint8_t LTC6946_write_field(uint8_t cs, long field_data, uint8_t address, uint8_t MSB_loc, uint8_t numbits)
LTC6946 Write Single Field For SPI FIELDS in 1 or multiple address locations reads specific address/f...
boolean lt64(unsigned long an[], unsigned long ann[])
64 bit, if an < ann, then true
void shl64by(unsigned long an[], uint8_t shiftnum)
Multi Bit shift left of equivalent 64 bit number (an[] = an[]<<shiftnum)
boolean eq64(unsigned long an[], unsigned long ann[])
64 bit, if an == ann, then true
void shr64by(unsigned long an[], uint8_t shiftnum)
Multi Bit shift right of equivalent 64 bit number (an[] = an[]>>shiftnum)
void shl64(unsigned long an[])
Single Bit shift left of equivalent 64 bit number (an[] = an[]<<1)
void prt(unsigned long an[])
Prints HEX representation of 64 bit an.
unsigned long get_LTC6946_global_frf_Hz()
returns global LTC6946_Frf_Hz
void shr64(unsigned long an[])
Single Bit shift right of equivalent 64 bit number (an[] = an[]<<1)
long get_LTC6946_SPI_FIELD(uint8_t cs, uint8_t f)
Gets the LTC6946 SPI field value calls function LTC6946_read_field, which reads specific address loca...
unsigned long get_LTC6946_global_frf_MHz()
returns global LTC6946_Frf_MHz
uint8_t get_LTC6946_REGSIZE()
returns # of addresses in parts register map (array size)
void div64(unsigned long num[], unsigned long den[])
64 bit Divide, num=num/div
uint8_t get_LTC6946_SPI_FIELD_RW(uint8_t f)
returns if the given field name is (0)read/write or (1)read_only field
void LTC6946_set_frf(char part_version[])
FUNCTION: LTC6946_set_frf Calculates the integer (N), fractional (NUM) and output divider (OD) SPI va...
unsigned long LTC6946_calc_odiv(char part_version[], unsigned long frf[2])
calculates the output divider setting based on the frf and version of LTC6946