Миландр

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

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 181 ]  На страницу Пред.  1 ... 8, 9, 10, 11, 12, 13  След.
Автор Сообщение
СообщениеДобавлено: 2018-мар-26 12:36 
Не в сети

Зарегистрирован: 2015-фев-24 19:17
Сообщения: 59
Откуда: АО "ПКК Миландр"
Ivan44 писал(а):
Микросхема вроде заработала, значения координаты получилось считать. Показания понравились.... Только как избавится от переполнения буфера ? через отчетов 100 000 примерно перестает давать данные... Есть способ перегрузить через nReset и переписать регистры... Есть проще и быстрее способ ?


Вероятно, имеется ввиду переполнение буфера в блоке SPI микроконтроллера, т.к. в 1310НМ025 буфера нет.
Скорее всего, не успеваете вычитывать данные из него. Я бы рекомендовал понизить скорость чтения по SPI (частоту SPI).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-мар-31 12:57 
Не в сети

Зарегистрирован: 2018-мар-08 11:37
Сообщения: 10
При снятии сигнала с ЦАП заметил, что синус ступенчатый. Сильно ли влияет ступенчатость на измерения преобразователя? Можно ли оставить ступенчатость или ее рекоминдуется сгладить фильтром?

И еще вопрос по поводу ФНЧ на обмотку возбуждения, какого порядка лучше фильтр ставить 1 или 2. В даташите рекоминдуется активный фильтр на частоту среза 40 кГц первого порядка. частота сигнала будет в пределах от 400 до 2000 Гц. Если фильтр даст фазовый сдвиг, сдвиг как я понял можно будет программно востановить.
Как я понял, усилитель на Вашей отладочной плате построен очень грамотно и не дает фазового сдвига.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-апр-02 11:01 
Не в сети

Зарегистрирован: 2015-фев-24 19:17
Сообщения: 59
Откуда: АО "ПКК Миландр"
Лучше сгладить фильтром, теоретически может давать дополнительную погрешность, хотя нам и не удалось ее увидеть в реальности. В любом случае, после прохождения через датчик, ступенек уже не будет (скорее всего). В новой ревизии сигнал будет намного более сглаженным.

Фазовый сдвиг на фильтре или датчике не проблема, и можно об этом не думать, если включен 13й бит в регистре C_Cntrl. Если по каким то причинам отключен, то будет влиять и значительно. Также фазовый сдвиг зависит от температуры. Если сигнал не больше 2кГц то можно поставить срез значительно ниже 40кГц.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-апр-02 19:07 
Не в сети

Зарегистрирован: 2018-мар-08 11:37
Сообщения: 10
Какие требования к усилителю: шум, нелинейные искажения , какой предел смещения входного напряжении?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-апр-03 14:27 
Не в сети

Зарегистрирован: 2015-фев-24 19:17
Сообщения: 59
Откуда: АО "ПКК Миландр"
Ivan44 писал(а):
Какие требования к усилителю: шум, нелинейные искажения , какой предел смещения входного напряжении?


Если речь про усилитель сигнала на датчик, то со стороны микросхемы никаких нет, все требования только со стороны датчика (в его документации).
Нелинейность в районе пересечения нуля может давать некоторую доп. ошибку. Шум, скорее всего, не важен.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-апр-25 19:26 
Не в сети

Зарегистрирован: 2017-ноя-02 12:37
Сообщения: 18
У микросхемы ревизии 1738, периодически, при включении возникает проблема с каналом C2.
Оба канала настроены в режиме СКВТ. ЦАП канала С1 формирует опорный сигнал. Для C1 включен режим восстановления опорной частоты. Канал С2 работает как ведомый, его опора - Ex_ref канала C1. В нескольких попытках включения из десяти канал С2 не запускается, содержимое регистра C2Stat при этом сначала равняется 0x8320, затем переходит в 0x8120. На входы C1 и C2 поступает один и тот же (!) сигнал. И С1 работает корректно всегда. Проблема решается только сбросом или выключением питания. Так же в регистре ModeStat постоянно установлен бит ECC_err.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-апр-26 10:58 
Не в сети

