Генератор импульсов на AVR (подскажите как сделать)

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
cactuss
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Пн дек 01, 2008 16:56:19
Контактная информация:

Генератор импульсов на AVR (подскажите как сделать)

Сообщение cactuss »

Добрый день,

нужен генератор однополярных импульсов в форме половины синусоиды с пропусками периодов. нарисовал картинку и прикрепил, дабы понятно было.

хотел воспользоваться звуковой картой компа, но она больше 20 КГц не тянет, а надо хотябы 100. а лучше до 500.

подумал что легче такое сделать на МК, поэтому тему создал в этом разделе. Тем более есть целых 2 Atmega8

регулировка частоты в конечном устройстве необязательна (главное чтоб ее можно было точно задать в прошивке), то же самое с количеством пропускаемых периодов.

как такое можно реализовать? заранее спасибо :)
Вложения
P1100036C.JPG
форма импульса
(54.09 КБ) 998 скачиваний
Реклама
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение ploop »

Можно, если использовать внешний параллельный ЦАП. R-2R например.
ШИМом такую частоту не выжать.
Реклама
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение МитяРа »

cactuss писал(а):а лучше до 500.
А зачем, так много?
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
ublhjnt
Друг Кота
Сообщения: 4446
Зарегистрирован: Вт мар 02, 2010 17:05:19
Откуда: Белоруссия, Минск

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение ublhjnt »

а надо хотябы 100. а лучше до 500.

Обычно не частоту указывают при таком сигнале, а длительности имп. и паузы.
Всё можно наладить,если вертеть в руках достаточно долго!
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение ploop »

Объясню:
Если использовать МК, и делать 10 семплов на импульс, то нам надо выдавать на порт данные с частотой 1МГц. Меги8(А) могут работать до 20МГц, т.е. имеем 20 тактов на чтение и выдачу байта - вполне реально. При этом имеем частоту на выходе не более 100кГц.

Но я бы сделал такую схему на дискретных элементах: генератор синуса на ОУ, счетчик (или триггер) для пропуска чётных (нечётных) периодов, ключ. В такой реализации легко получить плавную регулировку частоты от десятков кГц до нескольких МГц, при этом имеем чистый кусок синуса (без шумов) без всяких проблем...
Реклама
cactuss
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Пн дек 01, 2008 16:56:19
Контактная информация:

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение cactuss »

не ожидал что форум работает так быстро ))

спасибо за ответы, с МК понял, нашел что такое R2R. возможно так и сделаю.

ploop, не могли бы вы дать схемку аналогового?
Реклама
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение ploop »

Готовую - нет, это я только сейчас придумал :)
Найдите отдельно генератор синуса, и аналоговый ключ (это как правило отдельная микросхема), а так же T-триггер. Надо будет придумать формирователь импульсов при переходе синуса через ноль, и спаять макет.
Нужен будет осциллограф полюбому, без него - никак.
cactuss
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Пн дек 01, 2008 16:56:19
Контактная информация:

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение cactuss »

:shock: оу. напугали...
лучше таки на МК сделать. ибо деталей кроме резисторов не надо, в отладке проблем скорее всего не возникнет.

и еще такая мысль: может использовать генератор синуса на рассыпухе, после него поставить диодный мост, чтоб получить положительные полупериоды, а считать их микроконтроллером, и им же включать-выключать подачу импульса на нагрузку с помощью какого нибудь полевика?
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение ploop »

Я про то и говорю, но тогда вместо МК справится обычный триггер. Нужно только придумать схему управления этим самым синусом (включать/выключать)

Или чисто на МК, если устроит 100кГц. Деталей меньше, настройки тоже. Программу лучше на ассемблере, там всего один цикл будет, и цикл задержки.
cactuss
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Пн дек 01, 2008 16:56:19
Контактная информация:

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение cactuss »

хмм.. понятно.

буду пробовать на МК.
ассемблер не знаю, поэтому буду пытаться писать на С. сложного вроде там ничего нет :)
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение МитяРа »

cactuss писал(а):буду пытаться писать на С. сложного вроде там ничего нет
Сложного может и ничего, но объём кода программы и быстродействие - :( :cry:
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение pyzhman »

Чего, чего?
1. Задаемся N значений.
2. Выбираем из таблицы синуса.
3. Выкидываем в порт.
4. Если не N значение, то повторяем с п.2
5. Курим.
6. Прыжок на п.1

Какой объем кода, какое быстродействие? Компилятор подставит такие машкода, ахнешь.
Приветствую МитяРа и ploop.
Docendo discimus
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение МитяРа »

Приветствую, пушистый, pyzhman..

Ты хочешь поспорить с ploop-ом, что программа на Си будет короче или хотя-бы равна, коду написанному на ASMе?
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение pyzhman »

Я хочу посмотреть, что напишет cactuss.
Docendo discimus
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение ploop »

Не, такой примитивный цикл и сёвый компилятор отлично отработает. Объём кода? Ну, блин, пару лишних слов из свободных 8 кило погоды не сделают. Пусть пишет, на чём умеет, главное - поменьше разглагольствовать.

Это мы на работе, нам можно :)))
cactuss
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Пн дек 01, 2008 16:56:19
Контактная информация:

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение cactuss »

спасибо всем за полезную информацию
сделал на attiny2313.
мега8 почему то больше 20кгц не давала.
тинька без проблем дает 60 кгц.
сигнал довольно гладкий.

схема - r2r преобразователь. резисторы 2к и 1к
код программы - наипростейший. команды типа PORTB=127; идут друг за другом. даже циклы не использовал.
значения посчитаны в экселе, там же и сгенерирован столбик всех команд. на все ушло минут 10.

картинку выхода с АЦП прикрепил.

схема крайне полезна в быту, т.к. за 100р получается генератор сигнала произвольной формы :)

UPD: добавил картинку синусоиды. почти 130кгц, сигнал довольно ровный.
Вложения
tiny2313-32step-8bit-sine.jpg
синус
(47.82 КБ) 604 скачивания
tiny2313-32step-8bit.jpg
выход с АЦП
(33 КБ) 610 скачиваний
usav
Родился
Сообщения: 9
Зарегистрирован: Вс дек 04, 2011 18:55:06
Откуда: Киев

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение usav »

А если между выходом R2R и землей подключить кондер где нибудь 1000 пик
(поиграйся разными), то и вовсе сигнал гладенький станет.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение ploop »

код программы - наипростейший. команды типа PORTB=127; идут друг за другом. даже циклы не использовал.

:)
Ну и правильно. Проблемы надо решать по мере их поступления. У вас таким макаром памяти на тиньке хватит почти на 4 формы с 8-битным разрешением.
Аватара пользователя
Aaantonnn15
Встал на лапы
Сообщения: 101
Зарегистрирован: Пт авг 20, 2010 18:31:05
Контактная информация:

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение Aaantonnn15 »

Привет всем форумчанам!Помогите немного запутовшемуся коту... Есть МК, есть ЦАП R2R, есть таблица синусов... как теперь построить таблицу значений(байтов), которые будут выводиться в порт?Как я понимаю нужно взять выход логической 1 микроконтроллера, проумножать на N колличества значений из таблицы синусов и получиться массив данных о плавном изменении напряжения. А, что потом делать ума не приложу. Поправьте если не прав!
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Генератор импульсов на AVR (подскажите как сделать)

Сообщение ploop »

нужно взять выход логической 1 микроконтроллера, проумножать на N колличества значений из таблицы

Раз пять прочёл, но не понял....

Нужно просто взять АДРЕС таблицы, достать значение, вывести в порт, подождать, увеличить адрес и начать сначала.
Закрыто

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