Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2020-сен-23 00:58

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 303 сообщения ]  На страницу « 117 18 19 20 21 »
Автор Сообщение
СообщениеДобавлено: 2019-дек-24 15:40 
Не в сети

Зарегистрирован: 2015-фев-24 19:17
Сообщения: 100
Откуда: АО "ПКК Миландр"
Как то странно, вроде бы все корректно, должно работать. Наверное, стоит отдельно попробовать второй канал без первого.

>>>> Необходимо ли резервировать генератор и цап обмотки возбуждения?
Генератор - цифровая схема (счетчик + cordic) - она может от ТЗЧ сбоить, тогда сигнал будет перескакивать, но полностью его вырубить, на мой взгляд довольно сложно. ЦАП может помереть, но скорее не от ТЗЧ, а от дозы. Вообще, я бы попробовал ЦАПы соединить между собой и использовать по очереди (По правде говоря так не пробовал, но судя по схеме должно работать, т.к. при отключении ЦАП отключается ключами от вывода. Но это на ваш страх и риск, не испытано).

Из центральных блоков, которые в принципе могут отказать, это PLL - тут я бы рекомендовал использовать внешний кварц, тоже с резервированием, а PLL отключить, ну или контролировать через счетчик. Также, источник опорных напряжений и токов - вообще слабое место - можно было бы его выход 1,25В оцифровывать, сверять с эталонным.


Вернуться к началу
СообщениеДобавлено: 2019-дек-25 12:53 
Не в сети

Зарегистрирован: 2018-май-10 06:35
Сообщения: 8
Организация: АО НПЦ ПОЛЮС
Alex1, попробовал второй канал отдельно, всё работает.
Решил использовать его как основной, т.е. с EXI2 подаю на EXI1. Генератор и цап для ОВ датчика соответственно тоже от второго канала использую. Всё заработало, углы совпадают.


Вернуться к началу
СообщениеДобавлено: 2020-янв-09 09:34 
Не в сети