Зарегистрирован: 2015-фев-24 19:17
Сообщения: 59
Откуда: АО "ПКК Миландр"
Lab221 писал(а):
У микросхемы ревизии 1738, периодически, при включении возникает проблема с каналом C2.
Оба канала настроены в режиме СКВТ. ЦАП канала С1 формирует опорный сигнал. Для C1 включен режим восстановления опорной частоты. Канал С2 работает как ведомый, его опора - Ex_ref канала C1. В нескольких попытках включения из десяти канал С2 не запускается, содержимое регистра C2Stat при этом сначала равняется 0x8320, затем переходит в 0x8120. На входы C1 и C2 поступает один и тот же (!) сигнал. И С1 работает корректно всегда. Проблема решается только сбросом или выключением питания. Так же в регистре ModeStat постоянно установлен бит ECC_err.


Попробуйте сначала настроить каналы, а потом их включить, битами CONVx_en. Если не поможет, то пришлите пожалуйста регистры.
ECC_err, скорее всего, нужно сбросить после настройки PLL. После этого не должен больше устанавливаться.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-апр-27 09:53 
Не в сети

Зарегистрирован: 2017-ноя-02 12:37
Сообщения: 18
Alex1 писал(а):
Lab221 писал(а):
У микросхемы ревизии 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 << 8) | (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 мс после подачи питания. Этого времени достаточно?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-апр-27 13:39 
Не в сети

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

В программе смущает возможная запись C1KampC, C2KampC откуда то из памяти, надеюсь они проинициализированы и одинаковые.
Также, проверьте осциллографом сигналы после усилителей - выводы IOCA1, IOCA2 или IOSA1, IOSA2 - совпадают ли.

50мс должно быть более чем нормально, но это сильно зависит от конденсаторов в питании. Можно проконтролировать когда появляется напряжение 1,8В на VDD_CORE.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-апр-27 13:56 
Не в сети

Зарегистрирован: 2017-ноя-02 12:37
Сообщения: 18
Alex1 писал(а):
Программа у меня работает в симуляторе без проблем. Попробуем повторить еще у себя на отладочной плате.

В программе смущает возможная запись C1KampC, C2KampC откуда то из памяти, надеюсь они проинициализированы и одинаковые.
Также, проверьте осциллографом сигналы после усилителей - выводы IOCA1, IOCA2 или IOSA1, IOSA2 - совпадают ли.

50мс должно быть более чем нормально, но это сильно зависит от конденсаторов в питании. Можно проконтролировать когда появляется напряжение 1,8В на VDD_CORE.


С коэффициентами все в порядке. Они действительно берутся из памяти. Сигналы на выходах усилителей тоже в норме, но они у нас не должны совпадать для C1 и С2. У них общее возбуждение, но разные углы. Напряжения питания 1,8В, 2,5В, 1,25В тоже успевают установиться.
Есть вопрос о необходимости записи бита ECC_err каждый раз при записи в регистр MODE_STAT. Это действительно нужно делать. Какова логика формирования этого бита?
Мы заметили, что он устанавливается при включении очень часто и это является предвестником повышенной погрешности определения координаты. Помогает лишь сброс при включенном питании и реинициализация микросхемы.
У нас довольно жесткое требование по времени готовности устройства - 250 мс. За это время нужно удостовериться, что все параметры микросхемы в норме.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-апр-28 11:12 
Не в сети

Зарегистрирован: 2015-фев-24 19:17
Сообщения: 59
Откуда: АО "ПКК Миландр"
Lab221 писал(а):
Есть вопрос о необходимости записи бита ECC_err каждый раз при записи в регистр MODE_STAT. Это действительно нужно делать. Какова логика формирования этого бита?
Мы заметили, что он устанавливается при включении очень часто и это является предвестником повышенной погрешности определения координаты. Помогает лишь сброс при включенном питании и реинициализация микросхемы.

ECC_err выставляется, если контрольная сумма в каком либо из регистров настроек не совпала. Новая контрольная сумма считается при записи нового значения в регистры. Бит ECC_err держится в 1 до сброса его пользователем при записи в MODE_STAT.
Даже если контрольные суммы в данный момент совпадают, но в прошлом не совпадали - бит может быть выставлен.

В этой ревизии бит часто выставляться при старте микросхемы. Предположительно, это происходит из за некорректного старта PLL. В следующей ревизи (сейчас в производстве) эта проблема должна уйти.

Если ECC_err выставляется после сброса пользователем повторно это свидетельствует о каких то серьезных сбоях в микросхеме - плохое питание, плохой клок, помехи, брак микросхемы или что то сгорело. Можно еще проконтроллировать диаграмму SPI, нет ли там каких глитчей.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-май-15 19:19 
Не в сети

Зарегистрирован: 2018-янв-09 18:51
Сообщения: 2
Здравствуйте,
У нас на предприятии имеется отладочный комплект и несколько экземпляров этой микросхемы. Возникло несколько вопросов:
1) Возможен ли режим работы микросхемы с двух отчетным трансформатором, то есть с двумя обмотками, точной и грубой.
2) Если да, то итоговый угол будет выдавать микросхема либо нужно вычислять другим способом.
3) Возможно ли получить исходный код программы микроконтроллера (1986ВЕ92), расположенной на отладочной плате, либо часть кода, отвечающий за связь МК с микросхемой 1310НМ025?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-май-16 11:07 
Не в сети

Зарегистрирован: 2017-фев-14 11:21
Сообщения: 69
Первые 2 вопроса я оставлю Alex1.
По поводу 3го, напишите, пожалуйста, на support@milandr.ru. (в письме, укажите, пожалуйста, организацию и контактные данные)
Программу предоставить можем, но "как есть", без дальнейшей поддержки.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-май-16 13:25 
Не в сети

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

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

Вроде бы, существует несколько теорий, как нужно правильно соединять отсчеты, с учетом того, как обмотки расположены друг относительно друга и какие возникают погрешности их позиционирования. Честно говоря, у меня нет опыта с реальными двухотсчетными датчиками, могу только высказать тут свое мнение. На мой взгляд, задача состоит в том, что бы по соотношению точного и грубого отсчета найти наиболее вероятный грубый, и потом уже соединять их показания вместе. В лоб это можно сделать так:
Код:
const M=7;   // количество полюсов обмотки ГО (грубый отсчет)
const N=55; // количество полюсов обмотки ТО (точный отсчет)

double get_angle (unsigned short GO, unsigned short TO) //GO и TO - 16 битные значения угла
{         
   unsigned short intGO    = 0;
   unsigned long  reminder = 65535;           
   int  i;
   
   for(i=0; i<M; i++)                            //перебираем полюсы грубого отсчета
   {
          double         GO_i    = (i*65536 + GO)/M;  //рассчитываем ГО для полюса i   
          unsigned short exp_TO  = GO_i*N;            //рассчитываем TO по ГО для полюса i
       
          if(abs(TO-exp_TO)<reminder)                   //находим ближайший ТО к ГО
          {
                reminder = abs(TO-exp_TO);              //запоминаем минимальное на текущем шаге алгоритма расстояние
                intGO    = GO_i;                                //запоминаем полюс   
          }   
   }
   return (360*(double)intGO/65536) + (double)TO*360/(N*65536); //значение угла в градусах
}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-май-16 19:25 
Не в сети

Зарегистрирован: 2018-янв-09 18:51
Сообщения: 2
Всем спасибо за помощь, будем пробовать…


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 181 ]  На страницу Пред.  1 ... 8, 9, 10, 11, 12, 13  След.

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB