реклама на сайте
подробности

 
 
> SignalISR() в Blackfin, флаг устанавливается медленно
sevstels
сообщение Feb 22 2010, 04:19
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



Собственно трудность заключается в медленном поднятии флага при вызове функции SignalISR().
Разместил флаги в секции "l2_var", функцию SignalISR() в секции "drivers_L1_code"
Но это не помогло решить проблему.

Принимаются блок данных по SPI, после корректного приёма заголовка должен устанвливаться флаг события. Если в коде обработчика прерывания от SPI по совпадению условий вызывается SignalISR() - то такое прерывание затягивается дольше чем принимается байт данных, в итоге весь блок портится, т к следующий байт повреждён. На фотографии красный луч показывает длительность нахождения в прерывании. Самый широкий импульс как раз и есть вызов функции SignalISR().
Если закомментировать строчку с вызовом - всё приходит в норму. Но только процесс ничего не знает о событии.




На фотографии ниже показана длительнось обработки SPI прерывания без подьёма флагов, примерно 400ns.
Вопрос - как победить неувязку? Пока не удаётся разогнать SPI даже до приемлимого уровня...



--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sevstels
сообщение Feb 23 2010, 03:40
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



В общем - победил, всё идеально "летает" на максимальном битрейте 2000000 и блоками 2048.
Между входом SPI sck DSP и выходом sck FT232 надо LPF ставить, где то с полосой 4-5мгц. Иначе вход "звенит". smile.gif Всем спасибо за помощь.


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sevstels   SignalISR() в Blackfin   Feb 22 2010, 04:19
- - blackfin   Вы или неверно изложили суть проблемы, или выбрали...   Feb 22 2010, 05:09
- - sevstels   Цитатавесь блок данных уже принят и уже сохранен в...   Feb 22 2010, 05:32
|- - blackfin   Цитата(sevstels @ Feb 22 2010, 08:32) Оче...   Feb 22 2010, 05:40
- - sevstels   Речь о scmRTOS функции: void OS::TEventFlag::Signa...   Feb 22 2010, 05:45
|- - blackfin   Цитата(sevstels @ Feb 22 2010, 08:45) Реч...   Feb 22 2010, 05:48
- - sevstels   Видимо вопрос к разработчикам scmRTOS, т к в такие...   Feb 22 2010, 05:52
- - dxp   Цитата(sevstels @ Feb 22 2010, 10:19) Соб...   Feb 22 2010, 08:15
- - sevstels   ЦитатаКакая у вас тактовая частота? На какой скоро...   Feb 22 2010, 08:38
- - sevstels   Перенёс флаги в L1. Измерил. Непосредственно сама ...   Feb 22 2010, 11:00
- - blackfin   Тоже сделал замеры при вызове макросов VDK на дост...   Feb 22 2010, 12:54
- - sevstels   Всё равно - нет в жизни счастья. Звенит тактовый с...   Feb 22 2010, 13:29
|- - blackfin   Цитата(sevstels @ Feb 22 2010, 16:29) Бло...   Feb 22 2010, 13:58
- - sevstels   Нет необходимости вообще что либо делать, кроме ка...   Feb 22 2010, 14:45
- - sevstels   дел   Feb 22 2010, 14:52


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 20:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01375 секунд с 7
ELECTRONIX ©2004-2016