Миландр

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

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




Начать новую тему  Ответить на тему  [ 279 сообщений ]  На страницу « 115 16 17 18 19 »
Автор Сообщение
СообщениеДобавлено: 2019-май-13 16:51 
Не в сети

Зарегистрирован: 2014-дек-22 11:21
Сообщения: 29
Здравствуйте, хотелось бы уточнить по логике установки и сброса битов в регистре RIS модуля UART. Правильно ли я понимаю, что при заполнении буфера передатчика выше порогового значения бит TXRIS сбросится в ноль? Иными словами, с его помощью можно определить количество свободного места в буфере передатчика в любой момент времени?


Вернуться к началу
СообщениеДобавлено: 2019-май-14 08:57 
Не в сети

Зарегистрирован: 2017-апр-26 14:51
Сообщения: 473
Организация: Milandr
Откуда: ПКК "Миландр"
Здравствуйте,
Флаг TXRIS отражает событие того, что в FIFO передатчика появилось пустое место. Т.е. количество данных в FIFO осталось <= чем 1/8, 1/4, 1/2, 3/4, 7/8 от максимального количества, порог задается в TXIFLSEL. Если разрешено прерывание по этому флагу, то в прерывании можно докинуть в FIFO порцию данных. Если прерывание не используется, то можно отслеживать условие (TXRIS == 1) и докидывать данные по флагу.

В целом да, этот флаг позволяет понять больше или меньше данных в FIFO по отношению к заданному порогу.


Вернуться к началу
СообщениеДобавлено: 2020-дек-13 22:45 
Не в сети

Зарегистрирован: 2020-дек-04 03:22
Сообщения: 1
Организация: АО "КБСМ"
Здравствуйте, обнаружил ошибку:
Раздел 10.2
Цитата:
записывает новый элемент в стек, сначала инкрементируется указатель и затем записывается
Должно быть: декрементируется, т.к. значение адреса уменьшается.
Что соответствует сведениям из "The Definitive guide to the ARM Cotex-M3 Second Edition"


Вернуться к началу
СообщениеДобавлено: 2020-дек-14 08:59 
Не в сети
Support

Зарегистрирован: 2020-мар-17 09:52
Сообщения: 16
Организация: АО ПКК Миландр
Tialunix писал(а): *
Здравствуйте, обнаружил ошибку:
Раздел 10.2
Цитата:
записывает новый элемент в стек, сначала инкрементируется указатель и затем записывается
Должно быть: декрементируется, т.к. значение адреса уменьшается.
Что соответствует сведениям из "The Definitive guide to the ARM Cotex-M3 Second Edition"
Здравствуйте!

Информация передана техническим писателям, ошибка будет исправлена при плановой корректировке спецификации.
Спасибо за обращение.

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


Вернуться к началу
СообщениеДобавлено: 2021-июн-30 11:08 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 544
Спецификация 3.20.1 от 15.05.2020
Раздел "Батарейный домен и часы реального времени"
Хотелось бы уточнить регистр про регистр MDR_RTC->PRL. Делитель задается в формате N-1?
То есть
при MDR_BKP->RTC_PRL = 0 делитель равен 1
при MDR_RTC->PRL = 1 делитель равен 2 и т.д

Второй момент, Таблица 121 - неверное название "Описание RTC_PRL", Должно быть описание регистра RTC_CS

Далее Регитр RTC_CS
бит SECF - описан как разрешение счета от предварительного делителя. Наверное это не совсем так. Флаг устанавливается аппаратно (вероятно в момент сброса RTC_DIV в 0 или по совпадению с RTC_PRL).

По регистру MDR_BKP->REG_0F хотелось бы уточнить
1. бит RTC_RESET сбрасывает все регистры RTC или только RTC_CNT, потому что после сброса RTC_PRL нельзя прочитать (что указано в ERRATA)
2. Возможно внести в ERRATA то, что бит LSE_RDY выставляется однократно. Если в процессе работы внешний кварц отключиться, то счетчик перестает считать, а бит LSE_RDY остается установленным, то есть программа считает что генератор работает (у нас сейчас на макете проблема с конденсаторами для часового кварца, поэтому наблюдаем такую картину на 1986ВЕ92 в пластике партия 1816).


Вернуться к началу
СообщениеДобавлено: 2021-июн-30 14:10 
Не в сети
Support
Аватара пользователя

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 448
Организация: АО «ПКК Миландр»
Откуда: Зеленоград
редактор писал(а): *
Спецификация 3.20.1 от 15.05.2020
Раздел "Батарейный домен и часы реального времени"
Хотелось бы уточнить регистр про регистр MDR_RTC->PRL. Делитель задается в формате N-1?
То есть
при MDR_BKP->RTC_PRL = 0 делитель равен 1
при MDR_RTC->PRL = 1 делитель равен 2 и т.д

Второй момент, Таблица 121 - неверное название "Описание RTC_PRL", Должно быть описание регистра RTC_CS

Далее Регитр RTC_CS
бит SECF - описан как разрешение счета от предварительного делителя. Наверное это не совсем так. Флаг устанавливается аппаратно (вероятно в момент сброса RTC_DIV в 0 или по совпадению с RTC_PRL).

По регистру MDR_BKP->REG_0F хотелось бы уточнить
1. бит RTC_RESET сбрасывает все регистры RTC или только RTC_CNT, потому что после сброса RTC_PRL нельзя прочитать (что указано в ERRATA)
2. Возможно внести в ERRATA то, что бит LSE_RDY выставляется однократно. Если в процессе работы внешний кварц отключиться, то счетчик перестает считать, а бит LSE_RDY остается установленным, то есть программа считает что генератор работает (у нас сейчас на макете проблема с конденсаторами для часового кварца, поэтому наблюдаем такую картину на 1986ВЕ92 в пластике партия 1816).
Здравствуйте!

>> Спецификация 3.20.1 от 15.05.2020

Используйте, пожалуйста, актуальную версию спецификации. Актуальная версия спецификации (и файла errata) для микросхемы 1986ВЕ92У всегда доступна для загрузки на официальном сайте компании Миландр, на странице микросхемы в разделе "Документация"

>> Раздел "Батарейный домен и часы реального времени"
Хотелось бы уточнить регистр про регистр MDR_RTC->PRL. Делитель задается в формате N-1?
То есть
при MDR_BKP->RTC_PRL = 0 делитель равен 1
при MDR_RTC->PRL = 1 делитель равен 2 и т.д


Обратите, пожалуйста, внимание, что если в регистре RTC_PRL установлен 0 (по сбросу), то фактически счётчик RTC_CNT затрагивает логику с RTC_DIV и RTC_PRL, но поскольку нет делителя, счёт в RTC_CNT просто считает на подведенной на блок часов реального времени частоте - делитель 1. Соответственно, установив единицу в регистр RTC_PRL, теперь потребуется посчитать счётчик и в RTC_DIV, чтобы инкрементировать счёт RTC_CNT - тогда реальный делитель 2.

>> Второй момент, Таблица 121 - неверное название "Описание RTC_PRL", Должно быть описание регистра RTC_CS

Будет исправлено при плановой корректировке спецификации.

>> Далее Регитр RTC_CS
бит SECF - описан как разрешение счета от предварительного делителя. Наверное это не совсем так. Флаг устанавливается аппаратно (вероятно в момент сброса RTC_DIV в 0 или по совпадению с RTC_PRL).


Флаг SECF действительно устанавливается аппаратно (логично, ведь это флаг, то есть бит, выставляемый по какому-то событию) в момент, когда основной счётчик RTC_CNT инкрементируется по факту досчитывания в регистре RTC_DIV до значения, заданном в регистре RTC_PRL. По этой части спецификация не нуждается в корректировке.

