Миландр

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

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




Начать новую тему Ответить на тему  [ Сообщений: 51 ]  На страницу 1, 2, 3, 4 Все  След.
Автор Сообщение
 Заголовок сообщения: Проблема с модулем МКИО
СообщениеДобавлено: 2016-май-24 19:15 
Не в сети

Зарегистрирован: 2016-апр-27 12:14
Сообщения: 28
Добрый день. Пытаюсь завести манчестер на отладочной плате. Взял из примеров milstd_modules.с
Проект собрался, на выходных линиях МК видно, что контроллер шины пытается что-то послать. При этом на выходе приемопередатчиков 5559ИН13У2 - тишина. Сами приемопередатчики греются достаточно сильно (через 10 сек. после запуска прошивки прикоснуться невозможно). Греются все 4 (каналы A,B контроллеров MIL0,MIL1).
Сам МК тоже греется, но не так сильно.
Приемопередатчики контроллера MIL0 не греются если закомментировать строки, отвечающие за сигналы ENA и ENB.
Код:
PORT_InitStructure.PORT_Pin = (PORT_Pin_25 | PORT_Pin_26 | PORT_Pin_27 | PORT_Pin_28 | PORT_Pin_29);
   PORT_InitStructure.PORT_SFUNC  = PORT_SFUNC_12;
  PORT_InitStructure.PORT_SANALOG  = PORT_SANALOG_DIGITAL;
   PORT_InitStructure.PORT_SPWR = PORT_SPWR_10;
  PORT_Init(PORTA, &PORT_InitStructure);

   PORT_InitStructure.PORT_Pin   = (PORT_Pin_22);
   PORT_InitStructure.PORT_SFUNC  = PORT_SFUNC_12;
  PORT_InitStructure.PORT_SANALOG  = PORT_SANALOG_DIGITAL;
   PORT_InitStructure.PORT_SPWR = PORT_SPWR_10;
  PORT_Init(PORTA, &PORT_InitStructure);

В чем может быть причина?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с модулем МКИО
СообщениеДобавлено: 2016-май-31 10:52 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 734
Откуда: АО "ПКК Миландр"
_oleg_ писал(а):
Добрый день. Пытаюсь завести манчестер на отладочной плате. Взял из примеров milstd_modules.с
Проект собрался, на выходных линиях МК видно, что контроллер шины пытается что-то послать. При этом на выходе приемопередатчиков 5559ИН13У2 - тишина. Сами приемопередатчики греются достаточно сильно (через 10 сек. после запуска прошивки прикоснуться невозможно). Греются все 4 (каналы A,B контроллеров MIL0,MIL1).
Сам МК тоже греется, но не так сильно.
Приемопередатчики контроллера MIL0 не греются если закомментировать строки, отвечающие за сигналы ENA и ENB.
Код:
PORT_InitStructure.PORT_Pin = (PORT_Pin_25 | PORT_Pin_26 | PORT_Pin_27 | PORT_Pin_28 | PORT_Pin_29);
   PORT_InitStructure.PORT_SFUNC  = PORT_SFUNC_12;
  PORT_InitStructure.PORT_SANALOG  = PORT_SANALOG_DIGITAL;
   PORT_InitStructure.PORT_SPWR = PORT_SPWR_10;
  PORT_Init(PORTA, &PORT_InitStructure);

   PORT_InitStructure.PORT_Pin   = (PORT_Pin_22);
   PORT_InitStructure.PORT_SFUNC  = PORT_SFUNC_12;
  PORT_InitStructure.PORT_SANALOG  = PORT_SANALOG_DIGITAL;
   PORT_InitStructure.PORT_SPWR = PORT_SPWR_10;
  PORT_Init(PORTA, &PORT_InitStructure);

В чем может быть причина?


Посмотрите в каком состоянии бит INVTR в регистр CONTROL (для 5559ИН13У должен быть в 0, для 5559ИН67 должен быть в 1).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с модулем МКИО
СообщениеДобавлено: 2016-июн-03 16:38 
Не в сети

Зарегистрирован: 2016-апр-27 12:14
Сообщения: 28
Цитата:
Посмотрите в каком состоянии бит INVTR в регистр CONTROL (для 5559ИН13У должен быть в 0, для 5559ИН67 должен быть в 1).

Спасибо. Выставил 0 - приемопередатчики перестали греться и заработали. Сам МК все же греется и достаточно сильно. Даже если выключить передачу сообщений в основном цикле программы и/или снять модули.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с модулем МКИО
СообщениеДобавлено: 2016-июн-05 14:30 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1356
Откуда: Тула
_oleg_ писал(а):
Цитата:
Посмотрите в каком состоянии бит INVTR в регистр CONTROL (для 5559ИН13У должен быть в 0, для 5559ИН67 должен быть в 1).

Спасибо. Выставил 0 - приемопередатчики перестали греться и заработали. Сам МК все же греется и достаточно сильно. Даже если выключить передачу сообщений в основном цикле программы и/или снять модули.

Если он на максимальных частотах с включенной всей периферией, то не удивительно.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с модулем МКИО
СообщениеДобавлено: 2016-ноя-25 17:37 
Не в сети

Зарегистрирован: 2013-май-15 11:26
Сообщения: 82
Откуда: г.Новосибирск
Не могу завести модуль МКИОII никак, взял пример из SPL и пример из форума, не работает... На модуле с ОСЦ вижу сигнал что проходит на RX, но внутри не происходит прерывание. Если настриваю в режиме КШ, то не выходит ничего, и сразу производится прерывание... Что может быть не так?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с модулем МКИО
СообщениеДобавлено: 2016-ноя-29 22:01 
Не в сети

Зарегистрирован: 2013-май-15 11:26
Сообщения: 82
Откуда: г.Новосибирск
Может я неверно объяснил. Если по rx после приемопередатчика уровни видны, то он работает корректно. Если пытаюсь с контроллера передать что либо на приемопередатчик то ничего нет, хотя контроллер выдал только ошибку обмена, как будто отправил что либо.

За основу взял реализацию из стандартной библиотеки для кейла и портировал то что было на ве1т.

Пробовал пример с форума с настройкой сразу регистра, все тоже самое. Если стоит флаг инвертирования то приемопередатчика сильно греются, поэтому я его убрал.

Пробовал без прерывания, но не получаю ничего в valmes.

Помогите кто сможет... на ве1т код работает отлично, тут особо ничего не изменилось ни по спецификации, ни по коду...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с модулем МКИО
СообщениеДобавлено: 2016-дек-02 17:58 
Не в сети

Зарегистрирован: 2013-май-15 11:26
Сообщения: 82
Откуда: г.Новосибирск
Проблема в линии была... Но теперь уже логический косяк

Выставляю прерывания по флагам, но когда попадаю в прерывание в регистре STATUS всегда 0x1, т.е. IDLE. Почему такое поведение? Как определить событие в прерывании? Есть ли Errata на контроллер?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с модулем МКИО
СообщениеДобавлено: 2016-дек-07 07:44 
Не в сети

Зарегистрирован: 2016-ноя-23 05:50
Сообщения: 12
Откуда: Омск
smashrod писал(а):
Проблема в линии была... Но теперь уже логический косяк

Выставляю прерывания по флагам, но когда попадаю в прерывание в регистре STATUS всегда 0x1, т.е. IDLE. Почему такое поведение? Как определить событие в прерывании? Есть ли Errata на контроллер?


Тоже столкнулся с таким поведением. Я так понял, что флаги VALMESS и RFLAGN в режиме ОУ и М сбрасываются автоматически через 4 мкс после установки (стр 546 спецификации версии 2.5.0). Поэтому, если прерывание не успевает считать статусный регистр, то ему остается только флаг IDLE.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с модулем МКИО
СообщениеДобавлено: 2016-дек-07 09:59 
Не в сети

Зарегистрирован: 2013-май-15 11:26
Сообщения: 82
Откуда: г.Новосибирск
Исследования показали, что если без прерывания то флаги ставятся сразу, если с прерыванием то флаги ставятся после и на 1 мкс, по крайней мере VALMES. В таком виде это прерывание вообще бесполезно в режиме нескольких флагов, так как невозможно определить какой из них его породил....

В ве1т на частоте 80МГц все работает исправно и можно в прерывании делать обработчик, а тут надо выносить в основной цикл программы


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с модулем МКИО
СообщениеДобавлено: 2016-дек-07 17:57 
Не в сети

Зарегистрирован: 2013-май-15 11:26
Сообщения: 82
Откуда: г.Новосибирск
Бьюсь с МКИО, прервание оставил только на подяжку, я так понял, что проблемы с временем исключительно из-за скорости ОЗУ, т.е. так как оно медленное, то код сначала кешируется, а потом только быстро из кеша начинает использоваться... Из-за этого и в прерывании не могу обработать флаги, по этой же причине не могу поймать первое сообщение по МКИО, потому что просто оно пропускается, пока код в кеш попадает...

Как такие эффекты в отладке можно исключить? Как вообще тогда отладить работу МКИО с учётом данных эффектов?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с модулем МКИО
СообщениеДобавлено: 2016-дек-07 19:07 
Не в сети

Зарегистрирован: 2010-сен-21 12:57
Сообщения: 712
Откуда: г. Санкт-Петербург
smashrod писал(а):
...
Как такие эффекты в отладке можно исключить? Как вообще тогда отладить работу МКИО с учётом данных эффектов?

Если я правильно понял Вы выполняете код из внешней 8-ми разрядной SRAM. В этом случае могу посоветовать следующее -
таблицу векторов и обработку прерываний расположить во внутренней SRAM.
При CPUCLK = 40 МГц должны успевать, если код обработки стараться писать оптимально.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с модулем МКИО
СообщениеДобавлено: 2016-дек-08 09:39 
Не в сети

Зарегистрирован: 2013-май-15 11:26
Сообщения: 82
Откуда: г.Новосибирск
Спасибо, за ответ! Подскажите как это сделать правильно? И как еще можно отладить, приближенно к работе с OTP


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с модулем МКИО
СообщениеДобавлено: 2016-дек-08 11:11 
Не в сети

Зарегистрирован: 2016-ноя-23 05:50
Сообщения: 12
Откуда: Омск
smashrod писал(а):
Бьюсь с МКИО, прервание оставил только на подяжку, я так понял, что проблемы с временем исключительно из-за скорости ОЗУ, т.е. так как оно медленное, то код сначала кешируется, а потом только быстро из кеша начинает использоваться... Из-за этого и в прерывании не могу обработать флаги, по этой же причине не могу поймать первое сообщение по МКИО, потому что просто оно пропускается, пока код в кеш попадает...

Мне кеш пришлось отключить, так как с ним мой код вообще не работает. А вот в прерывание при каждой пересылке вхожу дважды: 1) по флагу активности интерфейса и 2) по IDLE. Хотя в маске включения прерывания указывал флаги: ERRIE, VALLMESSIE и RFLAGNIE?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с модулем МКИО
СообщениеДобавлено: 2016-дек-08 11:21 
Не в сети

Зарегистрирован: 2010-сен-21 12:57
Сообщения: 712
Откуда: г. Санкт-Петербург
smashrod писал(а):
Спасибо, за ответ! Подскажите как это сделать правильно?

Если Весь проект помещается во внутреннюю SRAM, то в настройках проекта указать соответствующие адреса для кода.
Иначе создать отдельно два файла (asm и си) для таблицы векторов и обработки прерываний соответственно, указав для них опцию расположить в IRAM.
Не забыть перенастроить регистр VTOR
smashrod писал(а):
И как еще можно отладить, приближенно к работе с OTP

Пока никак, кроме как прошивать ОТP и отлаживать. Если код небольшой, то на одном кристалле можно попробовать несколько версий. Как это можно организовать описано здесь
viewtopic.php?f=47&t=2919#p16121.
Весной должна появиться версия МК с RAM вместо OTP, при этом проблем с отладкой станет меньше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с модулем МКИО
СообщениеДобавлено: 2016-дек-08 11:56 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1356
Откуда: Тула
vasili писал(а):
Весной должна появиться версия МК с RAM вместо OTP, при этом проблем с отладкой станет меньше.

Кроме того, возрастёт и быстродействие не самого шустрого МК в целом, если ОЗУ кода будет подключено вместо OTP, а действие кэша команд можно распространить только на выборку команд по внешней шине -- зверь машина будет.

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 51 ]  На страницу 1, 2, 3, 4 Все  След.

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


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

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


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

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