Миландр
https://forum.milandr.ru/

Микросхема преобразователь угол-код для СКВТ
https://forum.milandr.ru/viewtopic.php?f=57&t=2431
Страница 18 из 21

Автор:  Storoj [ 2019-июл-23 16:23 ]
Заголовок сообщения:  Re: Микросхема преобразователь угол-код для СКВТ

В режиме MODE= 010 или 011, возможно как нибудь установить разными сигналы каналов EXI1 EXI2 ?
Ex_source=1 на обоих преобразователях.

Автор:  Storoj [ 2019-июл-24 15:24 ]
Заголовок сообщения:  Re: Микросхема преобразователь угол-код для СКВТ

И еще такой вопрос,
влияют ли на шум(дребезг) сигнала восстановленной частоты такие настройки как LBW и Coord_resolution ?

Автор:  Alex1 [ 2019-авг-05 12:41 ]
Заголовок сообщения:  Re: Микросхема преобразователь угол-код для СКВТ

Ivan44 писал(а):
Уважаемые форумчане, если я второй канал не буду использовать я его могу не подключать схематически(40, 51, 54, 55, 56, 64 выводы) или лучше подключить ??? Разводка будет проще и так места мало)))

Свободные выводы на землю посадить для экономии потребления ?
Ответил в личку, продублирую тут для всех:

Неиспользуемый операционник следует соединить в режиме повторителя следующим образом:
1. Выход операционника соединить с отрицательным входом
2. Положительный вход соединить с выходом опорного напряжения 1.25В

Неиспользуемые цифровые входы лучше подключить к напряжению логической единицы или нуля через резистор.

Автор:  Alex1 [ 2019-авг-05 12:47 ]
Заголовок сообщения:  Re: Микросхема преобразователь угол-код для СКВТ

Storoj писал(а):
В режиме MODE= 010 или 011, возможно как нибудь установить разными сигналы каналов EXI1 EXI2 ?
Ex_source=1 на обоих преобразователях.
К сожалению нельзя.
Storoj писал(а):
Влияют ли на шум(дребезг) сигнала восстановленной частоты такие настройки как LBW и Coord_resolution ?
Нет - никак не влияют

Автор:  urban81 [ 2019-сен-04 09:26 ]
Заголовок сообщения:  Re: Микросхема преобразователь угол-код для СКВТ

Всем здравствуйте. Использую 1310HM025. Cоставил тествое ПО для неё и хочу залить в неё. Для начала в режиме чтения записи отправляю регистр с адресом 0х00 и с наполнением, но в ответ получаю маленько не то что ожидаю. Посылка :
{32769, 35082}
вот наполнение:
PLL_N = 10;
PLL_Q = 2;
ADC_cycle = 17;
А получаю:{34826}
вот ответ:
PLL_N = 10;
PLL_Q = 0;
ADC_cycle = 17;
Почему так? PLL_Q не записалась! Подскажите пожалуйста почему так? Всем заранее спасибо!

Автор:  Alex1 [ 2019-сен-04 15:00 ]
Заголовок сообщения:  Re: Микросхема преобразователь угол-код для СКВТ

Здравствуйте.
Читается значение по умолчанию, т.е. запись не прошла.
Проверьте питание/резет/наличие частоты на кварце, а также соответствует ли временная диаграмма SPI даташиту.
Транзакции {32769, 35082} корректны, у меня записывается PLL_Q=2.

Автор:  urban81 [ 2019-сен-05 16:42 ]
Заголовок сообщения:  Re: Микросхема преобразователь угол-код для СКВТ

Всем здравствуйте. Использую 1310HM025. Cоставил тествое ПО, хочу залить в неё. Для начала в режиме чтения записи отправлял регистр с адресом 0х00 и с наполнением и получал ожидаемый ответ. Отправляю теперь всё тестовое ПО({32769, 35082, 32785, 16497, 32801, 20224, 193, 16910, 705, 16910, 209, 770, 33489, 770, 241, 4194, 753, 4194})- ожидаемые ответы приходят но вперемешку с нулями. Почему так? Что является признаком, что все залилось правильно? Может правильные ответы? Всем заранее спасибо!

Автор:  Alex1 [ 2019-сен-05 18:26 ]
Заголовок сообщения:  Re: Микросхема преобразователь угол-код для СКВТ

Чтение записанных регистров и получение при этом тех же значений что и записывались.
Но тут, скорее всего, SPI сломан - некорректная времянка.

