Миландр

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

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




Начать новую тему  Ответить на тему  [ 279 сообщений ]  На страницу « 115 16 17 18 19
Автор Сообщение
СообщениеДобавлено: 2021-авг-10 14:09 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 544
Спасибо за ответы и уточнения по USB.
Цитата:
Вы не можете работать с DMA и EEPROM вообще.
Имелось виду не это. Речь не идет о прямой связке ДМА-EEPROM.

Предположим что запущен цикл DMA на копирование данных из области кода в периферию (отправка в UART или SPI или запуск АЦП по таймеру).
Цикл ДМА не завершен, но возникает событие по которому необходимо провести запись данных в EEPROM.
Во время записи во FLASH/EEPROM доступ к флешь-памяти запрещен.
Если во время этой операции будет выполняться цикл ДМА, который копирует данные из области кода то, как правильно заметил AndOrFin
Цитата:
Получается, что если уж блок flash переведен в регистровый доступ, то ни ядро, ни DMA достучаться до памяти не смогут. Только до регистров.
Если транзакции ДМА не остановлены, каково поведение системы?
а) вылет в HаrdFault из - за сбоя на шине
б) ДМА скопирует непонятно что (поскольку область кода недоступна)
в) ДМА приостановит транзакции из-за отсутствия доступа к флешь (сработает какой нибудь флаг доступа).
г) Что-то еще, на что моей фантазии не хватает. :)


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

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 448
Организация: АО «ПКК Миландр»
Откуда: Зеленоград
редактор писал(а): *
Спасибо за ответы и уточнения по USB.
Цитата:
Вы не можете работать с DMA и EEPROM вообще.
Имелось виду не это. Речь не идет о прямой связке ДМА-EEPROM.

Предположим что запущен цикл DMA на копирование данных из области кода в периферию (отправка в UART или SPI или запуск АЦП по таймеру).
Цикл ДМА не завершен, но возникает событие по которому необходимо провести запись данных в EEPROM.
Во время записи во FLASH/EEPROM доступ к флешь-памяти запрещен.
Если во время этой операции будет выполняться цикл ДМА, который копирует данные из области кода то, как правильно заметил AndOrFin
Цитата:
Получается, что если уж блок flash переведен в регистровый доступ, то ни ядро, ни DMA достучаться до памяти не смогут. Только до регистров.
Если транзакции ДМА не остановлены, каково поведение системы?
а) вылет в HаrdFault из - за сбоя на шине
б) ДМА скопирует непонятно что (поскольку область кода недоступна)
в) ДМА приостановит транзакции из-за отсутствия доступа к флешь (сработает какой нибудь флаг доступа).
г) Что-то еще, на что моей фантазии не хватает. :)
Обратите, пожалуйста, внимание вновь, что Вы не можете при настройке контроллера DMA указывать в качестве адресов источника/назначения адреса внутренней ПЗУ, расположенной по адресу 0x8000000, потому что в архитектуре физически нет связи контроллеров EEPROM и DMA, иначе это приведет к тому, что Вы будете записывать нули (исходное состояние буфера на обмен DMA) в выбранное Вами место назначения, если в качестве адреса источника была выбрана память EEPROM. Я могу в корни неверно представлять Вашу систему и идею (просьба пояснить её детальнее, в случае чего), но в микроконтроллере это работает именно так. Вопрос можно поставить иначе: может ли пользователь, работая с EEPROM из ОЗУ, записывая, например, какие-нибудь данные в неё, выполнять параллельно еще и циклы DMA? Может, более того, это будет работать стабильно и без искажений данных (в качестве эксперимента внедрил запуск цикла DMA в ход выполнения транзакции по доступу к памяти EEPROM на запись данных, уменьшив одну из задержек в ходе доступа к памяти). Обратная ситуация, когда выполняется цикл DMA (в рамках допустимых областей памяти), можно запустить запись в память EEPROM, и всё также будет работать корректно. Спасибо.

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


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

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 544
Lampadov писал(а): *
редактор писал(а): *
Спасибо за ответы и уточнения по USB.
Цитата:
Вы не можете работать с DMA и EEPROM вообще.
Имелось виду не это. Речь не идет о прямой связке ДМА-EEPROM.