Зарегистрирован: 2019-июл-31 08:38
Сообщения: 17
Организация: ПАО АНПП "ТЕМП-АВИА"
Здравствуйте. Подключаю и слушаю ЛРДТ - по обоим каналам что то не то, значение 32 и 32... Нужна помощь! Вот что имею:
1. Тактирование от внешнего генератора 30МГц.
2. На входе датчика сигнал sin и cos, 11.3 КГц и размах 800мВ на входах 12 и 13.
3. Есть на входах (IOSA/IOCA) микросхемы сигналы от датчика и они правильной амплитуды. Ведут себя адекватно вращению датчика, остаются правильной амплитуды.
4. С1Stat отвечает нулем...
5. На макетной плате все каналы работают правильно.
6. В рабочей плате нет резистора, остальные резисторы вокруг по 200 КОм. Вопрос как его отсутствие повлияет на...?:[ img ]
Вот настройки:
void AngleCode<sensor_mode>::Set_PLL_config_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x00;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	pLL_config_0x00.address = structTx.word;
	pLL_config_0x00.pLL_config.bit.ADC_cycle = 17;
}
template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_AFE_config_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x02;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	aFE_config_0x02.address = structTx.word;

	aFE_config_0x02.aFE_config.bit.VREF_en = 1;
	aFE_config_0x02.aFE_config.bit.EXT_RES_iREF = 0;
	aFE_config_0x02.aFE_config.bit.OFFSET_LOW = 0;
	aFE_config_0x02.aFE_config.bit.NDIFF_OFF = 1;
	aFE_config_0x02.aFE_config.bit.OPA1_en = 1;
	aFE_config_0x02.aFE_config.bit.OPA2_en = 1;
	aFE_config_0x02.aFE_config.bit.DAC1_en = 1;
	aFE_config_0x02.aFE_config.bit.DAC2_en = 0;
	aFE_config_0x02.aFE_config.bit.bit8_13 = 0;
	aFE_config_0x02.aFE_config.bit.OSC_BYP = 1;
	aFE_config_0x02.aFE_config.bit.OSC_DIS = 0;

}
template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_Mode_state_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x04;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	mode_stat_0x04.address = structTx.word;
	mode_stat_0x04.mode_stat.bit.CONV1_en = 1;
	mode_stat_0x04.mode_stat.bit.CONV2_en = 1;
	mode_stat_0x04.mode_stat.bit.Sample_src = 3;
	mode_stat_0x04.mode_stat.bit.SPI_CRC_en = 0;
	mode_stat_0x04.mode_stat.bit.Mode = 0;
}
template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C1Cntrl_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x18;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c1Cntrl_0x18.address = structTx.word;


	c1Cntrl_0x18.C1Cntrl.bit.Ex_recovery_en = 1;
	c1Cntrl_0x18.C1Cntrl.bit.Ex_source = 0;
	c1Cntrl_0x18.C1Cntrl.bit.DC_carrier = 0;
	if(!sensor_mode)//ДЛЯ СКВТ
	{
		c1Cntrl_0x18.C1Cntrl.bit.Sensor_mode = 0;
		c1Cntrl_0x18.C1Cntrl.bit.Ex_on = 1;
		c1Cntrl_0x18.C1Cntrl.bit.Ex_amp = 0;
	}
	else
	{
		c1Cntrl_0x18.C1Cntrl.bit.Ex_on = 1;
		c1Cntrl_0x18.C1Cntrl.bit.Ex_amp = 1;
		c1Cntrl_0x18.C1Cntrl.bit.Sensor_mode = 3;
	}

	c1Cntrl_0x18.C1Cntrl.bit.LBW = 14;
	c1Cntrl_0x18.C1Cntrl.bit.DC_correction = 1;
}
template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C2Cntrl_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x58;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c2Cntrl_0x58.address = structTx.word;

	c2Cntrl_0x58.C2Cntrl.bit.Ex_recovery_en = 1;
	c2Cntrl_0x58.C2Cntrl.bit.Ex_source = 0;
	c2Cntrl_0x58.C2Cntrl.bit.DC_carrier = 0;

	if(!sensor_mode)
	{
		c2Cntrl_0x58.C2Cntrl.bit.Sensor_mode = 0;
		c2Cntrl_0x58.C2Cntrl.bit.Ex_on = 1;
		c2Cntrl_0x58.C2Cntrl.bit.Ex_amp = 1;

	}
	else
	{
		c2Cntrl_0x58.C2Cntrl.bit.Ex_on = 1;
		c2Cntrl_0x58.C2Cntrl.bit.Ex_amp = 1;
		c2Cntrl_0x58.C2Cntrl.bit.Sensor_mode = 2;
	}

	c2Cntrl_0x58.C2Cntrl.bit.LBW = 14;
	c2Cntrl_0x58.C2Cntrl.bit.DC_correction = 1;

}
template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C1ResCntrl_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x1A;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c1ResCntrl_0x1A.address = structTx.word;
	c1ResCntrl_0x1A.C1ResCntrl.bit.Enc_en = 0;
	c1ResCntrl_0x1A.C1ResCntrl.bit.Vel_resolution = 3;
	c1ResCntrl_0x1A.C1ResCntrl.bit.Coord_hist = 0;
	c1ResCntrl_0x1A.C1ResCntrl.bit.SPI_ext_en = 0;
	c1ResCntrl_0x1A.C1ResCntrl.bit.Dir_out_en = 0;
	c1ResCntrl_0x1A.C1ResCntrl.bit.Coord_resolution = 2;
}
template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C2ResCntrl_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x5A;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c2ResCntrl_0x5A.address = structTx.word;
	c2ResCntrl_0x5A.C2ResCntrl.bit.Enc_en = 0;
	c2ResCntrl_0x5A.C2ResCntrl.bit.Vel_resolution = 3;
	c2ResCntrl_0x5A.C2ResCntrl.bit.Coord_hist = 0;
	c2ResCntrl_0x5A.C2ResCntrl.bit.SPI_ext_en = 0;
	c2ResCntrl_0x5A.C2ResCntrl.bit.Dir_out_en = 0;
	c2ResCntrl_0x5A.C2ResCntrl.bit.Coord_resolution = 2;
}
template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C1EXInc_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x1E;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c1EXInc_0x1E.address = structTx.word;

	if(!sensor_mode)
		c1EXInc_0x1E.C1EXInc = 6990;
	else
		c1EXInc_0x1E.C1EXInc = 3940;
}
template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C2EXInc_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x5E;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c2EXInc_0x5E.address = structTx.word;
	if(!sensor_mode)
		c2EXInc_0x5E.C2EXInc = 6990;
	else
		c2EXInc_0x5E.C2EXInc = 3940;
}
template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C1Mask_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x16;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c1Mask_0x16.address = structTx.word;
	c1Mask_0x16.C1Mask.bit.MSK_NLock = 0;
}
template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C2Mask_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x56;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c2Mask_0x56.address = structTx.word;
	c2Mask_0x56.C2Mask.bit.MSK_NLock = 0;
}
template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_Mask_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x06;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	mask_0x06.address = structTx.word;
	mask_0x06.mask.bit.MSK_ECC_err = 0;
}
Всем заранее спасибо за помощь!


Вложения:
Комментарий к файлу: ЛРДТ без резистора
[ attachment ]
ЛРДТ.jpg [ 45.12 КБ | 4748 просмотров ]


Последний раз редактировалось urban81 2020-янв-16 13:49, всего редактировалось 1 раз.
Вернуться к началу
СообщениеДобавлено: 2020-янв-16 11:33 
Не в сети

Зарегистрирован: 2019-июл-31 08:38
Сообщения: 17
Организация: ПАО АНПП "ТЕМП-АВИА"
Здравствуйте.
1. Поставил 2 резистора на каждый канал 3.6 кОм поставил как на тестовой плате.
2. Поставил 2 резистора на каждый канал 3.6 кОм поставил как на боевой плате.
Поведение плат разное:
1. На тестовой плате вижу весь диапазон от 0 до 65535 по обоим каналам с такими настройками[ img ]:
2. На боевой плате по первому каналу значения от 0 до 1500 по второму каналу 32767,+-10 с такими настройками:
template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_PLL_config_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x00;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	pLL_config_0x00.address = structTx.word;
	pLL_config_0x00.pLL_config.bit.ADC_cycle = 17;
}

template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_AFE_config_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x02;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	aFE_config_0x02.address = structTx.word;

	aFE_config_0x02.aFE_config.bit.VREF_en = 1;
	aFE_config_0x02.aFE_config.bit.EXT_RES_iREF = 0;///!!!
	aFE_config_0x02.aFE_config.bit.OFFSET_LOW = 0;
	aFE_config_0x02.aFE_config.bit.NDIFF_OFF = 1;
	aFE_config_0x02.aFE_config.bit.OPA1_en = 1;
	aFE_config_0x02.aFE_config.bit.OPA2_en = 1;
	aFE_config_0x02.aFE_config.bit.DAC1_en = 1;
	aFE_config_0x02.aFE_config.bit.DAC2_en = 1;
	aFE_config_0x02.aFE_config.bit.bit8_13 = 0;
	aFE_config_0x02.aFE_config.bit.OSC_BYP = 1;
	aFE_config_0x02.aFE_config.bit.OSC_DIS = 0;

}

template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_Mode_state_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x04;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	mode_stat_0x04.address = structTx.word;
	mode_stat_0x04.mode_stat.bit.CONV1_en = 1;
	mode_stat_0x04.mode_stat.bit.CONV2_en = 1;
	mode_stat_0x04.mode_stat.bit.Sample_src = 3;
	mode_stat_0x04.mode_stat.bit.SPI_CRC_en = 0;
	mode_stat_0x04.mode_stat.bit.Mode = 0;
}

template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C1Cntrl_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x18;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c1Cntrl_0x18.address = structTx.word;


	c1Cntrl_0x18.C1Cntrl.bit.Ex_recovery_en = 1;
	c1Cntrl_0x18.C1Cntrl.bit.Ex_source = 0;
	c1Cntrl_0x18.C1Cntrl.bit.DC_carrier = 0;
	if(!sensor_mode)
	{
		c1Cntrl_0x18.C1Cntrl.bit.Sensor_mode = 0;
		c1Cntrl_0x18.C1Cntrl.bit.Ex_on = 1;
		c1Cntrl_0x18.C1Cntrl.bit.Ex_amp = 1;
	}
	else//ЛРДТ
	{
		c1Cntrl_0x18.C1Cntrl.bit.Ex_on = 1;
		c1Cntrl_0x18.C1Cntrl.bit.Ex_amp = 1;
		c1Cntrl_0x18.C1Cntrl.bit.Sensor_mode = 3;
	}

	c1Cntrl_0x18.C1Cntrl.bit.LBW = 14;
	c1Cntrl_0x18.C1Cntrl.bit.DC_correction = 1;
}

