Spectrum analizator Widma (ATmega8)

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Встал на лапы
Сообщения: 128
Зарегистрирован: Вс мар 22, 2009 15:10:13

Сообщение Ilnur »

В инете нашел интересную схемку analizator widma,вот ссылка на сайт автора http://diy.elektroda.eu/?p=40,там и видео есть,можно посмотреть как работает.
(сайт на Польском языке)

Вот ссылка на видео на Youtube http://www.youtube.com/watch?v=Ecq9a97DcmI

В прикрепленном файле есть прошивка, BascomAVR

fusebits (CKOPT=0, все остальные=1)
Вложения
.rar
Плата
(94.98 КБ) 485 скачиваний
.rar
Прошивка
(21.96 КБ) 507 скачиваний
analizator.png
Принципиальная схема
(48.57 КБ) 1351 скачивание
Последний раз редактировалось Ilnur Сб дек 05, 2009 01:33:35, всего редактировалось 2 раза.
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 403
Зарегистрирован: Вс окт 12, 2008 00:19:25
Откуда: Подольск, Мос. Область

Сообщение larik »

как видно из схемы там кварц на 16 мгц, вот табличка по ней моно выставить, распечатал себе помогает иногда
галочка = 0 пустой квардратик = 1 (codevision, ponyprog)
Вложения
07_fuse_table.gif
fuse
(32.76 КБ) 1043 скачивания
Реклама
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

Одно маленькое замечание:
для avr-ок последних выпусков блокировочные конденсаторы должны быть 12-22 пФ, поэтому все равно надо глянуть DS :shock:
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 581
Зарегистрирован: Чт янв 15, 2009 18:57:12

Сообщение tom1101 »

Сам интересуюсь работой схемы, если кто может, разъясните на пальцах, как контроллер выделяет из сигнала разные частоты, зачем нужен этот фильтр, алгоритм(словами, картинки не обязательны) разложения сигнала по каналам? Насколько я понял, на одну ножку подается исходный нормализованный сигнал с одного из каналов( например правый), а на другую обработанный 2-мя фильтрами(может фильтры управляемые? хотя я не заметил схемы управления ими) и тоже нормализованный второй канал(левый?).

Мне нужен алгоритм определения уровня сигнала определенной частоты.
Здесь я по картинке насчитал аж 25 каналов...

У меня пока такие идеи:
первая: разделять сигнал аппаратными фильтрами(типа как в схеме фнч на операционниках) и подавать выделенные сигналы на входы ацп.
Разновидность этой идеи: использовать один фильтр, но управляемый, и контроллер несколько тысяч раз в секунду перенастраивает фильтр на разные частоты и измеряет ацп уровень на выходе фильтра. Но высокие частоты к этому плохо отнесутся, да и эффективность думаю будет невысокой(погрешности большие, да и сигнал должен успеть пройти фильтр до его перенастройки).
Достоинство: простота алгоритма, почти всю работу делает аппаратная часть.
Недостаток: слишком много железа, схема сложная и большая, мало каналов ацп в контроллере(устранен в варианте с перенастраиваемым фильтром).

вторая: тупо подавать сигнал на ацп а в программе подсчитывать частоту перехода сигнала через ноль или частоту смены направлений сигнала, если он однополярный(короче длительность периода или полупериода). Например для определения сигнала частотой <80гц нужно насчитать(при частоте измерений 1500гц) больше 18 периодов сигнала. А уровень сигнала этой частоты определять из среднеарифметического этих 18(или больше) измерений.
Достоинство: минимум железа, простота схемы.
Недостаток: большая вычислительная нагрузка, большой алгоритм, нужно много памяти для хранения измерений, для сигналов высокой частоты нужен мощный контроллер.

Может есть еще какой алгоритм попроще? Мне нужно определить наличие и уровень сигнала с диапазоном от 0-30 до 0-300гц. Короче программный эквалайзер или программный фильтр...
Реклама
Эиком - электронные компоненты и радиодетали
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

tom1101 писал(а):... если кто может, разъясните на пальцах, как контроллер выделяет из сигнала разные частоты, ...
Вот здесь ("Юкио Сато. Обработка сигналов. Первое знакомство") все достаточно на пальцах.
tom1101 писал(а):...тупо подавать сигнал на ацп а в программе подсчитывать частоту перехода сигнала через ноль...
А вот из этого ничего не выйдет - если амплитуда ВЧ составляющих мала, то они могут и не привести к переходу через ноль - посмотри любую осциллограмму обычного звукового сигнала - гитара, голос, радио, что угодно. Заметнее на одной ноте, конечно.
Вот тебе кусочек из Sgt.Pepper'а, для примера:
Изображение
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 581
Зарегистрирован: Чт янв 15, 2009 18:57:12

Сообщение tom1101 »

Спасибо за книжку, для себя нашел программный полосовой фильтр - частный случай разложения Фурье но только для одной частоты. По описаниям работает быстро. Сижу, отлаживаю.
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

FFT тоже не медленно работает - мега8 (на 16MHz) успевает и отсчеты замерить, и разложение посчитать, и вывести на дисплей одновременно осциллограмму и спектр, вот посмотри:
Elm Chan - Audio Spectrum Monitor.
Вымогатель припоя
Аватара пользователя
Сообщения: 581
Зарегистрирован: Чт янв 15, 2009 18:57:12

Сообщение tom1101 »

