Уважаемые товарищи, помогите с настройкой PLL.
Для начала хочу получить от нее 40 МГц, режим full chip mode, на входе 32.768 MHz.
На выходе примерно 42.5185 МГц, на тестовоый пин вывел Digital Lock - не лочится.
Вывел N divider - на нем не оч красивый клок около 69MHz, вместо ожидаемых 65.536 (я включил удвоитель OSC_2X=1).
Настройки делителя и множителя верные, Fast Lock не использую и не настраивал. Остальные параметры настроил
не вполне уверен что правильно, в частности, для Charge Pump не знаю какую оптимальную величину задать. Пробовал мин, макс и посередине.
Настройки такие:
Код
lmxwrite 0x00000017
lmxwrite 0x0000008d
lmxwrite 0x0000001c
lmxwrite 0x28001409
lmxwrite 0x0111cf88
lmxwrite 0x001f3316
lmxwrite 0xa0000005
lmxwrite 0xff4b8214
lmxwrite 0x11bc7f03
lmxwrite 0x07200002
lmxwrite 0x02000011
lmxwrite 0xfc000220
Вот в более читабельном виде:
Код
// LMX settings bits
#define LMX_VCO_DIV_OPT 0 // VCO_DIV > 1
#define LMX_AC_TEMP_COMP 24 // Temp drift compensation as for fixed freq
#define LMX_VCOGAIN 12 // Default is 12, valid if VCO_DIV == 1 (bypass)
#define LMX_OUTTERM 12 // Default is 12
#define LMX_DIVGAIN 15 // Default is 12, valid if VCO_DIV > 1
#define LMX_RFOUT 1 // Enable RFout control via EN_RFout pin
#define LMX_FL_CPG 0 // Not using Fastlock feature currently
#define LMX_FL_RF_LF 0 // Not using Fastlock feature currently
#define LMX_FL_R3_LF 0 // Not using Fastlock feature currently
#define LMX_FL_TOC 0 // Not using Fastlock feature currently
#define LMX_C4_LF 15 // C4 = 100pF (max)
#define LMX_C3_LF 15 // C3 = 20pF (max)
#define LMX_R4_LF 2 // R4 = 2k
#define LMX_R3_LF 2 // R3 = 2k
#define LMX_VCO_DIV
#define LMX_OSC_FREQ 33 // OSCIn freq nearest value
#define LMX_FSK 0 // FSK Mode Disabled
#define LMX_DLOCK 4 // Digital Lock detect Window Size = 11.5
#define LMX_CPT 0 // Normal Operation
#define LMX_DITH 3 // Dithering Disabled
#define LMX_ORDER 3 // Delta Sigma Modulator Order = 3
#define LMX_FDM 1 // Extended Fractional Denominator Mode Enable (22-bit)
#define LMX_OSC_2X 1 // OSCin frequency is doubled
#define LMX_CPP 0 // Negative Charge Pump Polarity
#define LMX_MUX 8//3 // Ftest/LD pin is Digital Lock Detect <-- now is 8 for N-div output
#define LMX_CPG 9 // 1.0 mA charge pump curr
#define LMX_XO 0 // Single ended
#define LMX_POWER_DOWN 0 // Powered Up
#define LMX_MODE 0 // Full Chip Mode
#define LMX_DEN 3276800
#define LMX_PLL_NUM <--- this calculating at runtime
#define LMX_PLL_N <--- this calculating at runtime
#define LMX_PLL_R 1 // dummy value, R divider is bypassed, frequency doubler enabled