template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C2Cntrl_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x58;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c2Cntrl_0x58.address = structTx.word;

	c2Cntrl_0x58.C2Cntrl.bit.Ex_recovery_en = 1;
	c2Cntrl_0x58.C2Cntrl.bit.Ex_source = 0;
	c2Cntrl_0x58.C2Cntrl.bit.DC_carrier = 0;

	if(!sensor_mode)
	{
		c2Cntrl_0x58.C2Cntrl.bit.Sensor_mode = 0;
		c2Cntrl_0x58.C2Cntrl.bit.Ex_on = 1;
		c2Cntrl_0x58.C2Cntrl.bit.Ex_amp = 0;

	}
	else//ЛРДТ
	{
		c2Cntrl_0x58.C2Cntrl.bit.Ex_on = 1;
		c2Cntrl_0x58.C2Cntrl.bit.Ex_amp = 1;
		c2Cntrl_0x58.C2Cntrl.bit.Sensor_mode = 3;
	}

	c2Cntrl_0x58.C2Cntrl.bit.LBW = 14;
	c2Cntrl_0x58.C2Cntrl.bit.DC_correction = 1;

}

template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C1ResCntrl_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x1A;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c1ResCntrl_0x1A.address = structTx.word;
	c1ResCntrl_0x1A.C1ResCntrl.bit.Enc_en = 0;
	c1ResCntrl_0x1A.C1ResCntrl.bit.Vel_resolution = 3;
	c1ResCntrl_0x1A.C1ResCntrl.bit.Coord_hist = 1;
	c1ResCntrl_0x1A.C1ResCntrl.bit.SPI_ext_en = 0;
	c1ResCntrl_0x1A.C1ResCntrl.bit.Dir_out_en = 0;
	c1ResCntrl_0x1A.C1ResCntrl.bit.Coord_resolution = 2;
}

template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C2ResCntrl_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x5A;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c2ResCntrl_0x5A.address = structTx.word;
	c2ResCntrl_0x5A.C2ResCntrl.bit.Enc_en = 0;
	c2ResCntrl_0x5A.C2ResCntrl.bit.Vel_resolution = 3;
	c2ResCntrl_0x5A.C2ResCntrl.bit.Coord_hist = 1;
	c2ResCntrl_0x5A.C2ResCntrl.bit.SPI_ext_en = 0;
	c2ResCntrl_0x5A.C2ResCntrl.bit.Dir_out_en = 0;
	c2ResCntrl_0x5A.C2ResCntrl.bit.Coord_resolution = 2;
}

template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C1EXInc_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x1E;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c1EXInc_0x1E.address = structTx.word;

	if(!sensor_mode)
		c1EXInc_0x1E.C1EXInc = 6990;
	else
		c1EXInc_0x1E.C1EXInc = 3940;
}

template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C2EXInc_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x5E;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c2EXInc_0x5E.address = structTx.word;
	if(!sensor_mode)
		c2EXInc_0x5E.C2EXInc = 6990;
	else
		c2EXInc_0x5E.C2EXInc = 3940;
}


template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C1Mask_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x16;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c1Mask_0x16.address = structTx.word;
	c1Mask_0x16.C1Mask.bit.MSK_NLock = 0;
}

template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_C2Mask_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x56;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	c2Mask_0x56.address = structTx.word;
	c2Mask_0x56.C2Mask.bit.MSK_NLock = 0;
}

template <const bool sensor_mode>
void AngleCode<sensor_mode>::Set_Mask_RW(){

	StructTx structTx;

	structTx.bit.bit0_2 = RW;

	structTx.bit.adderss = 0x06;
	structTx.bit.bit_P = calcCheckParity(structTx.word);

	mask_0x06.address = structTx.word;
	mask_0x06.mask.bit.MSK_ECC_err = 0;
}
Есть предположения:
1. Микросхема сгорела.
2. Нужно подбирать резистор.
Нужна помощь! Всем заранее спасибо!


Вложения:
Комментарий к файлу: Настройки тестовой платы
[ attachment ]
Тестовая.jpg [ 313.19 КБ | 4603 просмотра ]
Вернуться к началу
СообщениеДобавлено: 2020-янв-20 08:19 
Не в сети

Зарегистрирован: 2019-июл-31 08:38
Сообщения: 17
Организация: ПАО АНПП "ТЕМП-АВИА"
Здравствуйте. Методика настройки микросхемы дала несколько предложений по аппаратной части боевой платы. После реализации предложений напишу. Заранее всем спасибо.


Вернуться к началу
СообщениеДобавлено: 2020-янв-20 13:05 
Не в сети

Зарегистрирован: 2018-окт-25 20:36
Сообщения: 4
Организация: частное лицо
Здравствуйте, а не подскажите где можно найти прошивку для МК который стоит на отладочной плате, просто насколько я понял, отладочная плата поставляется уже с вшитой на МК программой


Вернуться к началу
СообщениеДобавлено: 2020-янв-20 17:11 
Не в сети

Зарегистрирован: 2019-июл-31 08:38
Сообщения: 17
Организация: ПАО АНПП "ТЕМП-АВИА"
Здравствуйте. Замена резисторов на 10 КОм не дала желаемого результата. Поведение плат разное. По первому каналу нет переполнения разрядной сетки - в коде 512+-50.
По второму каналу 65535 -+2000.
Вот текущие настройки микросхемы:
PLL_config		
	ADC_cycle	17
		
AFE_config		
	VREF_en	1
	EXT_RES_iREF	0
	OFFSET_LOW	0
	NDIFF_OFF	1
	OPA1_en	1
	OPA2_en	1
	DAC1_en	1
	DAC2_en	1
	bit8_13	0
	OSC_BYP	1
	OSC_DIS	0
		
Mode_state		
	CONV1_en	1
	CONV2_en	1
	Sample_src	3
	SPI_CRC_en	0
	Mode	0
		
C1Cntrl		
	Ex_recovery_en	0
	Ex_source	1
	DC_carrier	0
	Ex_on	1
	Ex_amp	1
	Sensor_mode	3
	LBW	14
	DC_correction	1
		
C2Cntrl		
	Ex_recovery_en	0
	Ex_source	2
	DC_carrier	0
	Ex_on	0
	Ex_amp	1
	Sensor_mode	3
	LBW	14
	DC_correction	1
		
C1ResCntrl		
	Enc_en	0
	Vel_resolution	3
	Coord_hist	1
	SPI_ext_en	0
	Dir_out_en	0
	Coord_resolution	2
		
C2ResCntrl		
	Enc_en	0
	Vel_resolution	3
	Coord_hist	1
	SPI_ext_en	0
	Dir_out_en	0
	Coord_resolution	2
		
C1EXInc		
	C1EXInc	3940
C2EXInc		
	C2EXInc	3940
		
C1Mask		
	MSK_NLock	0
C2Mask		
	MSK_NLock	0
		
Mask		
	MSK_ECC_err	0
Вот обвес микросхемы:[ img ]
Нужна помощь.
1. Есть предложения доработать текущий обвес микросхемы, чтобы поведение было как на тестовой.
2. Новый обвес для микросхемы.
Также выслушаю Ваши предложения по этим пунктам. Всем заранее спасибо.


Вложения:
[ attachment ]
ДРДТ_1350.jpg [ 187.47 КБ | 4478 просмотров ]
Вернуться к началу
СообщениеДобавлено: 2020-янв-21 11:38 
Не в сети

Зарегистрирован: 2019-июл-31 08:38
Сообщения: 17
Организация: ПАО АНПП "ТЕМП-АВИА"
Здравствуйте. Снял сигнал со входов АЦП 12 и 53 [ img ], [ img ]. Всем заранее спасибо за помощь.


Вложения:
[ attachment ]
Отклонен_датчик_Входы_12_и_53.jpg [ 36.27 КБ | 4419 просмотров ]
[ attachment ]
Входы_12_и_53.jpg [ 35.18 КБ | 4419 просмотров ]
Вернуться к началу
СообщениеДобавлено: 2020-янв-21 16:01 
Не в сети

Зарегистрирован: 2019-июл-31 08:38
Сообщения: 17
Организация: ПАО АНПП "ТЕМП-АВИА"
В продолжении. На настройку фаз не реагирует[ img ]. Настройка относительно 46 вывода, т.к. 19 вход... настраиваем 12 и 53.


Вложения:
[ attachment ]
Настройка_фазы.jpg [ 40.76 КБ | 4406 просмотров ]
Вернуться к началу
СообщениеДобавлено: 2020-янв-22 15:27 
Не в сети

Зарегистрирован: 2019-июл-31 08:38
Сообщения: 17
Организация: ПАО АНПП "ТЕМП-АВИА"
Здравствуйте. Есть предложения [ img ]:
0. Убрать помеченную цепь и попробовать настроить фазы относительно 19 вывода 12 и 53...
1. Поставить резистор 3.6КОм как на макетной.
2. Поставить резистор 3.6КОм как на макетной.
С такими настройками:
AFE_config		
	VREF_en	1
	EXT_RES_iREF	0
	OFFSET_LOW	0
	NDIFF_OFF	1
	OPA1_en	1
	OPA2_en	1
	DAC1_en	1
	DAC2_en	1
	bit8_13	0
	OSC_BYP	1
	OSC_DIS	0
		
Mode_state		
	CONV1_en	1
	CONV2_en	1
	Sample_src	3
	SPI_CRC_en	0
	Mode	0
		
C1Cntrl		
	Ex_recovery_en	0
	Ex_source	0
	DC_carrier	0
	Ex_on	1
	Ex_amp	1
	Sensor_mode	3
	LBW	14
	DC_correction	1
		
C2Cntrl		
	Ex_recovery_en	0
	Ex_source	2
	DC_carrier	0
	Ex_on	0
	Ex_amp	1
	Sensor_mode	3
	LBW	14
	DC_correction	1
		
C1ResCntrl		
	Enc_en	0
	Vel_resolution	3
	Coord_hist	1
	SPI_ext_en	0
	Dir_out_en	0
	Coord_resolution	2
		
C2ResCntrl		
	Enc_en	0
	Vel_resolution	3
	Coord_hist	1
	SPI_ext_en	0
	Dir_out_en	0
	Coord_resolution	2
		
C1EXInc		
	C1EXInc	3940
C2EXInc		
	C2EXInc	3940
		
C1Mask		
	MSK_NLock	0
C2Mask		
	MSK_NLock	0
		
Mask		
	MSK_ECC_err	0
Ваши предложения. Всем заранее спасибо за помощь.


Вложения:
[ attachment ]
Предложения_ЛРДТ_1350.jpg [ 194.8 КБ | 4330 просмотров ]


Последний раз редактировалось urban81 2020-янв-23 16:58, всего редактировалось 2 раза.
Вернуться к началу
СообщениеДобавлено: 2020-янв-23 09:30 
Не в сети

Зарегистрирован: 2019-июл-31 08:38
Сообщения: 17
Организация: ПАО АНПП "ТЕМП-АВИА"
Здравствуйте. Есть предложения[ img ] и вопрос!
Предложения:
0. Сделать помеченную цепь, т.к. настройка каналов Ex_source: "1 – с входа EXI1 (преобразователь 1), с входа EXI2 (преобразователь 2)"
1. Поставить резистор 3.6КОм как на макетной.
2. Поставить резистор 3.6КОм как на макетной.
Вопрос при настройке Ex_source = 1 на 1 канале, принудительно должен аппаратно задействовать вход EXI2 и выставить Ex_source=1 для 2 канала? Всем заранее спасибо за помощь.


Вложения:
[ attachment ]
Предложения001_ЛРДТ_1350.jpg [ 195 КБ | 4282 просмотра ]
Вернуться к началу
СообщениеДобавлено: 2020-янв-31 12:56 
Не в сети

Зарегистрирован: 2019-июл-31 08:38
Сообщения: 17
Организация: ПАО АНПП "ТЕМП-АВИА"
Здравствуйте. Предыдущие предложения дали некоторый результат. Поступили следующие предложения и вопросы.
См. рисунок [ img ].Меандр – 46 Выход опорного напряжения, датчик 2 при Ex_source!= 1(Ex_source= 2) , тк 19 Вход опорного напряжения, датчик 1.
при Ex_source== 1,
1. Синус - 12 Вход АЦП датчика 1 sin
2. Синус - 53 Вход АЦП датчика 2 sin
Сигналы 1, 2 не в диапазоне измерения, выходят за границы меандра, при максимальных отклонениях датчика.
Сигналы 1, 2 не " сливается в линию".

