|
|
  |
Практическое использование схемы/блока захвата в 16ти разрядных таймерах AVR Mega |
|
|
|
May 26 2009, 13:40
|

Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581

|
Случайно, не об этой ли проблеме идет речь?
--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
|
|
|
|
|
May 26 2009, 13:43
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Цитата(Rst7 @ May 26 2009, 17:34)  Если Вы хотите просчитать поведение схемы перед тем, как ее создавать - то надо. Ну а так, можете конечно попробовать замерить 4 интервала и по сумме значений определить частоту... Да, спасибо, буду значит разводить плату. НЕобходим был беглый взгляд профи на "идею". Слово идея я специально взял в кавычички, ибо ровно как и термин "джиттер", оно лишь только пролетаем изредка мимо моего сознания.
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
May 26 2009, 13:50
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Случайно, не об этой ли проблеме идет речь? Если о ней - то там же цифры более вменяемые. 0.05-0.1 секунды - это уже что-то, 5-10 периодов разности частот. Корреляционный прием спасет отца русской демократии  Устроит ли топикстартера принятие решения о наличии частоты в 50кГц или 51кГц за 1мс? Если да, то можно достаточно вменяемый код корреляционного приемника сделать. Правда, придется занять SPI, один таймер и сделать внешний компаратор. PS и где-то ~512 байт флеша на таблички.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
May 26 2009, 13:58
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Цитата(Rst7 @ May 26 2009, 17:50)  Устроит ли топикстартера принятие решения о наличии частоты в 50кГц или 51кГц за 1мс? Если да, то можно достаточно вменяемый код корреляционного приемника сделать. Правда, придется занять SPI, один таймер и сделать внешний компаратор. PS и где-то ~512 байт флеша на таблички. Максимально допустимое время расчета частоты нужно считать, при этом учитывая массу факторов, которые при определенном стечении обсттоятельств, могут сложиться в одну большую... Сказал 5 периодов так как меньшее время уже совсем глупасть. SPI занят радиоканалом, с таймерами тоже не густо, зато флеши свободной больше чем у меня на диске С. Но для общего развития намекните приблизительно, как эТО делают при помощи корреляционного метода ? Спс. Пауза между измерениями допустима.
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
May 26 2009, 14:03
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата SPI занят радиоканалом В принципе SPI нужен только для разгрузки проца. Можно будет сразу по 8 бит обрабатывать. USART в режиме SPI есть? Цитата с таймерами тоже не густо Таймер нужен для генерации тактового сигнала SPI в режиме Slave (потому что в мастере есть дырки). Если использовать USART в режиме SPI, то таймер не нужен.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
May 26 2009, 14:06
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Цитата(Rst7 @ May 26 2009, 18:03)  В принципе SPI нужен только для разгрузки проца. Можно будет сразу по 8 бит обрабатывать. USART в режиме SPI есть?
Таймер нужен для генерации тактового сигнала SPI в режиме Slave (потому что в мастере есть дырки). Если использовать USART в режиме SPI, то таймер не нужен. USART в режиме SPI есть. Но у меня тут кошка рядом сидела, так она ушла...  Goodefne, думаю, что пролазят
Сообщение отредактировал Буратино - May 26 2009, 14:08
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
May 26 2009, 14:11
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Но для общего развития намекните приблизительно, как эТО делают при помощи корреляционного метода ? Спс. Общий метод таков - результат интегрирования произведения входного сигнала на искомый - суть оптимальный приемник. Правда, есть тонкость, связанная с неопределенностью фазы входного сигнала относительно искомого (опорного). Поэтому Вам нужно будет сделать 4 перемножителя - две пары на опорные меандры с частотами 50 и 51кГц. В каждой паре 2 опорных сигнала с одной частотой должны быть сдвинуты на 90 градусов относительно друг друга (обычное обозначение I и Q). После интегрирования у Вас будет 4 значения, I и Q для 51кГц и I,Q для 50кГц. Затем P51=I51^2+Q51^2 - суть мощность сигнала на частоте 51 кГц с полосой, равной 1/t, где t - время интегрирования, аналогично P50=I50^2+Q50^2 - для 50кГц. Затем сравниваете P50 и P51 между собой - кто больше, та частота и есть. Только еще надо ввести минимальный порог по мощности. В общем, звучит мрачно, но программно не сложно. Цитата USART в режиме SPI есть. Но у меня тут кошка рядом сидела, так она ушла... Ээээ?
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
May 26 2009, 14:20
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Буратино @ May 26 2009, 16:58)  Но для общего развития намекните приблизительно, как эТО делают при помощи корреляционного метода ? Спс. Пауза между измерениями допустима. Формируете табличку образцового сигнала (50 кГц) и его же, сдвинутого на 90 градусов по фазе. Если частота выборки 1.6 Мгц не вызывает возражений, то это Код SG50_sin: .db 0x00,0x00,0xff,0xff // итд до тех самых 5 периодов (т.е. это будет 20 байт)
SG50_cos: .db 0x00,0xff,0xff,0x00 // итд тоже 20 байт Далее, накапливаете отсчеты из компаратора в сдвиговый регистр (направление сдвига вправо), по заполнению буфера делаете XOR с SG50_sin и сохраняете(канал 1), и тоже самое с SG50_cos (канал 2). Прогоняете это все дальше - до конца таблиц образцовых сигналов. Потом считаете кол-во единиц в каждом канале, пусть они будут X и Y. Полученные числа - знаковые, со смещением для нашего случая 5*16 = 80 Выход фильтра AMP=(X^2 + Y^2) Если Вам надо четко отличить 50 от 51 - это таки 1 мс, и добавление такой же таблицы образцового сигнала для 51 кгц. Решение - победит тот, у которого AMP поболе Но можно оценивать поведение AMP от измерения к измерению - его дисперсию. Тогда Вам нужен порог чувствительности и критерий оценки этой самой дисперсии. В общем случае это мрачно, но в Вашем - помочь может
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|