Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 08.02.2010, 23:51  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

Так такая задача, в общем-то.

Здесь наложилось несколько факторов. Во-первых это резануто из реального сигнала. Это сигнал амплитудой 200мВ в условиях помех и т.п. Во-вторых, в самой записи - несколько тысяч периодов частоты запомнено. А я растянул. То есть имеют место искажения дискретизации самого осциллографа. Частота 1200 при частоте сэмплирования 28800 - 24 ступеньки. На четверть периода - 6. Получается вполне прилично. Для 2200 всего 3. Понятно, что качество не супер.
Видно, что фильтра искажают сигнал по амплитуде и при переходе с частоты на частоту. Тем не менее, видно как фаза перетекает.

Это реальная система, а не протеус. Поэтому чему удивлятся? Я при восстановлении сигнала работаю с сигналом на 1/3 превышающим помеховый сигнал. При этом сигнал совершенно фантастической формы. Входной размах сигнала 200мВ.

А то что качество - моего лучше, это я вижу по качеству восстановления сигнала. Мой восстанавливается в разы лучше.

На картинке увидите - запрос-ответ. Ответ - польский. Похоже они стандарт даже в руки не брали.

Собственно к самому методу - это отношения не имеет никакого. Качество, как я уже писал, определяется соотношением частот. Причём в любом методе. Качество фильтрации будет определятся качеством фильтра. Хороший фильтр и из прямоугольника сделает синусоиду. Правда для одной частоты.
Миниатюры:
Нажмите на изображение для увеличения
Название: xx1.GIF
Просмотров: 67
Размер:	13.1 Кб
ID:	4406   Нажмите на изображение для увеличения
Название: xx2.GIF
Просмотров: 71
Размер:	16.1 Кб
ID:	4407  
Реклама:
SasaVitebsk вне форума  
Непрочитано 09.02.2010, 00:39  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

Сообщение от SasaVitebsk Посмотреть сообщение
На картинке увидите - запрос-ответ. Ответ - польский.
Да, Ваш и правда в разы лучше. Поляки вообще выдают что то другое, даже не синусоподобное.
kison вне форума  
Непрочитано 09.02.2010, 04:01  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

Александр, надо было брать частоту семплирования 26400, тогда было бы ровно 22 точки для частоты 1200 и 12 точек для частоты 2200 и спектр сигнала значительно улучшился бы. Коррелятор на приёме тоже улучшил бы показатели (чуть-чуть).
=GM= вне форума  
Непрочитано 09.02.2010, 05:24  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

Так и было первоначально сделано, если честно.
Но плясали от восстановления. Там всё не так замечательно. Цифровые фильтра. Я несколько раз менял основную частоту кварца. Ну и плюнул. Каждый раз подбирать. Сделал общую формулу и макросы везде. Меняю тактовую - меняются все значения проекта. А он как работал так и работает. Ну таблица одна, и в связи с этим несоответствие частоты некоторое имеется. А у поляков в одном датчике вместо 2200 - 2400 видел. Ну им, по-видимому так удобнее было. 1200-2400. Плевать, что согласно документам должно быть 2200. Так что мой уход менее 1% - просто песня.
Да и в любом случае - главное не формирование, а главное восстановление сигнала.

В общем-то если бы задача стояла - красота синуса, то я бы применил какой-нибудь специализированный контроллер. Лучше конечно с DAC. Потребление значительно меньше, чем при ШИМ. Ну а если всётаки ШИМ, то ARM например. Тот же LPC2103 - 32 бита, 60МГц - 2.5$. То есть 10кгц синус будет при выводе вполне приличен. А килогерцовый - просто супер. В ATXMega имеется учетверитель на ШИМ. То есть частота ШИМ около 100МГц. И DAC есть. Очень мне нравится AT91SAM3U. На мой проект просто суперски ложится. Мало что DAC, так ещё и 32-битная математика, что позволит фильтра считать значительно лучше. На AVR, всётаки с боем. Каждый фильтр моделирую с учётом округлений. 5 порядок - фактически предел.
SasaVitebsk вне форума  
Непрочитано 09.02.2010, 14:21  
diglook
Временная регистрация
 
Регистрация: 09.09.2009
Сообщений: 91
Сказал спасибо: 10
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
diglook на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

С красотой синуса разобрался - сделал паралельный ЦАП на R2R + сглаживающий конденсатор 0.1мкФ. А вот с частотой никак. Сердцем понимаю что нужно подстройка по фазе, темболее что далее нужно по условию вращать фазу на 180градусов. А вот реализация предложеная SasaVitebsk несовсем понятна. В прерывании значение таблицы пихаем на порт(от ШИМ отказался) вернувшись к посту №15 попробую перефразировать под мою частоту
Цитата:
1) Имеется частота сэмплирования (дискретизации). Если выводим быстрый ШИМ то бишь 8 бит, то частота = FPWM = FCLK/256. То есть 14745600/256 = 57600.
2) Создаём таблицу синуса. Чем больше - тем больше точность. Например с шагом 0.5 градуса. Размер 720 байт.
3) Создаём 1 прерывание по переполнению таймера. Там выводим ваш шим.
с этим понятно идем далее
57600 / 1872 = 30,769230769230769230769230769231
360 / 30,769230769230769230769230769231= 11.7 градусов
или по 0.5градусной таблице 720 / 30,769230769230769230769230769231 = 23.4 т.е из таблицы выбираем каждое 23 значение, а в определенные моменты чуть другое. Как его найти?
если я правильно понял то F_OUT_BIT1 это переменная содержащая наше ранее вычесленное число 23

ptrsin += F_OUT_BIT1; // Если выводим "1"
if(ptrsin›&sinus[VOL_SIN-1])ptrsin -= VOL_SIN; // Кольцо по синусу
dpwm = *ptrsin; // Извлечь синус
OCR1A = (uint8_t)dpwm+128;// выводим ШИМ со смещением к центру

где
#define VOL_SIN 720 // количество значений таблицы
int8_t __flash sinus[VOL_SIN];// таблица синусов
int8_t __flash static *ptrsin = sinus;//указатель на ячейку в таблице

А теперь вопросы
Цитата:
OCR1A = (uint8_t)dpwm+128;// выводим ШИМ со смещением к центру
для чего смещение к центру что это дает
и где подстройка фазы или как мы знаем куда ушли в + или в -

Расталкуйте балбесу! Выше указанные источники почитал но непонял.
diglook вне форума  
Непрочитано 09.02.2010, 15:03  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

Сообщение от diglook Посмотреть сообщение
для чего смещение к центру что это дает
У Вас DAC однополярный, а видимо выборки синуса в таблице у Александра имеют знак. Так как однополярный DAC с отрицательными значениями не справится, то нужно смещение.
Сообщение от diglook Посмотреть сообщение
и где подстройка фазы или как мы знаем куда ушли в + или в -
Нет никакой подстройки. Если не хватает точности - расширяйте разрядность накопителя фазы. Прочитайте описание проекта Ридико Л.И., я выше ссылку давал. Там метод разжеван от и до.
kison вне форума  
Непрочитано 09.02.2010, 15:32  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

1) Если вы используете ЦАП, то зачем вам привязываться к частоте сэмплирования FCLK/256? Это делаю я - для того, чтобы получить ШИМ. ШИМ 8 бит - 256 значений. И то, я могу любую частоту получить. В том числе и кратную, но тогда мне придётся синус пересчитать. То есть у меня меньше ступенек при выводе будет. Например при выводе 7 битного ШИМ - у меня частота будет в 2 раза больше, но ступенек будет 128. При экспериментировании, я пришёл к выводу, что повышение частоты сэмплирования в 2 раза, при уменьшении дискретности выводимого сигнала - даёт более худший результат.
То есть вам, это всё ни к чему.
Вам надо инициализировать таймер в режиме CTC с частотой, кратной вашей частоте. В случае, если вы выводите - только одну частоту.

2) Смещение фазы и есть само сложение. Я не корректирую дробную часть. Отсюда у меня получается ошибка формирования частоты. Для меня она не существенна.
Вы всё высчитали правильно, и таким образом ошибка будет 23/ 23.4 = 0,983. чуть меньше 2%. А ваша частота, соответственно = 1840.

Я не привязывался к вашей задаче. Я вам методику давал. Это же важнее. Если вы хотите получить частоту более точно, то кто вам мешает сделать например таблицу синуса соответствующую? Или частоту подкорректировать?

Например, если вы сделаете таблицу синуса 800, то у вас получится смещение 26. И всех делов.

Вы лучше полностью задачу огласите, тогда я смогу оценить решение, а то что-то пока не совсем понимаю.

На счёт смещения, вам правильно ответили. У меня таблица +/-. Я уже отмечал, что корректирую амплитуду, в зависимости от частоты. Чтобы более-менее выровнять размах, после фильтрации. Для корректирования значения, необходим +/- сигнал. А уж потом я его поднимаю на половину питания.

Это же всё мелочи. Вывод - занимает 1% времени процессора.
SasaVitebsk вне форума  
Непрочитано 09.02.2010, 16:30  
diglook
Временная регистрация
 
Регистрация: 09.09.2009
Сообщений: 91
Сказал спасибо: 10
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
diglook на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

Цитата:
Вы лучше полностью задачу огласите, тогда я смогу оценить решение, а то что-то пока не совсем понимаю.
Нужна синусоида 1872+-5 гц(надеюсь приемник проглотит). От ШИМ отказался - будет паралельный ЦАП R2R на 6 бит(PORTB.0 -PORTB.5), длина таблицы - лишбы нормально получилась частота, места хватает. Следующая задача , видимо в том же обработчике прерывания, разворот фазы на 180 - здесь для меня вродебы все ясно, при условии что от длинны обработчика частота не намного будет уходить. еще одно прерывание прием данных по UART здесь тоже все понятно. Основная заморока в том чтобы весь код с его ветвлениями не влиял особенно на частоту несущей 1872+-5.
diglook вне форума  
Непрочитано 09.02.2010, 17:06  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

Самое время почитать практически готовый для вас проект. Инверсию фазы сделать не просто, а очень просто - выдаёте значение из таблицы Uтаб*K, К=+1 или К=-1

Последний раз редактировалось =GM=; 09.02.2010 в 17:17.
=GM= вне форума  
Непрочитано 09.02.2010, 17:08  
diglook
Временная регистрация
 
Регистрация: 09.09.2009
Сообщений: 91
Сказал спасибо: 10
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
diglook на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

Цитата:
Инверсию фазы сделать не просто, а очень просто - выдаёте значение из таблицы Uтаб*K, К=+1 или К=-1
У меня инверсия есть. спасибо!

Последний раз редактировалось diglook; 09.02.2010 в 17:31.
diglook вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ШИМ для стартера 55mak Источники питания и свет 10 21.08.2010 18:05
переделка БП на ШИМ 2003 на одно напряжение artem_y Источники питания и свет 9 26.02.2010 23:35
не работает ШИМ в контроллере 40inD Proteus 10 11.01.2010 00:22
Управление автомобильной форсункой ШИМ сигналом, Помогите stanikstanik Автоматика и аппаратура связи 2 19.11.2009 19:27
Нужно преобразовать ШИМ в 0-10В, нагрузка 3А Xuchik Источники питания и свет 37 02.10.2009 08:24


Часовой пояс GMT +4, время: 03:59.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot