Перейти к содержанию
    

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, my504 сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, my504 сказал:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 minutes ago, khlenar said:

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

ОК.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Цитата

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

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

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

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

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

Цитата

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...