Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


Программирование сигнального процессора L502

Вы не вошли.

 Поиск | Регистрация | Вход 

Шелковников Захар
24.05.2013 15:33:07
#1

Гость

Программирование сигнального процессора L502

Здравствуйте. У меня возникла задача вывода сигнала на DOut во время сбора данных, причем этот сигнал будет зависеть только от поступающих данных (AIN). Для повышения быстродействия я хочу производить обработку данных с AIN и выдачу сигнала на DOut только средствами сигнального процессора, ПК будет осуществлять только конфигурирование модуля и запуск/останов сбора данных.
В результате модификации стандартной демонстрационной прошивки l502-bf от LCARD
я дополняю функцию usr_in_proc_data из модуля l502_user_process.c:

uint32_t dout_data = 0;
...
uint32_t usr_in_proc_data(uint32_t* data, uint32_t size)
{
...
dout_data ^= 1;                                         if (sport_tx_req_rdy())
{                                        sport_tx_start_req(&dout_data, 1);                                       
}
...
}
Тем самым я хочу получить некий прямоугольный сигнал на DO1, но это решение почему-то не работает.
Подскажите, пожалуйста, что я делаю не так?

24.05.2013 16:50:38
#2

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,338

Re: Программирование сигнального процессора L502

Здравствуйте.

Во-первых, следует сказать, что для вывода есть два режима: асинхронный и синхронный.

Для вывода одиночных отсчетов, как у Вас в примере, скорее подходит асинхронный вывод — для этого можно воспользоваться функцией async_dac_out(value, 0) (определена в l502_async.h).

Синхронный вывод нужен для вывода массива, чтобы сформировать диаграмму с жестко заданными временными параметрами. В этом режиме как раз используется sport_tx_start_req(). Но тут есть особенность, что он запускает передачу, а по ее завершении вызовется sport_tx_done() и до этого менять данные в массиве нельзя. Также, если честно, я не проверял синхронный вывод при многократном запуске на малый размер (1 как у Вас), так как все же для этого больше подходит асинхронный вывод... Но это можно будет проверить...

А что подразумевается под не работает? Состояние выхода вообще ни разу не изменяется?

Шелковников Захар
27.05.2013 07:18:13
#3

Гость

Re: Программирование сигнального процессора L502

Спасибо за помощь, работают оба варианта - для синхронного и асинхронного вывода.
Оказывается, у меня проблема была в схеме подключения DOut: после пайки вышел из строя резистор.

27.05.2013 11:00:05
#4

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,338

Re: Программирование сигнального процессора L502

Не за что) Если что - обращайтесь!