У микросхемы ревизии 1738, периодически, при включении возникает проблема с каналом C2.
Оба канала настроены в режиме СКВТ. ЦАП канала С1 формирует опорный сигнал. Для C1 включен режим восстановления опорной частоты. Канал С2 работает как ведомый, его опора - Ex_ref канала C1. В нескольких попытках включения из десяти канал С2 не запускается, содержимое регистра C2Stat при этом сначала равняется 0x8320, затем переходит в 0x8120. На входы C1 и C2 поступает один и тот же (!) сигнал. И С1 работает корректно всегда. Проблема решается только сбросом или выключением питания. Так же в регистре ModeStat постоянно установлен бит ECC_err.
Попробуйте сначала настроить каналы, а потом их включить, битами CONVx_en. Если не поможет, то пришлите пожалуйста регистры.
ECC_err, скорее всего, нужно сбросить после настройки PLL. После этого не должен больше устанавливаться.
Включение каналов отдельно от настроек не помогло.
Настройки микросхемы:
void init_1310(void)
{
uint16_t tempReg = 0;
PORT_ResetBits(PORTA, PORT_Pin_5); //nRST = 0
for(i=0; i<100; i++) {;}
PORT_SetBits(PORTA, PORT_Pin_5); //nRST = 1
WriteReg(ADR_AFE_CONFIG, (Bit_6 | Bit_5 | Bit_4 | Bit_3 | Bit_0));
for(i=0; i<1000; i++) {;}
WriteReg(ADR_C1EXINC, 2000);
WriteReg(ADR_MODE_STAT, (Bit_15 | Bit_9));
WriteReg(ADR_C1CNTRL, (Bit_15 | Bit_14 | Bit_13 | Bit_9 | (14)));
WriteReg(ADR_C2CNTRL, (Bit_14 | Bit_13 | Bit_12 | Bit_9 |(14)));
WriteReg(ADR_C1RESCNTRL, ((3 <<

| (2)));
WriteReg(ADR_C2RESCNTRL, 2);
// Загрузка коэффициентов из памяти
if(*(unsigned int*)(ADR_COEF+8)==__KEY)
WriteReg(ADR_C1KAMPC, *(unsigned int*)(ADR_COEF+0)); // C1KampC
if(*(unsigned int*)(ADR_COEF+12)==__KEY)
WriteReg(ADR_C2KAMPC, *(unsigned int*)(ADR_COEF+4)); // C2KampC
// Enable ch1
tempReg = ReadReg(ADR_MODE_STAT);
tempReg |= Bit_10;
WriteReg(ADR_MODE_STAT, tempReg);
// Wait for stable ch1
for(i=0; i<10; i++) {;}
// Enable ch2
tempReg = ReadReg(ADR_MODE_STAT);
tempReg |= Bit_11;
WriteReg(ADR_MODE_STAT, tempReg);
}
Напряжение питания 3,3 - 3,4 В. Частота генератора 10 МГц. Инициализация проводится спустя 50 мс после подачи питания. Этого времени достаточно?