Миландр

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

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




Начать новую тему Ответить на тему  [ Сообщений: 587 ]  На страницу Пред.  1 ... 36, 37, 38, 39, 40  След.
Автор Сообщение
 Заголовок сообщения: Re: Манчестер на 1986ВЕ1
СообщениеДобавлено: 2018-июл-20 11:55 
Не в сети

Зарегистрирован: 2016-июн-21 21:35
Сообщения: 33
Vasiliy писал(а):
В спецификации же написано "ModeData - содержит принятое или передаваемое слово данных в команде управления". И на структурных рисунках показано что регистр двупортовый. По записи и чтению данные разные.

Разобрался. Дело было в железе, нужно было включить инверсию сигнала


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Манчестер на 1986ВЕ1
СообщениеДобавлено: 2019-фев-27 20:45 
Не в сети

Зарегистрирован: 2018-дек-29 09:16
Сообщения: 1
Здравствуйте! Нужна помощь! Если уже обсуждалось, дайте, пожалуйста, ссылку!
На 4-ой ревизии процессора наблюдается ситуация, что обработчик прерывания:
Код:
void MIL_STD_1553B1_Handler(void)
{
  STATUS_WORD = MIL_STD_15531->STATUS;
  COMMAND_WORD = MIL_STD_15531->CommandWord1;
  if((STATUS_WORD&ERR) == ERR)      
  {
    printf ("Error");
    MIL_STD_15531->CONTROL |= 0x1;//сброс ошибки путём сброса контроллера
    MIL_STD_15531->CONTROL &= 0xFFFFFFFE;//разрешение работы контроллера
  }
  else
  {
     if((STATUS_WORD&VALMESS)==VALMESS) printf ("Valmess");
  }
  MIL_STD_15531->CONTROL |= RERR;//ошибки могут быть сброшены только вручную   
}

при начальной настройке контроллера ГОСТ 52070 следующим образом
Код:
MIL_STD_15531->CONTROL = 0;     // MIL-STD-1553 work mode
MIL_STD_15531->CONTROL = 0x0038|(9 << 14)|(MIL1553_ADDR << 6);
MIL_STD_15531->INTEN       = 0x0000000E;// разрешены VALMESSIE, RFLAGNIE и ERRIE

при получении верного командного слова на выдачу информации в КШ и ошибочно идущего непосредственно за ним КС или СД или хотябы их синхросигналов не выводит ничего в СОМ-порт, не заходит больше в прерывание и не выдаёт больше ОС и СД.
КС и ошибочный синхросигнал генерируются с помощью платы ф.Элкус в режиме тестера. Задаётся посылка в ввиде "K[1C20]U" или "K[1C20]K" или "K[1C20]LL0HH", где К - синхросигнал КС, [1C20] - КС=0x1C20 без синхросигнала, U-синхросигнал СД, L-низкий уровень, H-высокий уровень, 0- бит 0(переход из низкого в высокий уровень)
При выводе значений регистров STATUS и ERROR через некоторое время выдаются значения 0x29 (активность по резервному каналу, ошибка и бездействие) и 0x1F (все возможные ошибки?)
Выглядит так, что в 4-ревизии в нашем эксперименте при установленном бите RFLAGN не генерируется прерывание по установке флага ERROR, наш обработчик не сбрасывает флаг ошибки и прерывания больше не приходят, контроллер не реагирует на КС.
Таже ситуация наблюдается при попытке отправить КС на приём в ОУ нескольких СД без СД.
На 3-ей ревизии таких сбоев не замечено.
Хотелось бы понять причины отказа контроллера МКИО в нашем случае и, если кому известны, другие варианты вызвать полное отсутствие обмена, кроме как сбить настройки!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Манчестер на 1986ВЕ1
СообщениеДобавлено: 2019-фев-28 13:48 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1322
Откуда: Тула
PArus52 писал(а):
...
Хотелось бы понять причины отказа контроллера МКИО в нашем случае и, если кому известны, другие варианты вызвать полное отсутствие обмена, кроме как сбить настройки!

Наблюдал аналогичное - 4-я ревизия, при формировании некорректной активности на шине контроллер ОУ зависал (нет никаких прерываний от него), кажется, до сброса через MR. Причины неизвестны.

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Манчестер на 1986ВЕ1
СообщениеДобавлено: 2019-апр-11 11:51 
Не в сети

Зарегистрирован: 2015-ноя-05 10:50
Сообщения: 21
Добрый день!
Посоветуйте как в режиме монитора организовать передачу принятых данных наружу для удобного анализа?
Пока думаю так. Разрешить прерывания RFLAGN, ERR, VALMESS.
По RFLAGN сохранять КС, СД КУ и ОС в кольце. По VALMESS считывать СД и давать команду на передачу буфера наружу.
По ERR передавать содержимое регистра ERROR и также самого кольца.

Другой вариант. Передачу принятых слов делать по прерыванию IDLE, ERR. Только не до конца понятно, когда именно
срабатывает IDLE. По завершению транзакции какого-либо формата сообщения или еще в паузах t1, t2?

Была еще идея сделать передачу по таймеру, учитывая время непрерывной передачи на шине (660 мкс).
Но, кажется, это самый неудобный вариант в плане дальнейшего анализа на приеме...

Буду признателен любым предложениям и замечаниям.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Манчестер на 1986ВЕ1
СообщениеДобавлено: 2019-апр-11 12:40 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1322
Откуда: Тула
Dots писал(а):
Посоветуйте как в режиме монитора организовать передачу принятых данных наружу для удобного анализа?

Это неизвестно. Нет исходных данных. Может по Ethernet, может по UART, может по параллельной шине...
Для начала нужно научиться мониторить шину.
Dots писал(а):
.... Передачу принятых слов делать по прерыванию IDLE, ERR. Только не до конца понятно, когда именносрабатывает IDLE.

Для монитора этого кажется достаточно, если не нужно фиксировать времянку каким-либо образом.
Времянку флагов МКПД уже обсуждали на форуме, в т.ч. совсем недавно, гуглите.
Реализацию для ОУ также можно поискать на форуме у vasili, её легко можно применить для МТ.
Если кратко, любая транзакция будет заканчиваться прерыванием IDLE, но некорректная транзакция сперва устанавливает ERR, а корректная - VALMESS.

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Манчестер на 1986ВЕ1
СообщениеДобавлено: 2019-апр-11 13:17 
Не в сети

Зарегистрирован: 2015-ноя-05 10:50
Сообщения: 21
Спасибо за пояснения!
Необходимую информацию нашел. В качестве внешнего интерфейса планируется использовать Ethernet.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Манчестер на 1986ВЕ1
СообщениеДобавлено: 2019-апр-15 15:55 
Не в сети

Зарегистрирован: 2015-ноя-05 10:50
Сообщения: 21
Уважаемые разработчики!
Скажите пожалуйста, в сообщениях формата 3 и 8 можно ли по первому срабатыванию RFLAGN
считывать содержимое CommandWord1 и CommandWord2?
Также хотелось бы уточнить, генерируются ли прерывания по RFLAGN при приеме СД в режиме монитора? Если я правильно понял из спецификации, то не должны, только для СД команд управления.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Манчестер на 1986ВЕ1
СообщениеДобавлено: 2019-апр-18 10:14 
Не в сети

Зарегистрирован: 2017-май-31 15:10
Сообщения: 39
Откуда: АО "ПКК Миландр"
Dots писал(а):
Уважаемые разработчики!
Скажите пожалуйста, в сообщениях формата 3 и 8 можно ли по первому срабатыванию RFLAGN
считывать содержимое CommandWord1 и CommandWord2?
Также хотелось бы уточнить, генерируются ли прерывания по RFLAGN при приеме СД в режиме монитора? Если я правильно понял из спецификации, то не должны, только для СД команд управления.

Здравствуйте!
Да, можно. В форматах, где предполагается транзакция ОУ-ОУ командное слово, формируемое КШ, для принимающего ОУ задается в CommandWord1, а для передающего ОУ в CommandWord2. Соответственно, принимающий ОУ должен считывать содержимое из CommandWord1, передающий ОУ из CommandWord2.
Вы правильно поняли - не должны. События, для генерации прерываний по RFLAGN следующие:
В режиме КШ если получено достоверное ответное слово (ОС).
В режиме ОУ и Монитор получено достоверное командное слово (КС), ответное слово (ОС), или слово данных (СД) в команде управления.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Манчестер на 1986ВЕ1
СообщениеДобавлено: 2019-апр-18 10:34 
Не в сети