0. Вопрос: Сигналы 1 и 2 должны быть в пределах верхней и нижней границы это меандра (вывод 46 тк 19 - вход опорного напряжения и для второго канала Ex_source = 2) для правильной работы АЦП?

1. Вопрос: Сигналы 1 и 2 после компаратора должны быть пик в пик " овал сливается в линию" или нужна коррекция фаз ?
Предложения:
0.Предложение на аппаратном уровне добиться вогнать сигнылы с датчика в диапазон измерения от 0 до 65535, те подобрать резисторы R19 и R52 (Рис. 1), так чтобы Синус - 12 Вход АЦП датчика 1 sin(IOSA1) и Синус - 53 Вход АЦП датчика 2 sin(IOSA2) были смещены относительно нуля меандра, входа опорного напряжения( датчик 1 при Ex_source== 1,) на 1,25В (рис.0.)
Вложение:
[ attachment ]
Выводы_46_12_53.jpg [ 33.85 КБ | 4068 просмотров ]
1.Предложение на аппаратном уровне добиться вогнать сигнылы с датчика в диапазон измерения от 0 до 65535, те подобрать резисторы R19 и R52, 0.,1.,2.,3. (Рис. 1), так чтобы Синус - 12 Вход АЦП датчика 1 sin(IOSA1) и Синус - 53 Вход АЦП датчика 2 sin(IOSA2) были смещены относительно нуля меандра, входа опорного напряжения( датчик 1 при Ex_source== 1,) на 1,25В (рис.0.)
Всем заранее спасибо за помощь и советы.


Вложения:
[ attachment ]
Предложения002_ЛРДТ_1350.jpg [ 196.95 КБ | 4068 просмотров ]
Вернуться к началу
СообщениеДобавлено: 2020-янв-31 15:04 
Не в сети

Зарегистрирован: 2019-июл-31 08:38
Сообщения: 17
Организация: ПАО АНПП "ТЕМП-АВИА"
Вот графики сигналов 12 и 53 относительно средней точки 63:[ img ]


Вложения:
[ attachment ]
Выводы_63_12_53.jpg [ 39.84 КБ | 4046 просмотров ]
[ attachment ]
Выводы0_63_12_53.jpg [ 51.16 КБ | 4046 просмотров ]
Вернуться к началу
СообщениеДобавлено: 2020-фев-27 15:02 
Не в сети

Зарегистрирован: 2020-фев-26 17:14
Сообщения: 1
Организация: Частное лицо
leshkasagitov писал(а): *
Здравствуйте, а не подскажите где можно найти прошивку для МК который стоит на отладочной плате, просто насколько я понял, отладочная плата поставляется уже с вшитой на МК программой
Тоже интересует возможность получения исходников прошивки МК 1986ВЕ92 на отладочной плате v 0.3, если конечно это возможно.


Вернуться к началу
СообщениеДобавлено: 2020-фев-28 08:55 
Не в сети

Зарегистрирован: 2017-май-31 15:10
Сообщения: 68
Организация: АО "ПКК Миландр"
Откуда: АО "ПКК Миландр"
Albert писал(а): *
leshkasagitov писал(а): *
Здравствуйте, а не подскажите где можно найти прошивку для МК который стоит на отладочной плате, просто насколько я понял, отладочная плата поставляется уже с вшитой на МК программой
Тоже интересует возможность получения исходников прошивки МК 1986ВЕ92 на отладочной плате v 0.3, если конечно это возможно.
Здравствуйте! Данный вопрос уже поднимался в этой ветке форума:
https://forum.milandr.ru/viewtopic.php?p=22243#p22243
Вам нужно написать запрос на support@milandr.ru. (в письме, укажите, пожалуйста, организацию и контактные данные).

Исходники предоставляются в формате "as is", то есть, без дальнейшей поддержки.

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 303 сообщения ]  На страницу « 117 18 19 20 21 »

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: 

Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB