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


E14-440 DSP

Вы не вошли.

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

Боков Антон
04.05.2010 22:38:58
#1

Гость

E14-440 DSP

Здравствуйте. Осваиваю модуль Е440, его ДСП. В руководстве программиста, «приложение В», указано как перевести файл после линковщика в формат BIO после ld21.exe. Но я использую VisualDSP. После компиляции на выходе формат файла *.dxe . Как его конвертировать в *.BIO ?

05.05.2010 13:07:50
#2

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

Re: E14-440 DSP

Попробуйте посмотреть http://www.lcard.ru/forumthreads/1636

Боков Антон
05.05.2010 19:46:47
#3

Гость

Re: E14-440 DSP

Спасибо. Действительно, входящая в пакет VDSP 3.0 утилита elf2adsp.exe преобразует *.dxe в формат exe, который уже потом можно перегнать в bio.

Боков Антон
06.05.2010 17:39:04
#4

Гость

Re: E14-440 DSP

Хотелось бы уточнить пункт 2.4.7. руководства. В пункте сказано о возможности использовать штатную readData()...1) как атмега узнает размеры буфера FIFO ацп? Или его расположение жестко заданы? 2) Дергаем флаг PF1, из какой половины произойдет чтение? 3) Что указывает на то, что атмега закончила пересылку половинки fifo?

06.05.2010 19:04:43
#5

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

Re: E14-440 DSP

1. //'как атмега узнает размеры буфера FIFO ацп?//'
Никак. Функция ReadData() задаёт только общее кол-во данных, которое следует истребовать с модуля. Какими именно порциями эти данные будут передаваться в РС на этом уровне не нормируется.
2. //'Или его расположение жестко заданы?//'
На уровне штатного LBIOS начало FIFO буфера АЦП задано жёстко. Но в своих разработках его вполне можно задавать произвольным образом. Тогда эту информацию следует передавать  в модуль на уровне запроса V_START_ADC (см. п.2.2.2.5 руководства программиста).
3. //'Дергаем флаг PF1, из какой половины произойдет чтение?//'
В модуле реализован простой подход. После запуска потоковой работы АЦП (запрос V_START_ADC) по первому прерыванию от DSP (//'дерганье//' флага PF1) в РС передаётся первая половинка FIFO. После прихода второго прерывания от DSP  - вторая половинка FIFO. После третьего прерывания от DSP  - опять первая половинка FIFO. И т.д. по циклу.
4. //'Что указывает на то, что атмега закончила пересылку половинки fifo?//'
Ничто. А кого следовало бы проинформировать о завершении передачи очередной половинки FIFO буфера?

Боков Антон
07.05.2010 21:05:14
#6

Гость

Re: E14-440 DSP

Правильно, ли  я понял. 1) Я должен определить в памяти данных дсп буфер, длинной Length, с начального адреса Adr1. 2) Со стороны PC должен послать запрос v_start_adc. В нем указать InBuf[2]=Adr1; InBuf[3]=Length/2          Это и есть данные для AVR, с какого адреса и сколько читать. 3) Осуществить посылку DOIC_RESET_PIPE3….4) Теперь все подготовлено …….…...и вот только теперь можно  «дернуть» PF1.  Содержимое в нашем случае первой половинный буфера можно считать штатной функцией ReadData. Причем NamberofWordToPass это и есть половина Length…..В буфере структуры IO_Request_Lusbapi будет наши данные из ДСП……Я правильно понял алгоритм ?.

11.05.2010 08:48:11
#7

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

Re: E14-440 DSP

1. Запрос DIOC_RESET_PIPE3 следует вызывать до запуска АЦП, т.е. до выполнения запроса V_START_ADC.
2. NumberOfWordsToPass не обязательно должна быть равна половине FIFO буфера DSP. Но величину NumberOfWordsToPass следует выбирать так, чтобы интервал между последовательными вызовами функции ReadData() был бы не меньше 20-30-40 мс.