Зарегистрирован: 2010-сен-21 12:57
Сообщения: 701
Откуда: г. Санкт-Петербург
Dots писал(а):
Уважаемые разработчики!
Скажите пожалуйста, в сообщениях формата 3 и 8 можно ли по первому срабатыванию RFLAGN
считывать содержимое CommandWord1 и CommandWord2?...

Для форматов 3 и 8:
Для принимающего ОУ по первому срабатыванию RFLAGN достоверно только CommandWord1.
CommandWord2 будет достоверно по второму срабатыванию RFLAGN.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2019-июл-03 22:03 
Не в сети

Зарегистрирован: 2011-ноя-22 21:39
Сообщения: 47
Откуда: Тула, КБП
А как сбросить буфер принимаемых данных?
При старте пытаюсь обнулить записью 1 в MR регистра CONTROL, но в буфере по прежнему мусор. Это мне сильно мешает.

_________________
 ‌   ‌  __________
___/_#_(О)_**_\____
[==]\________/[==]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2019-июл-05 12:23 
Не в сети

Зарегистрирован: 2017-май-31 15:10
Сообщения: 39
Откуда: АО "ПКК Миландр"
paskal писал(а):
А как сбросить буфер принимаемых данных?
При старте пытаюсь обнулить записью 1 в MR регистра CONTROL, но в буфере по прежнему мусор. Это мне сильно мешает.

Здравствуйте!
Буфер очистить нельзя. Считываете из него то количество слов данных (определяется КС), которое было принято.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2019-июл-06 11:37 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1322
Откуда: Тула
paskal писал(а):
А как сбросить буфер принимаемых данных?
При старте пытаюсь обнулить записью 1 в MR регистра CONTROL, но в буфере по прежнему мусор. Это мне сильно мешает.

Есть подозрение, что вы ступили на скользкую дорожку. C МКИО ПО должно работать как с событийно-определяемым каналом (была ли транзакция и чем закончилась), а не data-definition behaviour.

_________________
сочувствующий…


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

Зарегистрирован: 2011-ноя-22 21:39
Сообщения: 47
Откуда: Тула, КБП
prostoRoman писал(а):
C МКИО ПО должно работать как с событийно-определяемым каналом (была ли транзакция и чем закончилась), а не data-definition behaviour.

Не всегда. Всё зависит от реализации. Поведенческий тип работы мне фактически задали в ТЗ. У меня устройство простой переходник от MILSTD к RS485. Режим ОУ и без резервирования. Идёт банальное перебрасывание данных. С событиями при заданном протоколе я ничего не могу делать. Протокол менять нельзя.

А невозможность очистки мусора из канала всё таки считаю недостаток.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Манчестер на 1986ВЕ1
СообщениеДобавлено: 2019-июл-12 22:17 
Не в сети

Зарегистрирован: 2011-ноя-22 21:39
Сообщения: 47
Откуда: Тула, КБП
Ещё один недостаток обнаружился. Вот читаю я данные по прерыванию. Чтобы данные поменялись надо послать две посылки. Т.е. данные считываются не от последней посылки, а от предыдущей. Но если вставить достаточно длинную паузу, данные читаются сразу. Получается что прерывание возникает не после прихода данных, а раньше.
В эррате такой информации не нашел. Микроконтроллер 2018 года.

_________________
 ‌   ‌  __________
___/_#_(О)_**_\____
[==]\________/[==]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Манчестер на 1986ВЕ1
СообщениеДобавлено: 2019-июл-13 10:27 
Не в сети

Зарегистрирован: 2018-янв-05 23:41
Сообщения: 72
По какому событию прерывание?
Данные гарантированно обновятся при взведении флагов IDLE и VALMESS. Раньше читать их нет смысла.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 587 ]  На страницу Пред.  1 ... 36, 37, 38, 39, 40  След.

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


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

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


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

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