Миландр
http://forum.milandr.ru/

1901ВЦ1Т
http://forum.milandr.ru/viewtopic.php?f=36&t=467
Страница 7 из 7

Автор:  -=Sergei=- [ 2015-ноя-09 08:54 ]
Заголовок сообщения:  Re: 1901ВЦ1Т

mws писал(а):
Кроме того, обнаружил ещё одну нехорошую вещь. В режиме слэйва опять же, когда вызывается прерывание SSP флаг SSP_FLAG_RNE очищается автоматически. Проверить статус приёмника из прерывания получается невозможно. Когда прерывание запрещено — флаг работает как надо. Это уже явное несоответствие спецификации, флаг должен быть активен пока в буфере приёмника есть хотя бы один байт. В errata этого бага не обнаружил.



Мало вероятно. Скорее всего у вас регистр данных отображается в каком либо memory view и флаг сбрасывается когда среда обновляет (считывает) этот регистр, а не программа.

Автор:  mws [ 2015-дек-15 11:08 ]
Заголовок сообщения:  Re: 1901ВЦ1Т

Да, очевидно это было из-за отладчика, переделал я протокол, получились довольно большие задержки, их можно уменьшить, если непрерывно опрашивать флаги BSY или TXE, но для систем реального времени такой поллинг не допустим.
Остался вопрос, чисто из интереса - каким образом в режиме слэйв отсчитывается таймаут? Я пробовал разогнать тактовую слэйва по отношению к мастеру, но на время таймаута это не повлияло. По тактовой от мастера это невозможно, так как таймаут срабатывает когда передача не активна, неужели слэйв каким-то образом измеряет тактовую мастера и использует это значение для отсчёта задержек?

Автор:  ElectroAlex [ 2016-апр-26 09:36 ]
Заголовок сообщения:  Re: 1901ВЦ1Т

Обнаружил.ошибку!
В таймере нет возможности установить режим захвата - биты 14 и 15 в регистре CHx_CNTRL всегда читаются как "0". При записи никакой реакции. Пробовал снижать такт таймером, непомерно. Данная ошибка происходит во всех трех таймерах.
Микросхема с маркировкой "1901ВЦ1Т 1603".

Автор:  H_h [ 2016-авг-05 13:09 ]
Заголовок сообщения:  Re: 1901ВЦ1Т

Залил программу , через jtag на 1901vc1t
0x08000000 -start
0x00020000 - size (вот такие столяи настройки в Flash Download (keil 4.7)
Так и должно быть , что программа не работает без подключенного программатора?

Автор:  wosk [ 2016-авг-05 14:50 ]
Заголовок сообщения:  Re: 1901ВЦ1Т

H_h писал(а):
Так и должно быть , что программа не работает без подключенного программатора?

Если включен semihosting, то без программатора не будет работать. Также проверьте режим загрузки MODE[]

Автор:  mouse [ 2017-фев-09 14:14 ]
Заголовок сообщения:  Re: 1901ВЦ1Т

Предполагается ли производство данной м/с в пластиковом корпусе?

Автор:  ElectroAlex [ 2018-сен-18 09:30 ]
Заголовок сообщения:  Re: 1901ВЦ1Т

Добрый день!
Возникла проблема при программирования программного сброса. Я написал usb-загрузчик для 1986ВЕ91, там все работает. Перенёс код для 1901ВЦ1. Загрузчик работает, только после прошивки необходимо сделать программный сброс. В этот момент программа улетает скорее всего в HardFault. Как можно посмотреть что я делаю неправильно?

Автор:  ElectroAlex [ 2018-сен-18 11:42 ]
Заголовок сообщения:  Re: 1901ВЦ1Т

Посмотрел в отладке выполнение кода. Функция
__STATIC_INLINE void NVIC_SystemReset(void)
{
__DSB();
SCB->AIRCR = ((0x5fa << SCB_AIRCR_VECTKEY_Pos) | (SCB->ARICR & SCB_AIRCR_PRIGROUP_Msk) | (SCB_AIRCR_SYSRESETREQ_Msk);
__DSB();
while(1);
}
висит на последнем пустом цикле и дальше не идет. Что же это может быть? Да и в режиме отладки сброс ядра тоже не работает.

Автор:  prostoRoman [ 2018-сен-24 10:59 ]
Заголовок сообщения:  Re: 1901ВЦ1Т

ElectroAlex писал(а):
Посмотрел в отладке выполнение кода. Функция
__STATIC_INLINE void NVIC_SystemReset(void)
{
__DSB();
SCB->AIRCR = ((0x5fa << SCB_AIRCR_VECTKEY_Pos) | (SCB->ARICR & SCB_AIRCR_PRIGROUP_Msk) | (SCB_AIRCR_SYSRESETREQ_Msk);
__DSB();
while(1);
}
висит на последнем пустом цикле и дальше не идет. Что же это может быть? Да и в режиме отладки сброс ядра тоже не работает.

Вспоминается, что в 1901ВЦ1Т есть кэш инструкций. Может он как-то мешает? Попробуйте вставить __ISB(); и (много) нопов перед while(1).
Само собой, глобально запретить прерывания перед вызовом NVIC_SystemReset(). Странно, что этого не делает сама NVIC_SystemReset()...

Страница 7 из 7 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/