|
контроллер AVR, АЦП, сигнал с несущей частотой 12 мегагерц, можно ли создать устройство на AVR ввода оцифрованного сигнала в КОМП? |
|
|
|
 |
Ответов
|
Apr 5 2007, 23:57
|

Частый гость
 
Группа: Свой
Сообщений: 105
Регистрация: 6-01-06
Пользователь №: 12 901

|
Цитата(sKWO @ Apr 5 2007, 21:01)  ...Возникла необходимость создания схемы ввода оцифрованного сигнала с несущей 12 МГц и шириной спектра 340 КГц. Хотелось реализовать схему на АВРовском контроллере с использованием внешнего АЦП и на верное через ЮеСБи. Если "взять" внешний, "быстрый", параллельный, 8-ми разрядный АЦП; 8-битный контроллер AVR (ATMegaxxx, например), с тактовой частотой 20 МГц, то максимально возможная частота дискретизации равна 6,(6)МГц, потому что: - считывание информации из порта в рабочий регистр (IN) - 1 такт; - "пересылка" данных из рабочего регистра в SRAM МК (ST) - 2 такта, итого 3-такта на "отсчет", т.е. 20/3=6,(6)МГц. Внимание!!! еще меньше, так как необходимо анализировать число сделанных очсчетов, чтобы закончить цикл измерения. Одной командой это сделать нельзя, так как при выполнении команды ST флаги НЕ МЕНЯЮТСЯ!!НО при этом!!! 1. необходима синхронная работа АЦП и МК (например тактировать АЦП резонатором МК), в противном случае необходимо предусмотреть программную "фиксацию" отсчета АЦП, что, естественно" увеличит время работы программы и снизит ЧД; 2. "ввод" (оцифровка) сигнала будет "стробоскопической", и длительность "вспышки" будет ограничена объемом ОЗУ МК (предположим, что "под" оцифровку отведено 2 кБ, тогда время "вспышки" будет равно 2048*(3/20)*10^-6=307,2мкС. 3. время "передачи" пакета данных в КОМП значительно превосходит (в разы) время анализа данных (вспышки), что на "оцифровке" исследуемого сигнала сказывается не лучшим обзазом. Поэтому, как уже было сказано - "напрямую" решение Вашей задачи весьма затруднительно. Варианты: 1. демодулировать сигнал перед оцифровкой. плюс - "снижается" исследуемая частота, минус- теряете информацию о фазе несущей. 2. вводить в схему внешнее ОЗУ и блок (узел) контроля-синхронизации АЦП-ОЗУ-МК. плюс - время вспышки может быть увеличено, за счет объема ОЗУ, но при этом "скважность" исследования останется прежней, так как время обработки полученных данных неизбежно возрастет, причем в той же пропорции. минус - усложнение конструкции (узел контроля может быть выполнен как на МС малой степени интеграции: счетчики. мультиплексоры и т.д. (об это писал Nanobyte), так и с использованием ПЛИС. ...и даже после этого Вы не сможете получить "непрерывную" "картинку" для связи AVR с КОМПом через USB советую обратить внимание не на FT232 Bx, а на FT232 Rx - отсутствие внешних элементов + наличие внутреннего генератора, с возможностью вывода 6,12,24,48 МГц. ...кстати говоря, наверняка возможно использовать МС типа FT245xx для непосредственного ввода данных из АЦП в КОМП через USB... хотя, возможно, что я ошибаюсь..
Сообщение отредактировал Stas633 - Apr 6 2007, 00:06
|
|
|
|
|
Apr 6 2007, 10:50
|

Частый гость
 
Группа: Свой
Сообщений: 105
Регистрация: 6-01-06
Пользователь №: 12 901

