Added r_div argument to si5351c_configure_multisynth(). Modified Jellybean clock setup to provide 10MHz clock to MAX5864 and 20MHz to CPLD (both inverted and non-inverted).

This commit is contained in:
Jared Boone
2012-06-13 17:53:10 -07:00
parent ca18d36779
commit 02f61f4d64
2 changed files with 23 additions and 7 deletions

View File

@ -132,7 +132,8 @@ void si5351c_configure_pll1_multisynth()
} }
void si5351c_configure_multisynth( const uint_fast8_t ms_number, void si5351c_configure_multisynth( const uint_fast8_t ms_number,
const uint32_t p1, const uint32_t p2, const uint32_t p3) const uint32_t p1, const uint32_t p2, const uint32_t p3,
const uint_fast8_t r_div)
{ {
/* /*
* TODO: Check for p3 > 0? 0 has no meaning in fractional mode? * TODO: Check for p3 > 0? 0 has no meaning in fractional mode?
@ -143,7 +144,7 @@ void si5351c_configure_multisynth( const uint_fast8_t ms_number,
register_number, register_number,
(p3 >> 8) & 0xFF, (p3 >> 8) & 0xFF,
(p3 >> 0) & 0xFF, (p3 >> 0) & 0xFF,
(0 << 4) | (0 << 2) | ((p1 >> 16) & 0x3), (r_div << 4) | (0 << 2) | ((p1 >> 16) & 0x3),
(p1 >> 8) & 0xFF, (p1 >> 8) & 0xFF,
(p1 >> 0) & 0xFF, (p1 >> 0) & 0xFF,
(((p3 >> 16) & 0xF) << 4) | (((p2 >> 16) & 0xF) << 0), (((p3 >> 16) & 0xF) << 4) | (((p2 >> 16) & 0xF) << 0),
@ -166,8 +167,22 @@ void si5351c_configure_multisynth( const uint_fast8_t ms_number,
* MS1_INT=1 (integer mode) * MS1_INT=1 (integer mode)
* MS1_SRC=0 (PLLA as source for MultiSynth 1) * MS1_SRC=0 (PLLA as source for MultiSynth 1)
* CLK1_INV=0 (not inverted) * CLK1_INV=0 (not inverted)
* CLK1_SRC=3 (MS1 as input source) * CLK1_SRC=2 (MS1 as input source)
* CLK1_IDRV=3 (8mA) * CLK1_IDRV=3 (8mA)
* CLK2:
* CLK2_PDN=0 (powered up)
* MS2_INT=1 (integer mode)
* MS2_SRC=0 (PLLA as source for MultiSynth 2)
* CLK2_INV=0 (not inverted)
* CLK2_SRC=2 (MS0 as input source)
* CLK2_IDRV=3 (8mA)
* CLK3:
* CLK3_PDN=0 (powered up)
* MS3_INT=1 (integer mode)
* MS3_SRC=0 (PLLA as source for MultiSynth 3)
* CLK3_INV=1 (inverted)
* CLK3_SRC=2 (MS0 as input source)
* CLK3_IDRV=3 (8mA)
* CLK4: * CLK4:
* CLK4_PDN=0 (powered up) * CLK4_PDN=0 (powered up)
* MS4_INT=0 (fractional mode -- to support 12MHz to LPC for USB DFU) * MS4_INT=0 (fractional mode -- to support 12MHz to LPC for USB DFU)
@ -178,13 +193,13 @@ void si5351c_configure_multisynth( const uint_fast8_t ms_number,
*/ */
void si5351c_configure_clock_control() void si5351c_configure_clock_control()
{ {
uint8_t data[] = { 16, 0x4F, 0x4F, 0x80, 0x80, 0x0F, 0x80, 0x80, 0x80 }; uint8_t data[] = { 16, 0x4F, 0x4B, 0x4B, 0x5B, 0x0F, 0x80, 0x80, 0x80 };
si5351c_write(data, sizeof(data)); si5351c_write(data, sizeof(data));
} }
/* Enable CLK outputs 0, 1, 4 only. */ /* Enable CLK outputs 0, 1, 2, 3, 4 only. */
void si5351c_enable_clock_outputs() void si5351c_enable_clock_outputs()
{ {
uint8_t data[] = { 3, 0xEC }; uint8_t data[] = { 3, 0xE0 };
si5351c_write(data, sizeof(data)); si5351c_write(data, sizeof(data));
} }

View File

@ -40,7 +40,8 @@ void si5351c_enable_xo_and_ms_fanout();
void si5351c_configure_pll_sources_for_xtal(); void si5351c_configure_pll_sources_for_xtal();
void si5351c_configure_pll1_multisynth(); void si5351c_configure_pll1_multisynth();
void si5351c_configure_multisynth( const uint_fast8_t ms_number, void si5351c_configure_multisynth( const uint_fast8_t ms_number,
const uint32_t p1, const uint32_t p2, const uint32_t p3); const uint32_t p1, const uint32_t p2, const uint32_t p3,
const uint_fast8_t r_div);
void si5351c_configure_clock_control(); void si5351c_configure_clock_control();
void si5351c_enable_clock_outputs(); void si5351c_enable_clock_outputs();