Цитата(urasinov @ Aug 31 2007, 13:08)

А где в Hardware Reference написано что 0х0200 это для частоты кварца 27 МГц? Я думаю 0х0200 это с запасом для всех допустимых частот кварца. Можно взглянуть на ваш код инициализации PLL? Вот мой работает без проблем.
В референсе харда этого утверждения нет, НО этот код приведен для EZ-Lite BF533 где стоит задающий генератор на 27 МГц. Что касаемо 0х200: то я так думаю, что эта величина должна зависеть не только от частоты задающего, но и от коэф. умножения PLL.
Код инициализации PLL:
#define PLL_MSEL 0x10 // default = 0xA
#define PLL_D 0x0 // default = 0x0
#define PLL_LOCK_COUNT 0x300 //default = 0x200
#define PLL_CSEL 0x0 // default = 0x0
#define PLL_SSEL 0x4 // default = 0x5
// Reconfigure PLL_CTL Register
#if defined(PLL_MSEL) || defined(PLL_D)
#ifdef PLL_LOCK_COUNT
p0.l = lo(PLL_LOCKCNT);
p0.h = hi(PLL_LOCKCNT);
r0.l = lo(PLL_LOCK_COUNT);
r0.h = hi(PLL_LOCK_COUNT);
w[p0] = r0;
#endif //PLL_LOCK_COUNT
p0.l = lo(PLL_CTL);
p0.h = hi(PLL_CTL);
r1 = w[p0](z);
r2 = r1;
r0 = 0(z);
#ifdef PLL_D
bitclr(r1,0);
r0.l = (PLL_D & 0x1);
r1 = r1 | r0;
#endif // PLL_D
#ifdef PLL_MSEL
r0.l = ~(0x3f << 9);
r1 = r1 & r0;
r0.l = ((PLL_MSEL & 0x3f) << 9);
r1 = r1 | r0;
#endif // PLL_MSEL
cc = r1 == r2; // check if PLL_CTL changed
if cc jump skip_pll; // skip the PLL_CTL update
p1.l = lo(SIC_IWR); // enable PLL Wakeup Interrupt
p1.h = hi(SIC_IWR);
r0 = [p1];
bitset(r0,0);
[p1] = r0;
w[p0] = r1; // Apply PLL_CTL changes.
ssync;
cli r2; // disable interrupts 15-5
idle; // wait for Loop_count expired wake up
sti r2; // enable interrupts 15-5
skip_pll:
nop;
#endif //(PLL_MSEL | PLL_D)
//-------------------------------------
// Reconfigure PLL_DIV Register
// Can be done on the fly
#if defined(PLL_CSEL) | defined(PLL_SSEL)
p0.l = lo(PLL_DIV);
p0.h = hi(PLL_DIV);
r1 = w[p0](z);
r0 = 0(z);
#ifdef PLL_CSEL
r0.l = ~(0x3<<4);
r1 = r1 & r0;
r0.l = ((PLL_CSEL & 0x3)<<4);
r1 = r1 | r0;
#endif // PLL_CSEL
#ifdef PLL_SSEL
r0.l = ~(0xf);
r1 = r1 & r0;
r0.l = (PLL_SSEL & 0xf);
r1 = r1 | r0;
#endif // PLL_SSEL
w[p0] =r1;
ssync;
#endif //(PLL_CSEL | PLL_SSEL)
//--------------------------------------