Предположим что запущен цикл DMA на копирование данных из области кода в периферию (отправка в UART или SPI или запуск АЦП по таймеру).
Цикл ДМА не завершен, но возникает событие по которому необходимо провести запись данных в EEPROM.
Во время записи во FLASH/EEPROM доступ к флешь-памяти запрещен.
Если во время этой операции будет выполняться цикл ДМА, который копирует данные из области кода то, как правильно заметил AndOrFin
Цитата:
Получается, что если уж блок flash переведен в регистровый доступ, то ни ядро, ни DMA достучаться до памяти не смогут. Только до регистров.
Если транзакции ДМА не остановлены, каково поведение системы?
а) вылет в HаrdFault из - за сбоя на шине
б) ДМА скопирует непонятно что (поскольку область кода недоступна)
в) ДМА приостановит транзакции из-за отсутствия доступа к флешь (сработает какой нибудь флаг доступа).
г) Что-то еще, на что моей фантазии не хватает. :)
Обратите, пожалуйста, внимание вновь, что Вы не можете при настройке контроллера DMA указывать в качестве адресов источника/назначения адреса внутренней ПЗУ, расположенной по адресу 0x8000000, потому что в архитектуре физически нет связи контроллеров EEPROM и DMA, иначе это приведет к тому, что Вы будете записывать нули (исходное состояние буфера на обмен DMA) в выбранное Вами место назначения, если в качестве адреса источника была выбрана память EEPROM. Я могу в корни неверно представлять Вашу систему и идею (просьба пояснить её детальнее, в случае чего), но в микроконтроллере это работает именно так. Вопрос можно поставить иначе: может ли пользователь, работая с EEPROM из ОЗУ, записывая, например, какие-нибудь данные в неё, выполнять параллельно еще и циклы DMA? Может, более того, это будет работать стабильно и без искажений данных (в качестве эксперимента внедрил запуск цикла DMA в ход выполнения транзакции по доступу к памяти EEPROM на запись данных, уменьшив одну из задержек в ходе доступа к памяти). Обратная ситуация, когда выполняется цикл DMA (в рамках допустимых областей памяти), можно запустить запись в память EEPROM, и всё также будет работать корректно. Спасибо.
Кажется разобрался. ДМА контроллер не может копировать данные из области кода.
Меня смутила терминология, которую вы применили. EEPROM - подразумевалось с моей стороны отдельная страница пользовательских данных. FLASH - облась кода микроконтроллера.
Спасибо за терпеливое отношение.


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

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 448
Организация: АО «ПКК Миландр»
Откуда: Зеленоград
редактор писал(а): *
Lampadov писал(а): *
редактор писал(а): *
Спасибо за ответы и уточнения по USB.

Имелось виду не это. Речь не идет о прямой связке ДМА-EEPROM.

Предположим что запущен цикл DMA на копирование данных из области кода в периферию (отправка в UART или SPI или запуск АЦП по таймеру).
Цикл ДМА не завершен, но возникает событие по которому необходимо провести запись данных в EEPROM.
Во время записи во FLASH/EEPROM доступ к флешь-памяти запрещен.
Если во время этой операции будет выполняться цикл ДМА, который копирует данные из области кода то, как правильно заметил AndOrFin
Если транзакции ДМА не остановлены, каково поведение системы?
а) вылет в HаrdFault из - за сбоя на шине
б) ДМА скопирует непонятно что (поскольку область кода недоступна)
в) ДМА приостановит транзакции из-за отсутствия доступа к флешь (сработает какой нибудь флаг доступа).
г) Что-то еще, на что моей фантазии не хватает. :)
Обратите, пожалуйста, внимание вновь, что Вы не можете при настройке контроллера DMA указывать в качестве адресов источника/назначения адреса внутренней ПЗУ, расположенной по адресу 0x8000000, потому что в архитектуре физически нет связи контроллеров EEPROM и DMA, иначе это приведет к тому, что Вы будете записывать нули (исходное состояние буфера на обмен DMA) в выбранное Вами место назначения, если в качестве адреса источника была выбрана память EEPROM. Я могу в корни неверно представлять Вашу систему и идею (просьба пояснить её детальнее, в случае чего), но в микроконтроллере это работает именно так. Вопрос можно поставить иначе: может ли пользователь, работая с EEPROM из ОЗУ, записывая, например, какие-нибудь данные в неё, выполнять параллельно еще и циклы DMA? Может, более того, это будет работать стабильно и без искажений данных (в качестве эксперимента внедрил запуск цикла DMA в ход выполнения транзакции по доступу к памяти EEPROM на запись данных, уменьшив одну из задержек в ходе доступа к памяти). Обратная ситуация, когда выполняется цикл DMA (в рамках допустимых областей памяти), можно запустить запись в память EEPROM, и всё также будет работать корректно. Спасибо.
Кажется разобрался. ДМА контроллер не может копировать данные из области кода.
Меня смутила терминология, которую вы применили. EEPROM - подразумевалось с моей стороны отдельная страница пользовательских данных. FLASH - облась кода микроконтроллера.
Спасибо за терпеливое отношение.
Здравствуйте!