Видел, но я пока только пару недель с контроллерами общаюсь, так что ассемблер еще плохо знаю, и для меня проще в AlgorithmBuilder собрать с нуля алгоритм, чем пытаться выдрать его из программы в виде ассемблерного листинга.

Полосовой фильтр у меня так и не запустился(и кажется я знаю почему: я ведь еще не извлек данные из регистра adc - щас в даташите ищу его регистры), хотя вроде он довольно прост:
В начале инициализация:
sum_sin=0
sum_cos=0

Подсчет по прерываниям ADC:
sum_sin=sum_sin+signal*sin(phase*2*pi);
sum_cos=sum_cos+signal*cos(phase*2*pi);
phase=phase+freq;

После 5 измерений(некоторые делают до 32, но у меня памяти мало под таблицы синусов, косинусов и корней):
power=sqrt(sum_sin^2+sum_cos^2);
Где power-мощность сигнала "signal" на частоте freq, если я правильно понял.
У меня такие параметры: freq=80, 5 измерений до подсчета power(как я понял они перекрывают фазу в 320 градусов, что неплохо).

Вообще мои рассуждения верны? Или уже здесь я допускаю ошибку? Алгоритм пока дорабатываю. Всего понадобилось 5 синусов, 5 косинусов и 37 корней для таблиц.

А так проект такой: tiny13 вшита в мышь, принимает аудиосигнал, оцифровывает его, вычисляет (очень приближенно) power сигнала с частотой <80Hz (взрывы и выстрелы), этот power загружает в подпрограмму ШИМ, которая управляет вибродвигателем. Для мыши производительности tiny13 хватает с лихвой, тем более я уже и так в нее кучу режимов зашил, остался последний и самый совершенный из них - реакция на взрывы.
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37

Сообщение krolaka »

собрал данную схему оч порадовала :) только жаль нет дисплея с подсветкой :( а так все прекрасно)
Контактная информация:
Встал на лапы
Сообщения: 128
Зарегистрирован: Вс мар 22, 2009 15:10:13

Сообщение Ilnur »

krolaka,скинь сюда свои фотки))своей схемы :))
а ты как прошил контроллер?какие фьюзы включал?подскажи пожалуйста.я сам просто в этом деле еще новичок :lol:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37

Сообщение krolaka »

Прошывал програматором на COM порт програматор uniprof фюзы поставил только cksel0-3 1111 :) вчера потестировал оказалось чо он работает не очень коректно а именно схема на операционнике :( фотки не скину потому что фотик сломался на днях :(
Контактная информация:
Встал на лапы
Сообщения: 128
Зарегистрирован: Вс мар 22, 2009 15:10:13

Сообщение Ilnur »

в смысле как это не коректно?не в такт музыки чтоли прыгает?а дисплей у тебя какой?
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37

Сообщение krolaka »

ну там с 700 до 1000 грц идет затухание и оно не оч красиво потом выглядит :( дисплей 16х2 без подсветки по 1 $ набрал 4 шт других нет а те что есть подсветкой то стоят космически дорого :( но думю если все по схеме правильно собрать то будет работать все нормально просто у меня не все номиналы идельно как на схеме и ОУ не тот я 2 шт lm358 ставил :)
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 363
Зарегистрирован: Сб сен 20, 2008 14:59:28

Сообщение ChipManyak »

Общий привет.
Собрал сей девайс на макетке. Насколько я понял этот анализатор чисто
визуальная фенька, и толку от неё не много, прикольно только.Если и есть провал по частотам, то он практически не заметен.

Есть один косяк с дисплеями.

Поставил 16х2 от мэлта, не пашет, на дисплее тишина.Долго пытался понять где собака порылась, оказалось в дисплее.У мэлта, позже вспомнил, немного другая инициализация, а программа писалась
под буржуиские дисплеи.Внедрил от винстар и всё пошло.Может кому
поможет информация.

В BASCOM не шарю, может найдется кто вдруг, подправит исходники
под мэлт?
Радиоэлектроника, это наука о КОНТАКТАХ!
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск

Сообщение Radan »

На форуме bascomavr.3bb.ru Ведущий специалист переделал эту программу под свои нужды. Даже светомузыку сделал по этому принципу. Поспрашивайте, я думаю он поможет.
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37

Сообщение krolaka »

собрал фильтры на транзисторах кт315 несколько деталей полет лучше :))) даж понравилось) кстати дисплей c контролером sed1278 очень четко и бысто рисует полоски нет смазывания :) а вот mc1602ch медленно :? вобше бы хотел переделать под цветной дисплей от сименса s55 чтобы полоски были цветные но чтото меня берут сомнения что мк потянет прорисовку..
Контактная информация:
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

Дык надо попробовать, люди вон видео на S65 выводят, ничего успевает
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37

Сообщение krolaka »

дик я не наю бейсика :oops: а на си писать бы написал но не знаю как там по частотам делить как ето все счтается :( ну попробую рабзиратся :)
Контактная информация:
Man
Встал на лапы
Аватара пользователя
Сообщения: 83
Зарегистрирован: Чт ноя 13, 2008 19:22:03

Сообщение Man »

Сегодня выдалось свободное время собрал данный спектр анализатор.
Заработал однако токо с WINSTAR-ским дисплеем.
Вложения
P401.JPG
Фото
(198.04 КБ) 1260 скачиваний
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37

Сообщение krolaka »

ManМмм красиво вышло на макетке :) у мя хуже выглядит :oops: кстати у вас тож помоему 800гц - 1кгц уровень чуть проседает :)
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»