Автор:  urban81 [ 2019-сен-10 16:08 ]
Заголовок сообщения:  Re: Микросхема преобразователь угол-код для СКВТ

Всем здравствуйте.
Alex1 писал(а):
Чтение записанных регистров и получение при этом тех же значений что и записывались.
Но тут, скорее всего, SPI сломан - некорректная времянка.
Вот организовал цикл с функцией, кот выполняется раз в 500 микро сек. Снял временной график:
желтый - FCLK, зеленый - SDI, голубой - SSTR..
Вот функция:
void updateAngleCode0(){
	uint16_t count = 0;
	uint16_t data = 0;
	uint16_t dataArr[2];
	while (not spi::isInputEmpty(spi::Spi2)){
		spi::pop(spi::Spi2, data);
		dataArr[count] = data;
		if (++count > 1)
			break;
	}
        angleCode0.setData(dataArr, count);
        core::disableInterrupts();
       for (int i = 0; i < 2; i ++)
	{
		dataArr [i] = *angleCode0.TxBuffer;
		spi::push(spi::Spi2, dataArr [i]);
		angleCode0.TxBuffer++;

	}
	core::enableInterrupts();
}
Вижу, что не соответствует графику режима чтения записи... В какой части чинить то SPI? Всем заранее спасибо за помощь.

Вложения:
Комментарий к файлу: временной график:
желтый - FCLK, зеленый - SDI, голубой - SSTR.
[ attachment ]
tek00000.png [ 30.16 КБ | 3379 просмотров ]

Автор:  Yaroslav [ 2019-сен-11 15:43 ]
Заголовок сообщения:  Получение скорости из 1310нм025

Добрый день! Подскажите пожалуйста, какие есть тонкости в настройке микросхемы 1310нм025 rev.1 для того, чтобы получать корректные значения скорости?

Автор:  Alex1 [ 2019-сен-16 15:58 ]
Заголовок сообщения:  Re: Микросхема преобразователь угол-код для СКВТ

urban81 писал(а):
....
В какой части чинить то SPI? Всем заранее спасибо за помощь.
Не корректно настроен SPI в микро контроллере, может кто по микроконтроллерам подскажет/поделится настройкой.

Автор:  Maximka [ 2019-сен-17 13:33 ]
Заголовок сообщения:  Re: Микросхема преобразователь угол-код для СКВТ

А можно сейчас приобрести rev.3? Если нет, то когда планируется?

Автор:  Artem1 [ 2019-сен-18 08:35 ]
Заголовок сообщения:  Re: Микросхема преобразователь угол-код для СКВТ

Maximka писал(а):
А можно сейчас приобрести rev.3? Если нет, то когда планируется?
Здравствуйте! С этими вопросами обратитесь, пожалуйста, на почту отдела маркетинга ic@milandr.ru

Автор:  urban81 [ 2019-сен-20 13:34 ]
Заголовок сообщения:  Re: Микросхема преобразователь угол-код для СКВТ

