реклама на сайте
подробности

 
 
> контроллер AVR, АЦП, сигнал с несущей частотой 12 мегагерц, можно ли создать устройство на AVR ввода оцифрованного сигнала в КОМП?
sKWO
сообщение Apr 5 2007, 20:01
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Добрый день всем!!!
Возникла необходимость создания схемы ввода оцифрованного
сигнала с несущей 12 МГц и шириной спектра 340 КГц.
Хотелось реализовать схему на АВРовском контроллере с использованием
внешнего АЦП и на верное через ЮеСБи.
Помогите с советом!!!!
Программу хотелось бы написать на ИАР Си и при необходимости микшировать с асм.
С ув. Катюха ВО.


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Stas633
сообщение Apr 5 2007, 23:57
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 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 советую обратить внимание не на FT232Bx, а на FT232Rx - отсутствие внешних элементов + наличие внутреннего генератора, с возможностью вывода 6,12,24,48 МГц.
...кстати говоря, наверняка возможно использовать МС типа FT245xx для непосредственного ввода данных из АЦП в КОМП через USB... хотя, возможно, что я ошибаюсь..

Сообщение отредактировал Stas633 - Apr 6 2007, 00:06
Go to the top of the page
 
+Quote Post
Stas633
сообщение Apr 6 2007, 10:50
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 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 МГц.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Apr 7 2007, 02:25
Сообщение #4


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 МГц атмеге.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Stas633
сообщение Apr 7 2007, 09:11
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 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МГц мне представляется весьма затруднительным.
Я ошибаюсь?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 02:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01437 секунд с 7
ELECTRONIX ©2004-2016