|
... работа над ошибками, так сказать... )) Цитата(Stas633 @ Apr 6 2007, 00:57)  ... Варианты: 1. демодулировать сигнал перед оцифровкой. .... ... неправильно.... сигнал необходимо "детектировать", а не "демодулировать", так как исследуется огибающая, а не несущая. Цитата(Stas633 @ Apr 6 2007, 00:57)  .... - считывание информации из порта в рабочий регистр (IN) - 1 такт; - "пересылка" данных из рабочего регистра в SRAM МК (ST) - 2 такта,
итого 3-такта на "отсчет", т.е. 20/3=6,(6)МГц.
Внимание!!! еще меньше, так как необходимо анализировать число сделанных очсчетов, чтобы закончить цикл измерения. Одной командой это сделать нельзя, так как при выполнении команды ST флаги НЕ МЕНЯЮТСЯ!! .... вариант программы на ASM: ; АЦП и МК работают синхронно ; для "опроса" АЦП используется порт "D" МК ; порт D "настроен" на ввод. ; для записи а ОЗУ используются регистры r26,r27 - X ; r16 - "рабочий" регистр :Adr - адрес "конца" массива данных, увеличенный на 1. Потому что для записи используется команда с преддекрементом .... nop ldi r26,AdrH ; ввод конечного адреса массива в ОЗУ ldi r27,AdrL ; M1: in r16,PinD ; "считывание" остчета - 1 такт st -X,r16 ; запись отсчета в ОЗУ - 2 такта ; определение окончания цикла заполнения ОЗУ mov r16,r26 ; 1 такт or r16,r27 ; 1 такт brne M1 ; 2 такта nop .... таким образом "длина" програмы 7 тактов, то есть ЧД будет равна 20/7=2,857 МГц, то есть при использовании "обычного" AVR возможно оцифровать сигнал с частотой не более 1,428 МГц.
|
|
|
|
|
Apr 7 2007, 02:25
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(Stas633 @ Apr 6 2007, 07:50)  вариант программы на ASM: ldi r26,AdrH ; ввод конечного адреса массива в ОЗУ ldi r27,AdrL ; M1: in r16,PinD ; "считывание" остчета - 1 такт st -X,r16 ; запись отсчета в ОЗУ - 2 такта ; определение окончания цикла заполнения ОЗУ mov r16,r26 ; 1 такт or r16,r27 ; 1 такт brne M1 ; 2 такта таким образом "длина" програмы 7 тактов, то есть ЧД будет равна 20/7=2,857 МГц, то есть при использовании "обычного" AVR возможно оцифровать сигнал с частотой не более 1,428 МГц. А как вам такой вариант? Код in r16,pind ; чтение 1-го отcчета st x+,r16 ; запись отсчета в ОЗУ in r16,pind ; чтение 2-го отcчета st x+,r16 ; запись отсчета в ОЗУ . . . . . . . . . . . in r16,pind ; чтение 2048-го отcчета st x+,r16 ; запись отсчета в ОЗУ Потом весь накопленный буфер передать в писюк для отображения. На таком принципе один товарищ соорудил осциллограф-приставку, 6667 квыборок/с. Он использовал АЦП на 28 МГц, который тактировался от МК, считывалось каждое третье преобразование. А я подумываю пойти дальше и сделать 20 Мвыборок/с на 20 МГц атмеге.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Apr 7 2007, 09:11
|

Частый гость
 
Группа: Свой
Сообщений: 105
Регистрация: 6-01-06
Пользователь №: 12 901

|
Цитата(=GM= @ Apr 7 2007, 03:25)  А как вам такой вариант? Код in r16,pind; чтение 1-го отcчета st x+,r16 ; запись отсчета в ОЗУ in r16,pind; чтение 2-го отcчета st x+,r16 ; запись отсчета в ОЗУ . . . . . . . . . . . in r16,pind; чтение 2048-го отcчета st x+,r16 ; запись отсчета в ОЗУ Потом весь накопленный буфер передать в писюк для отображения. На таком принципе один товарищ соорудил осциллограф-приставку, 6667 квыборок/с. Он использовал АЦП на 28 МГц, который тактировался от МК, считывалось каждое третье преобразование. А я подумываю пойти дальше и сделать 20 Мвыборок/с на 20 МГц атмеге. Абсолютно верно! Проигрываете в объеме программы - выигрываете в скорости ! И тогда действительно частота выборок (дискретизации) 6,(6) МГц. Не хочу спрорить, но мне кажеться, что приведенное Вами решение САМОЕ быстрое. Менее 3-х тактов работы CLOCK генератора на один отсчет не получить. Поэтому "довести" част.выб. до 20MSPS при частоте CLOCK МК в 20МГц мне представляется весьма затруднительным. Я ошибаюсь?
|
|
|
|
Сообщений в этой теме
sKWO контроллер AVR, АЦП, сигнал с несущей частотой 12 мегагерц Apr 5 2007, 20:01 Nanobyte Цитата(sKWO @ Apr 5 2007, 20:01) Возникла... Apr 5 2007, 20:49 sKWO бит восемь наверное хватит!!
Цитата(sKWO ... Apr 5 2007, 21:15 mse Цитата(Nanobyte @ Apr 5 2007, 21:49) Напр... Apr 6 2007, 09:42 zorromen Я чета недопер... это типа АМ модуляцию вы имеете ... Apr 5 2007, 21:22 Robot_Bender Цитата(zorromen @ Apr 5 2007, 22:22) Я че... Apr 5 2007, 21:28 rezident Впрямую 12МГц сигнал на AVR??? Вы издеваетесь чт... Apr 5 2007, 21:51 sKWO Цитата(rezident @ Apr 5 2007, 21:51) rezi... Apr 5 2007, 22:19  rezident Цитата(sKWO @ Apr 6 2007, 01:19) нужно ли... Apr 5 2007, 22:27  Nanobyte Цитата(sKWO @ Apr 5 2007, 23:11) ... нужн... Apr 5 2007, 22:27  NVade Цитата(sKWO @ Apr 6 2007, 01:19) нужно ли... Apr 6 2007, 10:51   Nanobyte Цитата(NVade @ Apr 6 2007, 11:51) Если си... Apr 6 2007, 12:41 bodja74 2sKWO
Ка Вы думаете почему теорема Котельникова н... Apr 5 2007, 22:33 sKWO Цитата(bodja74 @ Apr 5 2007, 22:33) Спаси... Apr 5 2007, 22:59    =GM= Цитата(Stas633 @ Apr 7 2007, 06:11) Абсол... Apr 7 2007, 20:02     Stas633 Цитата(=GM= @ Apr 7 2007, 21:02) ...
Прои... Apr 7 2007, 22:35      =GM= Цитата(Stas633 @ Apr 7 2007, 19:35) Снова... Apr 7 2007, 23:47       Stas633 Цитата(=GM= @ Apr 8 2007, 00:47) Никакого... Apr 8 2007, 01:59        =GM= Цитата(Stas633 @ Apr 7 2007, 22:59) Извин... Apr 8 2007, 16:37         Stas633 Цитата(=GM= @ Apr 8 2007, 17:37) Ну, это ... Apr 8 2007, 18:10          =GM= Цитата(Stas633 @ Apr 8 2007, 15:10) Тепер... Apr 8 2007, 18:37          Nanobyte Цитата(Stas633 @ Apr 8 2007, 19:10) ... Н... Apr 8 2007, 23:43           =GM= Цитата(Nanobyte @ Apr 8 2007, 20:43) Наск... Apr 9 2007, 01:22 Murk Цитатадля связи AVR с КОМПом через USB советую обр... Apr 6 2007, 02:27 Kuzmi4 Хочется и свои 5 копеек втулить - скоротной камень... Apr 6 2007, 09:38 NVade 2 Nanobyte - а можно еще почитать, что возвращает ... Apr 6 2007, 12:46 zorromen Блин люди... а как вы будете делать subsampling? Apr 6 2007, 13:38 AlexG Нужно взять устройство выборки-хранения с определе... Apr 6 2007, 13:59 zorromen Люди давайте поймем , что нам нужно ...
if ( Моду... Apr 6 2007, 15:29 SasaVitebsk Тогда уже ещё один вопрос и по теме вопроса и по т... Apr 8 2007, 02:07 Stas633 Еще одна мысль...
В связи с тем, что динамически... Apr 8 2007, 09:28 SasaVitebsk На самом деле стоимость ARMов опускается до 6... Apr 8 2007, 10:48 Stas633 Цитата(SasaVitebsk @ Apr 8 2007, 11:48) Н... Apr 8 2007, 11:47
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|