Alex1 писал(а):
urban81 писал(а):
....
В какой части чинить то SPI? Всем заранее спасибо за помощь.
Не корректно настроен SPI в микро контроллере, может кто по микроконтроллерам подскажет/поделится настройкой.
Всем здравствуйте. В итоге заработала запись-чтение и чтение в режиме 2 на тест плате (К1921ВК01Т_Кортекс + 1310НМ025 + 1310НМ026...). Вот циклограмма:
Вот функции:
bool ReadWriteRegistr ( uint16_t * Data )
{
	uint16_t data_rx = 0;
	if(!flag_rw)
	{

		uint16_t address =  *Data;
		uint16_t registr =  *++Data;

		core::disableInterrupts();

		if (!flag_address_rw)
		{
			spi::push(spi::Spi0, address );

			core::waitTimer(2, ( 5 * core::TIME_1mSec ) );

			flag_address_rw = true;
			flag_registr_rw = false;
		}
		else
		if (!flag_registr_rw)
		{
			spi::push(spi::Spi0, registr );

			core::waitTimer(2, ( 5 * core::TIME_1mSec ) );

			flag_address_rw = false;
			flag_registr_rw = true;

		}

		core::enableInterrupts();

		while (not spi::isInputEmpty(spi::Spi0))
		{
			spi::pop(spi::Spi0, data_rx);

			if (data_rx == registr)
			{
				flag_address_rw = false;
				flag_registr_rw = false;
				flag_rw = true;
				//spi::pop(spi::Spi0, data_rx);
				//if (data_rx == registr)
				//	return true;
			}

		}
		return false;
	}
	else if (flag_rw)
	{
		spi::pop(spi::Spi0, data_rx);
		flag_address_rw = false;
		flag_registr_rw = false;
		flag_rw = false;
		return true;
	}
}
void ReadRegistrReg2 ( uint16_t * Data )
{
	uint16_t address =  *Data;

	uint16_t registr =  0;

	core::disableInterrupts();

	spi::push(spi::Spi0, address);
	core::waitTimer(2, ( 1 * core::TIME_1mSec ) );

	core::enableInterrupts();

	while (not spi::isInputEmpty(spi::Spi0))
	{
		spi::pop(spi::Spi0, registr);
	}
}
void Get_Registrs_R2()
{

	//ReadRegistrReg2 ( (uint16_t*) &angleCode.Config_R2.Reg.pLL_config_0x00);
	//ReadRegistrReg2 ( (uint16_t*) &angleCode.Config_R2.Reg.aFE_config_0x02);
	//ReadRegistrReg2 ( (uint16_t*) &angleCode.Config_R2.Reg.mode_stat_0x04);
	//ReadRegistrReg2 ( (uint16_t*) &angleCode.Config_R2.Reg.c1Cntrl_0x18);
	//ReadRegistrReg2 ( (uint16_t*) &angleCode.Config_R2.Reg.c2Cntrl_0x58);
	//ReadRegistrReg2 ( (uint16_t*) &angleCode.Config_R2.Reg.c1ResCntrl_0x1A);
	//ReadRegistrReg2 ( (uint16_t*) &angleCode.Config_R2.Reg.c2ResCntrl_0x5A);
	//ReadRegistrReg2 ( (uint16_t*) &angleCode.Config_R2.Reg.c1EXInc_0x1E);
	ReadRegistrReg2 ( (uint16_t*) &angleCode.Config_R2.Reg.c1Coord_0x10);
	//ReadRegistrReg2 ( (uint16_t*) &angleCode.Config_R2.Reg.c1Stat_0x14);
}

void Set_Registrs_RW()
{
	count = 0;

	while	(!ReadWriteRegistr ( (uint16_t*) &angleCode.pLL_config_0x00))	count++;
	while	(!ReadWriteRegistr ( (uint16_t*) &angleCode.aFE_config_0x02))	count++;
	while	(!ReadWriteRegistr ( (uint16_t*) &angleCode.c1Cntrl_0x18))		count++;
	//while	(!ReadWriteRegistr ( (uint16_t*) &angleCode.c2Cntrl_0x58))		count++;
	while	(!ReadWriteRegistr ( (uint16_t*) &angleCode.c1ResCntrl_0x1A))	count++;
	//while	(!ReadWriteRegistr ( (uint16_t*) &angleCode.c2ResCntrl_0x5A))	count++;
	while	(!ReadWriteRegistr ( (uint16_t*) &angleCode.c1EXInc_0x1E))		count++;
	//while	(!ReadWriteRegistr ( (uint16_t*) &angleCode.c2EXInc_0x5E))		count++;
	while	(!ReadWriteRegistr ( (uint16_t*) &angleCode.c1Mask_0x16))		count++;
	//while	(!ReadWriteRegistr ( (uint16_t*) &angleCode.c2Mask_0x56))		count++;
	while	(!ReadWriteRegistr ( (uint16_t*) &angleCode.mask_0x06))		count++;
	for (int i = 0; i < 4; i ++)
	{
		ReadWriteRegistr ( (uint16_t*) &angleCode.mode_stat_0x04);
		count++;
	}

}
Так же к плате подключен СКВТ ИС-17. Сейчас читаю регистра 0х10. С какого регистра получить угол? Всем заранее спасибо.

Вложения:
[ attachment ]
tek00003.png [ 28.93 КБ | 3200 просмотров ]

Автор:  Alex1 [ 2019-сен-20 14:52 ]
Заголовок сообщения:  Re: Микросхема преобразователь угол-код для СКВТ

Добрый день,

Угол считывается как раз с 0x10. Но нужно сначала немного понастраивать. Как минимум записать в регистры 0x18, 0x1A, 0x1E.

Страница 18 из 21 Часовой пояс: UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/