>> По регистру MDR_BKP->REG_0F хотелось бы уточнить
1. бит RTC_RESET сбрасывает все регистры RTC или только RTC_CNT, потому что после сброса RTC_PRL нельзя прочитать (что указано в ERRATA)


Бит RTC_RESET регистра REG_0F в блоке батарейного домена сбрасывает регистры RTC_CNT, регистр с флагами статуса RTC_CS и RTC_PRL соответственно. По факту сброса в соответствии с файлом errata на микросхему считывание не выполняется, однако, там фактически будет ноль, так как по RTL-описанию на блок по сбросу данный регистр устанавливается в значение ноль.

>> 2. Возможно внести в ERRATA то, что бит LSE_RDY выставляется однократно. Если в процессе работы внешний кварц отключиться, то счетчик перестает считать, а бит LSE_RDY остается установленным, то есть программа считает что генератор работает (у нас сейчас на макете проблема с конденсаторами для часового кварца, поэтому наблюдаем такую картину на 1986ВЕ92 в пластике партия 1816).

К сожалению, не могу отловить подобное поведение. После снятия бита LSE_ON бит LSE_RDY закономерно также снимается, при этом после повторной установки и снятия логика продолжает отрабатывать корректно. Пожалуйста, проверьте схемотехнику, не затягивают ли конденсаторы на плечах кварцевого резонатора его запуск. Рекомендации по части этого вопроса даны в рамках ответа на часто задаваемые вопросы информационного портала отдела технической поддержки компании Миландр про выбор кварцевого резонатора для микроконтроллеров компании Миландр. Имеет смысл наладить схемотехнику по части конденсаторов с учётом спецификации на кварцевый резонатор. Спасибо за обращение.

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


Вернуться к началу
СообщениеДобавлено: 2021-июл-01 08:51 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 544
Спасибо за разъяснения.
Теперь дискуссия.
Цитата:
Флаг SECF действительно устанавливается аппаратно (логично, ведь это флаг, то есть бит, выставляемый по какому-то событию) в момент, когда основной счётчик RTC_CNT инкрементируется по факту досчитывания в регистре RTC_DIV до значения, заданном в регистре RTC_PRL. По этой части спецификация не нуждается в корректировке.
Когда я читаю название бита " Флаг РАЗРЕШЕНИЯ счета основного счетчика от счетчика предварительного
деления", то напрашивается действие по установке этого флага, чтобы разрешить счет. Ведь нигде в тексте не указано, что он выставляется аппаратно. А в таблице только описание значений (1 - счет разрешен, значит надо установить). Смутило, что сбрасывается записью 1 и вызывает прерывание (прерывание когда счет разрешен :?: ). Более понятным, как мне кажется, было бы назвать "Флаг ИЗМЕНЕНИЯ основного счетчика", что лучше отражает логику работы и его назначение.
Цитата:
К сожалению, не могу отловить подобное поведение. После снятия бита LSE_ON бит LSE_RDY закономерно также снимается, при этом после повторной установки и снятия логика продолжает отрабатывать корректно. Пожалуйста, проверьте схемотехнику, не затягивают ли конденсаторы на плечах кварцевого резонатора его запуск.
Да сейчас на плате с конденсаторами проблема (мы ее решаем, для того и макет), поэтому и описал данную ситуацию. Что я делаю.
Запускаю МК под отладкой (Keil, JLink), в программе настраиваю выводы для LSE и модуль RTC.
В окне отладчика контролирую состояние регистров MDR_BKP. Бит LSE_ON установлен, бит LSE_RDY сброшен.
После манипуляций с конденсаторами (прислонить палец :D) бит LSE_RDY устанавливается, счетчик RTC_CNT меняется.
После повторных манипуляций (убрать палец) счетчик RTC_CNT останавливается, бит LSE_RDY остается установленным в 1. МК считает, что кварцевый резонатор продолжает работать. Манипуляции с битом LSE_ON не проводим, бит остается включенным.


Вернуться к началу
СообщениеДобавлено: 2021-июл-01 09:28 
Не в сети
Support
Аватара пользователя

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 448
Организация: АО «ПКК Миландр»
Откуда: Зеленоград
редактор писал(а): *
Спасибо за разъяснения.
Теперь дискуссия.
Цитата:
Флаг SECF действительно устанавливается аппаратно (логично, ведь это флаг, то есть бит, выставляемый по какому-то событию) в момент, когда основной счётчик RTC_CNT инкрементируется по факту досчитывания в регистре RTC_DIV до значения, заданном в регистре RTC_PRL. По этой части спецификация не нуждается в корректировке.
Когда я читаю название бита " Флаг РАЗРЕШЕНИЯ счета основного счетчика от счетчика предварительного
деления", то напрашивается действие по установке этого флага, чтобы разрешить счет. Ведь нигде в тексте не указано, что он выставляется аппаратно. А в таблице только описание значений (1 - счет разрешен, значит надо установить). Смутило, что сбрасывается записью 1 и вызывает прерывание (прерывание когда счет разрешен :?: ). Более понятным, как мне кажется, было бы назвать "Флаг ИЗМЕНЕНИЯ основного счетчика", что лучше отражает логику работы и его назначение.
Цитата:
К сожалению, не могу отловить подобное поведение. После снятия бита LSE_ON бит LSE_RDY закономерно также снимается, при этом после повторной установки и снятия логика продолжает отрабатывать корректно. Пожалуйста, проверьте схемотехнику, не затягивают ли конденсаторы на плечах кварцевого резонатора его запуск.
Да сейчас на плате с конденсаторами проблема (мы ее решаем, для того и макет), поэтому и описал данную ситуацию. Что я делаю.
Запускаю МК под отладкой (Keil, JLink), в программе настраиваю выводы для LSE и модуль RTC.
В окне отладчика контролирую состояние регистров MDR_BKP. Бит LSE_ON установлен, бит LSE_RDY сброшен.
После манипуляций с конденсаторами (прислонить палец :D) бит LSE_RDY устанавливается, счетчик RTC_CNT меняется.
После повторных манипуляций (убрать палец) счетчик RTC_CNT останавливается, бит LSE_RDY остается установленным в 1. МК считает, что кварцевый резонатор продолжает работать. Манипуляции с битом LSE_ON не проводим, бит остается включенным.
Здравствуйте!
редактор писал(а):
Когда я читаю название бита " Флаг РАЗРЕШЕНИЯ счета основного счетчика от счетчика предварительного
деления", то напрашивается действие по установке этого флага, чтобы разрешить счет. Ведь нигде в тексте не указано, что он выставляется аппаратно. А в таблице только описание значений (1 - счет разрешен, значит надо установить). Смутило, что сбрасывается записью 1 и вызывает прерывание (прерывание когда счет разрешен :?: ). Более понятным, как мне кажется, было бы назвать "Флаг ИЗМЕНЕНИЯ основного счетчика", что лучше отражает логику работы и его назначение.
В целом для читаемости Вы предлагаете лучший вариант в сравнении с определением "разрешения", но на самом деле трактуется всё однозначно: флаг выставляется, когда разрешается счёт основного счётчика на основании счётчика предварительного деления - спасибо большое за предложение так или иначе, произведем корректировку и по части этого описания при плановой корректировке.
редактор писал(а):
Да сейчас на плате с конденсаторами проблема (мы ее решаем, для того и макет), поэтому и описал данную ситуацию. Что я делаю.
Запускаю МК под отладкой (Keil, JLink), в программе настраиваю выводы для LSE и модуль RTC.
В окне отладчика контролирую состояние регистров MDR_BKP. Бит LSE_ON установлен, бит LSE_RDY сброшен.
После манипуляций с конденсаторами (прислонить палец :D) бит LSE_RDY устанавливается, счетчик RTC_CNT меняется.
После повторных манипуляций (убрать палец) счетчик RTC_CNT останавливается, бит LSE_RDY остается установленным в 1. МК считает, что кварцевый резонатор продолжает работать. Манипуляции с битом LSE_ON не проводим, бит остается включенным.
Попытаемся это проверить детальнее. В свою очередь, сообщите, пожалуйста, фактически на линии OUT от резонатора LSE что-то течет на микроконтроллер в плане сигнала? Проверьте, пожалуйста, состояние линии, идущей на МК, с пальцем и без него.

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


