Jump to content

    

Вопросы новичка

У TMS320F28xx два канала АЦП нужны для оцифровки квадратурного сигнала от синус-косинусных датчиков. АЦП один, но схем УВХ две и срабатывают они одновременно, делая выборку двух сигналов синхронно.

Share this post


Link to post
Share on other sites

Спасибо за ответ. Да, я где то видел у них схему оцифровки сельсинов. Забыл). Скоро микросхемы с программатором должны подойти, попробую.

Share this post


Link to post
Share on other sites

Почему в младших Piccolo (например TMS320F28035) нет DMA? Казалось бы чипы заточены для работы с АЦП и ШИМ. Например массив для АЦП заполнять, или массив синуса на ШИМ. Или как то там по другому все красиво делается?)

Share this post


Link to post
Share on other sites

А чем Вас прерывания не устраивают?

Share this post


Link to post
Share on other sites
1 час назад, my504 сказал:

А чем Вас прерывания не устраивают?

Может тем, что прерывания на DSP - это жёсткая жесть?  :wink:

Share this post


Link to post
Share on other sites

Это с какого перепуга? Вы считали затраты времени на обработчик? 

ДСП или не ДСП - это ничего не меняет. На каком основании Вы отнесите МК к классу ДСП? 

Share this post


Link to post
Share on other sites
2 часа назад, my504 сказал:

ДСП или не ДСП - это ничего не меняет. На каком основании Вы отнесите МК к классу ДСП? 

Посчитайте как-нить на досуге количество регистров в типичном DSP и подумайте - сколько времени нужно на их сохранение в стек и восстановление при прерывании.

А также почитайте про конвееры в DSP и сколько времени нужно на прерывание выполнения кода в таком конвеере.

Share this post


Link to post
Share on other sites

Вы пишите отчаянные глупости. РОНы сохраняют лишь те, которые используются в обработчике. Остальной контекст сохраняется и восстанавливается автоматически в интервале латентности. 

В задачах типичных для самых простых Пикколо нет никакой необходимости в ДМА. Скажем, для КИХ на каждый новый отсчет ДМА так вообще бессмысленен.

 

Share this post


Link to post
Share on other sites
5 минут назад, my504 сказал:

Вы пишите отчаянные глупости. РОНы сохраняют лишь те, которые используются в обработчике. Остальной контекст сохраняется и восстанавливается автоматически в интервале латентности.

Я не знаю Piccolo, но работал с другими DSP. И там требовалось большое количество регистров сохранять.

Раз знаете: сколько требуется сохранять регистров в Piccolo? Какова длительность входа/выхода в ISR? Какова стоимость прерывания/возобновления выполнения конвеера в фоновой задаче?

Сколько это всё займёт тактов в сумме?

Share this post


Link to post
Share on other sites
7 часов назад, my504 сказал:

А чем Вас прерывания не устраивают?

Устраивает. Но лучше же с DMA например заполнить массив данными от АЦП в каком то количестве для фильтрации, а программа проверяет выставлен флаг или нет, если да то данные на обработку.

Share this post


Link to post
Share on other sites

В МК не делают длинных конвейеров, иначе любое условное ветвление становится позорно длинным. 

Типичная латентность входа у таких МК - 4...8 циклов. Выход примерно такой же. 

РОНов обычно 16, но сохраняют не более 4.

С Пикколой имел дело очень давно и подробностей не помню, но никаких проблем отсутствие ДМА не создавало. У младших чипов памяти кот наплакал... 6 К, по моему... 

Share this post


Link to post
Share on other sites

Да я не говорю, что какие то проблемы. Немного пощупал f28069, очень шустрый камень. В нем к стати DMA есть. Я хотел для проекта f28035 прикупить, в нем нет. А 69 очень много будет).

Share this post


Link to post
Share on other sites
9 minutes ago, khlenar said:

Устраивает. Но лучше же с DMA например заполнить массив данными от АЦП в каком то количестве для фильтрации, а программа проверяет выставлен флаг или нет, если да то данные на обработку.

Еще раз, потери на загрузку в прерывании ничтожны по сравнении с фильтрацией. И фильтрация может продолжаться все время накопления данных, если данные после загрузки буферизовать.

Обработчик АЦП предельно короткий. Пересылка по указателю и инкремент указателя с проверкой окончания массива. 

Ясен пень, что с ДМА удобнее, но и цена другая. 

А можно и не Техас взять. Будет еще дешевле. 

Share this post


Link to post
Share on other sites

Сейчас с CLA разбираюсь. У меня вопрос. Для работы из под флешь, там командный файл для линковщика надо переписать?. Из под ОЗУ файл с CLA есть в примерах. Подскажите пожалуйста)

2 минуты назад, my504 сказал:

Еще раз, потери на загрузку в прерывании ничтожны по сравнении с фильтрацией. И фильтрация может продолжаться все время накопления данных, если данные после загрузки буферизовать.

Обработчик АЦП предельно короткий. Пересылка по указателю и инкремент указателя с проверкой окончания массива. 

ОК.

Share this post


Link to post
Share on other sites
5 часов назад, my504 сказал:

В МК не делают длинных конвейеров, иначе любое условное ветвление становится позорно длинным. 

МК тут при чём??? Поднимите глаза и посмотрите в каком разделе находитесь.

Цитата

Типичная латентность входа у таких МК - 4...8 циклов. Выход примерно такой же. 

РОНов обычно 16, но сохраняют не более 4.

Вы точно понимаете о чём идёт речь? Речь идёт не об ARM и не о AVR. Про ARM я прекрасно знаю сколько там регистров.

И даже на ARM-е не 4...8 тактов, а в разы больше.

А в DSP (те с которыми я имел дело) затраты на прерывания - ещё в разы больше чем в ARM. Для некоторых производители даже рекомендуют вообще запрещать прерывания при сложных вычислениях чтобы не сбивать конвеер.

Цитата

С Пикколой имел дело очень давно и подробностей не помню, но никаких проблем отсутствие ДМА не создавало. У младших чипов памяти кот наплакал... 6 К, по моему... 

Ну да, если не считать того, что вместо пересылки одного слова по DMA, потребуется переслать туда/сюда десятки (а может и сотни) слов.

5 часов назад, my504 сказал:

Еще раз, потери на загрузку в прерывании ничтожны по сравнении с фильтрацией.

Вы же не знаете этого ядра! На каком основании тогда утверждаете?

Или может расскажете как производится вход/выход в прерывание на этом ядре и какие именно выполняются операции и какие регистры сохраняются и куда?  :russian_ru:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now