Спасибо за дополнительную информацию. Действительно, когда с моей стороны упоминается понятие "EEPROM", то первоначально делается акцент на официальную документацию в рамках обозначения блока "MDR_EEPROM", тем не менее, в действительности внутреннее ПЗУ это всё-таки Flash, но Flash-память NOR-типа, которая очень схожа по свойствам с первоначальной памятью EEPROM, когда имеется доступ к произвольным ячейкам памяти.

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


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

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1588
Откуда: Тула
Lampadov писал(а): *
..., неиспользуемые зарезервированные поля рассматривать не имеет смысла: если там имеется какой-то логический уровень, то это может быть элементарная наводка при подключении шин для коммутации с ядром, при этом на работу это никак влиять не может.
Lampadov писал(а):
Python писал(а):
В "Таблица 364 – Регистр UARTLCR_H" указано примечание: "Резерв. Не модифицируйте. При чтении выдаются нули." - я так понимаю, что просто надо писать нули, потому что узнать, какое там значение, всё-равно невозможно?
Обратите, пожалуйста, внимание, что писать в данные биты регистра UARTLCR_H вовсе не нужно, они физически никак не коммутируют с блоком внутри микроконтроллера. Обращайтесь, пожалуйста, исключительно к доступным для модификации полям регистра.
Считаю такое трактование зарезервированных битовых полей не корректным.

Во-первых, раз они зарезервированы, значит предполагается их использование в будущем, а значит относиться произвольно к их содержимому нельзя. Документация, в частности первоисточник говорят максимально лаконично и точно "Не модифицируйте", то есть требуют использовать операцию чтение-модификация-запись.

Во-вторых, "писать в данные биты регистра ... вовсе не нужно" - это просто не возможно, так как это операция записи по шине, и не возможно указать какие биты изменять, а какие нет. Если Вы, Lampadov, подразумевали, что в резервные биты не нужно писать именно лог. 1, а нужно писать лог. 0, то см. первый пункт - разработчик оставляет за собой возможность в будущем придать функциональность резервным битам и их модификация таким программным обеспечением будет являться некорректной.

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

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


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

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 544
Здравствуйте. В новой версии спецификации (3.21.1) раздел Bookmarks (дерево заголовков PDF документа) исчез.


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

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 448
Организация: АО «ПКК Миландр»
Откуда: Зеленоград
редактор писал(а): *
Здравствуйте. В новой версии спецификации (3.21.1) раздел Bookmarks (дерево заголовков PDF документа) исчез.
Здравствуйте!

Обратите, пожалуйста, внимание, что о проблеме было известно заранее, она была оперативно исправлена в версии спецификации на семейство микроконтроллеров 1986ВЕ9х 3.22.0 от 04.08.2021, на сегодняшний же день актуальна версия 3.23.0 от 09.09.2021 со всеми изменениями согласно разделу "Лист регистрации изменений", представленном в конце документа. Спасибо за обращение.

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


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

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 544
Спасибо за ответ.
Ваша ссылка ведет на страницу с документацией для МК 1986ВЕ92У.
Я же сегодня скачивал документацию со страницы для 1986ВЕ91Т. Там прикреплена версия 3.21.1 от 22.07.2021.


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

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 448
Организация: АО «ПКК Миландр»
Откуда: Зеленоград
редактор писал(а): *
Спасибо за ответ.
Ваша ссылка ведет на страницу с документацией для МК 1986ВЕ92У.
Я же сегодня скачивал документацию со страницы для 1986ВЕ91Т. Там прикреплена версия 3.21.1 от 22.07.2021.
Большое спасибо за информацию! База была оперативно обновлена, поэтому сейчас Вы можете произвести загрузку актуальной версии спецификации на семейство микроконтроллеров 1986ВЕ9х со страницы микросхемы 1986ВЕ91Т.

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


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

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


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

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


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

Перейти: 

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