Вернуться к началу
СообщениеДобавлено: 2021-июл-01 15:07 
Не в сети
Support
Аватара пользователя

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 448
Организация: АО «ПКК Миландр»
Откуда: Зеленоград
редактор писал(а): *
Спасибо за разъяснения.
Теперь дискуссия.
Цитата:
Флаг SECF действительно устанавливается аппаратно (логично, ведь это флаг, то есть бит, выставляемый по какому-то событию) в момент, когда основной счётчик RTC_CNT инкрементируется по факту досчитывания в регистре RTC_DIV до значения, заданном в регистре RTC_PRL. По этой части спецификация не нуждается в корректировке.
Когда я читаю название бита " Флаг РАЗРЕШЕНИЯ счета основного счетчика от счетчика предварительного
деления", то напрашивается действие по установке этого флага, чтобы разрешить счет. Ведь нигде в тексте не указано, что он выставляется аппаратно. А в таблице только описание значений (1 - счет разрешен, значит надо установить). Смутило, что сбрасывается записью 1 и вызывает прерывание (прерывание когда счет разрешен :?: ). Более понятным, как мне кажется, было бы назвать "Флаг ИЗМЕНЕНИЯ основного счетчика", что лучше отражает логику работы и его назначение.
Цитата:
К сожалению, не могу отловить подобное поведение. После снятия бита LSE_ON бит LSE_RDY закономерно также снимается, при этом после повторной установки и снятия логика продолжает отрабатывать корректно. Пожалуйста, проверьте схемотехнику, не затягивают ли конденсаторы на плечах кварцевого резонатора его запуск.
Да сейчас на плате с конденсаторами проблема (мы ее решаем, для того и макет), поэтому и описал данную ситуацию. Что я делаю.
Запускаю МК под отладкой (Keil, JLink), в программе настраиваю выводы для LSE и модуль RTC.
В окне отладчика контролирую состояние регистров MDR_BKP. Бит LSE_ON установлен, бит LSE_RDY сброшен.
После манипуляций с конденсаторами (прислонить палец :D) бит LSE_RDY устанавливается, счетчик RTC_CNT меняется.
После повторных манипуляций (убрать палец) счетчик RTC_CNT останавливается, бит LSE_RDY остается установленным в 1. МК считает, что кварцевый резонатор продолжает работать. Манипуляции с битом LSE_ON не проводим, бит остается включенным.
В дополнение к прошлому ответному письму сообщаю, что флаг LSERDY действительно не снимается, если связь с источником тактирования будет потеряна (было проверено в режиме BYPASS), но здесь важно отметить, что флаг отвечает именно за выход генератора в рабочий режим, но никак не о текущем состоянии генератора, поэтому необходимо просто иметь эту информацию ввиду, в случае чего, парировать её при помощи отдельных обработок внутри программы путем переустановки бита LSEON, где снятие бита заведомо снимет флаг LSERDY. Аналогичная ситуация для флага HSERDY.

Защита от подобного рода отказов реализована только в 1986ВЕ8Т(81Т) и в 1986ВК018(ВК016) или "Электросила".

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


Вернуться к началу
СообщениеДобавлено: 2021-июл-02 09:27 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 544
Спасибо за конструктивный диалог.


Вернуться к началу
СообщениеДобавлено: 2021-июл-02 10:06 
Не в сети

Зарегистрирован: 2020-дек-10 09:35
Сообщения: 43
Организация: Startex
Общался когда-то с каким-то разработчиком на выставке. Запомнилось, что все сигналы READY (HSI, HSE, LSI, LSE, PLL) это просто счетчик на выходе генератора.
Когда счетчик насчитывает заданное количество полноамплитудных переключений на выходе генератора, то выставляется бит READY.
Типа считается что блок вошел в рабочий режим. В спецификации на 9х есть количество этих импульсов для HSE (2048) и LSE(4096).

Поэтому оценить что либо еще кроме того что генератор завелся по биту READY нельзя.

PS: За достоверность не ручаюсь. Но слышал как-то так.


Вернуться к началу
СообщениеДобавлено: 2021-июл-17 23:00 
Не в сети

Зарегистрирован: 2018-янв-05 23:41
Сообщения: 344
Организация: ФГУП "РФЯЦ-ВНИИЭФ"
Рисунок 27. Убрать сигнал ETH2_CLK. Его в данных МК нет. Видимо, остался после копирования этого блока делителей частоты из спецификации на 1986ВЕ1.


Вернуться к началу
СообщениеДобавлено: 2021-июл-18 09:25 
Не в сети

Зарегистрирован: 2018-янв-05 23:41
Сообщения: 344
Организация: ФГУП "РФЯЦ-ВНИИЭФ"
28.4.2
Как понимать требование F_UART_CLK <= (5/3)*F_CPU_CLK ?
Покажите по рисунку 27, как можно сделать так, чтобы F_UART_CLK была БОЛЬШЕ, чем F_CPU_CLK. Я вижу только, что она может быть равна или меньше, но никак не больше. Максимум, что можно получить, это F_UART_CLK = HCLK =F_CPU_CLK.


Вернуться к началу
СообщениеДобавлено: 2021-июл-19 10:17 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 544
Цитата:
Как понимать требование F_UART_CLK <= (5/3)*F_CPU_CLK ?
Так ведь требование и не противоречит возможностям. :D
Цитата:
Максимум, что можно получить, это F_UART_CLK = HCLK =F_CPU_CLK.
Значит она гарантированно будет меньше чем (5/3)*F_CPU_CLK. :lol:


Вернуться к началу
СообщениеДобавлено: 2021-июл-19 17:44 
Не в сети
Support
Аватара пользователя

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 448
Организация: АО «ПКК Миландр»
Откуда: Зеленоград
Professor Chaos писал(а): *
28.4.2
Как понимать требование F_UART_CLK <= (5/3)*F_CPU_CLK ?
Покажите по рисунку 27, как можно сделать так, чтобы F_UART_CLK была БОЛЬШЕ, чем F_CPU_CLK. Я вижу только, что она может быть равна или меньше, но никак не больше. Максимум, что можно получить, это F_UART_CLK = HCLK =F_CPU_CLK.
Здравствуйте!

Обратите, пожалуйста, внимание, что данное правило заложено на уровне разработанного IP-блока. Вы верно обратили внимание на рисунок 27, согласно ему это условие всегда будет выполняться, а частота UARTCLK будет заведомо либо равна частоте CPU_CLK, либо будет меньше - прослеживается жесткая привязка частоты периферии к частоте ядра. Но так происходит не везде: так, например, в микроконтроллере К1986ВК234 (см. спецификацию, рис. 31 "Структурная схема") частота ядра и периферии может быть различна и независима, и в таком случае множитель 5/3 будет актуален. Со своей стороны обещаю убрать данную информацию из спецификаций для микроконтроллеров, где это неактуально. Большое спасибо за информацию.

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


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 279 сообщений ]  На страницу « 115 16 17 18 19 »

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


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

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


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

Перейти: 

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