Миландр

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

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




Начать новую тему  Ответить на тему  [ 49 сообщений ]  На страницу « 1 2 3 4
Автор Сообщение
 Заголовок сообщения: Re: 1886ВЕ4У
СообщениеДобавлено: 2021-май-12 18:00 
Не в сети
Support
Аватара пользователя

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 271
Организация: АО «ПКК Миландр»
Виталий2405 писал(а): *
Здравствуйте
Предлагаю немного изменить тестовую программу. Думаю, если паузы в обработчиках прерываний формировать не конструкцией for..., а соответствующим количеством команд BCF 7,x BCF 7,x BCF 7,x ... , то вероятность появления сбоев вырастет в разы, и их можно будет разглядеть невооружённым взглядом.
Попробуете?
Здравствуйте!

В ответ на Ваш запрос сообщаю, что ошибочное поведение зафиксировано, в ближайшее время будут подключены разработчики для углубленного исследования. Как и предполагалось ранее, особенность может быть вызвана выполнением цикла "чтение - модификация - запись" в рамках команды BCF, поскольку увеличение количества выполнений данной команды в ходе обработки прерывания от таймера увеличивает вероятность пропуска внешнего прерывания (под спойлером снятая осциллограмма, где пропущено множество обработчиков внешних прерываний, когда в ходе обработки прерывания от таймера инициируется множественный вызов команды BCF). Обо всех новостях будет сообщаться в рамках этой темы, большое спасибо за терпение.
Открыть
Вложение:
[ attachment ]
osc_be4.png [ 23.34 КБ | 617 просмотров ]
Закрыть

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


Вернуться к началу
 Заголовок сообщения: Re: 1886ВЕ4У
СообщениеДобавлено: 2021-июн-02 14:02 
Не в сети
Support
Аватара пользователя

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 271
Организация: АО «ПКК Миландр»
Виталий2405 писал(а): *
Здравствуйте
Предлагаю немного изменить тестовую программу. Думаю, если паузы в обработчиках прерываний формировать не конструкцией for..., а соответствующим количеством команд BCF 7,x BCF 7,x BCF 7,x ... , то вероятность появления сбоев вырастет в разы, и их можно будет разглядеть невооружённым взглядом.
Попробуете?
Здравствуйте, Виталий!

Приносим извинения за задержку с ответом, потребовалось время, чтобы детально разобраться с вопросом. Резюмируя, можно сообщить следующее:

1. Ошибка присутствует только в микроконтроллере 1886ВЕ4У из всей линейки 1886ВЕх.

2. Связана ошибка действительно с выполнением инструкции BCF, что приводит к сбросу всех флагов в 4 фазе ядра, и не происходит перезапись флагов до следующей 4 фазы, то есть за время между двумя четвёртыми фазами флаг *_set, который в RTL отвечает за выставление флагов, сбрасывается, и прерывание не возникает.

3. Исправление в RTL несложное, но запуск следующей ревизии пока что не планируется, в случае, если выпуск обновленного кристалла будет сделан, то там это будет исправлено.

4. На основании того, что выпуск обновленной версии кристалла не планируется, есть несколько подходов к решению:

- Радикальный. Использовать только одно прерывание. Два одновременно не использовать. Или использовать поочерёдно.
- В прерывании от таймера определять чтением состояние вывода PA0 и устанавливать флаг INTF программно, чтобы он не терялся в момент сброса прерывания от таймера.
- В прерывании от внешнего вывода PA0 проверять условия возникновения прерывания таймера, например чтением регистра счётчика. В случае, если условие выполняется, то также программно устанавливать флаг T0IF, чтобы он не терялся в момент сброса прерывания от внешнего вывода.

5. На основании всей выявленной ошибки будет составлен файл errata, включающий методы устранения проблемы из четвертого пункта данного поста.

Большое спасибо за содействие в обнаружении проблемы.

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


Вернуться к началу
 Заголовок сообщения: Re: 1886ВЕ4У
СообщениеДобавлено: 2021-июн-03 11:06 
Не в сети

Зарегистрирован: 2012-окт-23 11:46
Сообщения: 12
Вообще-то, я предполагал от Вас более развёрнутого ответа. Осталось неясно:
1. Влияют ли столь же пагубным образом на регистр INTSTA другие команды, помимо BCF. И какие, и как?
2. Влияет ли столь же пагубным образом команда BCF на другие регистры?
3. Влияет ли столь же пагубным образом команда BCF на другие разряды INTSTA? Особо интересует PEIF.
4. (Конкретный) Если при выполнении BCF над регистром INTSTA или PIR1, придёт прерывание RCIF или SPIIF оно тоже будет пропущено? Как будет выглядеть функционирование ве4?
5. (Риторический) Или нам самим затеять НИР по тестированию?


Вернуться к началу
 Заголовок сообщения: Re: 1886ВЕ4У
СообщениеДобавлено: 2021-июн-04 18:06 
Не в сети
Support

Зарегистрирован: 2017-фев-14 11:21
Сообщения: 213
Организация: АО ПКК Миландр
Откуда: АО "ПКК Миландр"
Здравствуйте!
Виталий, предыдущий ответ удалила, так как он был некорректный. Извините:)
Что касается вопросов 3 и 4 - с периферией проблем нет, так как каждый флаг периферии сбрасывается инструкцией bcf независимо от других флагов.

Остальное уточним у разработчиков в ближайшее время.
Спасибо за обращение.

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


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

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


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

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


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

Перейти: 

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