Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Аппаратный генератор на AVRе
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Glupen'
Вопрос принципиальный можно или нет?
Сделать регулируемый генератор (C + переменный R) на каких-либо ногах AVRа, причем чтоб в программе не было его обработчика. Т.е. один раз настроил в начале программы и забыл... он сам жужжит. Естественно генератор не основной тактовый, там кварц стоит.

З.Ы. есть одна мысль, но пока не выскажу, чтоб не сбить с толку.
SasaVitebsk
Цитата(Glupen' @ Jan 7 2009, 21:45) *
Вопрос принципиальный можно или нет?
Сделать регулируемый генератор (C + переменный R) на каких-либо ногах AVRа, причем чтоб в программе не было его обработчика. Т.е. один раз настроил в начале программы и забыл... он сам жужжит. Естественно генератор не основной тактовый, там кварц стоит.

З.Ы. есть одна мысль, но пока не выскажу, чтоб не сбить с толку.


Можно, используя таймер. Надо учесть что коэффициент деления будет целый. То есть плавной перестройки, вблизи частоты генерации не будет. Ну и, естественно, прямоугольник.

Обычно делают На основе ШИМ либо используя внешнюю микруху. На основе ШИМ частота будет значительно ниже частоты генерации.
Rst7
Цитата
Вопрос принципиальный можно или нет?


На существующих семействах (XMega пока не рассматриваем) изготовить генератор так, как это можно организовать на пичке, пользуясь наличием выхода компаратора наружу - нет. Разве что у тех камней, у которых есть дополнительный генератор для часового кварца, можно этот генератор, немного извратившись, сделать RC. Есть несколько способов - например, фазосдвигающая цепь из 3х RC цепочек или дополнительный каскад для организации банального двухэлементного RC-генератора. Правда, в первом случае не получить большой перестройки, во втором - оба вывода R будут сигнальными, тоже могут возникнуть вопросы. Но принципиально - можно.
Glupen'
Цитата(SasaVitebsk @ Jan 7 2009, 21:05) *
Можно, используя таймер. Надо учесть что коэффициент деления будет целый. То есть плавной перестройки, вблизи частоты генерации не будет. Ну и, естественно, прямоугольник.


А перестройка - ПРОГРАММНАЯ. Мне не нужна программа, мне нужно настроил и забыл, а крутить я буду переменный резистор.
Rst7
Цитата
Можно, используя таймер.


Эээ... Это как?
Glupen'
Цитата(Rst7 @ Jan 7 2009, 21:07) *
Разве что у тех камней, у которых есть дополнительный генератор для часового кварца, можно этот генератор, немного извратившись, сделать RC. Есть несколько способов - например, фазосдвигающая цепь из 3х RC цепочек или дополнительный каскад для организации банального двухэлементного RC-генератора. Правда, в первом случае не получить большой перестройки, во втором - оба вывода R будут сигнальными, тоже могут возникнуть вопросы. Но принципиально - можно.


a14.gif ЗАЧЁТ a14.gif
Именно об этом я и умолчал. smile.gif Вот тут вопросы. в даташите написано, что внутренний инвертор настроен для кварца 32768. А RC цепь поставить будет работать? Кто-нибудь делал? диапазон R и C какой? выход инвертора надо усиливать эмиттерным повторителем? А на входе там тригер Шмидта стоит?
_Pasha
Раз о стабильности генератора речи не было, то можно еще к таймеру с OCRx подпрячь OSCCAL.
zhevak
А вот встречный вопрос -- назовите одну или несколько причин почему для вашей задачи не подходит таймер 555 (КР1006ВИ1)?
Glupen'
Цитата(zhevak @ Jan 7 2009, 22:48) *
А вот встречный вопрос -- назовите одну или несколько причин почему для вашей задачи не подходит таймер 555 (КР1006ВИ1)?


лишний корпус.
VDG
0,025 см2 - это действительно очень "много", лучше поизвращаться.
haker_fox
Цитата(Rst7 @ Jan 8 2009, 02:10) *
Эээ... Это как?

Спользуя режим COMPARE? По-моему можно, загружая в OCR нужные данные. Правда диапазон частот озвучен не был, дискретность настройки - тоже.

Упс. Про обработчик внутри увидел чуть позже. Но сообщение стирать не стал biggrin.gif
Тогда лучше внешнюю микросхему применить. Интересно, а начале программы нужно настраивать генератор всегда на одну и ту же частоту, или предполагается, что частота может быть разной в зависимости от условий?
Diusha
Цитата(Glupen' @ Jan 7 2009, 20:45) *
Сделать регулируемый генератор (C + переменный R) на каких-либо ногах AVRа, причем чтоб в программе не было его обработчика.

Ну можно еще так извратиться (правда не заню, считать ли это программным обработчиком)
В подпроге периодического прерывания на таймере (скорее всего это в программе и так присутствует) тупо копировать АСО (выход компаратора) на какую-нибудь ногу. Ну и, собственно, если дискретность допустима...
А чем обработчик-то плох? ИМХО, самое правильное переменный R -> ADC -> таймер -> OCR
Glupen'
Вопрос был принципиальныйМожно или Нет?

Видимо можно, только на инверторе второго кварца. Тем самым я могу тактировать второй таймер в спящем режиме "любой" частотой, вращая R.
Maik-vs
Нога на выход - RC - вход компаратора (накрайняк просто нога на вход). Обработчик компаратора (ноги) из одной команды out pinX, RCGENPIN
slog
А конденсатор зачем? Просто переменный резистор ко входу АЦП. И значение АЦП используем для установки времени прерывания от таймера. Дальше он "сам жужжит"
rvk
Цитата(Glupen' @ Jan 7 2009, 20:45) *
Сделать регулируемый генератор (C + переменный R) на каких-либо ногах AVRа, причем чтоб в программе не было его обработчика. Т.е. один раз настроил в начале программы и забыл... он сам жужжит. Естественно генератор не основной тактовый, там кварц стоит.



Цитата(slog @ Jan 8 2009, 11:33) *
А конденсатор зачем? Просто переменный резистор ко входу АЦП. И значение АЦП используем для установки времени прерывания от таймера. Дальше он "сам жужжит"


Топик стартер сказал с самого начала, программная обработка исключена во время работы. Поэтому некому будет значение АЦП пробросить в таймер.
Glupen'
Цитата(rvk @ Jan 8 2009, 12:29) *
Топик стартер сказал с самого начала, программная обработка исключена во время работы. Поэтому некому будет значение АЦП пробросить в таймер.


... Некоторые даже понимают о чем речь... smile.gif
Petka
Цитата(Glupen' @ Jan 8 2009, 16:00) *
... Некоторые даже понимают о чем речь... smile.gif

Вот только смысл камасутры непонятен. "А можно из АВР сделать операционный усилитель? А сумматор? Только без программной обработки...."
-JonnS-
Можно попробовать включить UART в режиме синхронной передачи - мастером. Тогда на выводе Tx должен присуствовать меандр. Програмная обработка только при изменение частоты. Минус: теряем UART, и вывод Rx.
slog
Цитата(rvk @ Jan 8 2009, 12:29) *
Топик стартер сказал с самого начала, программная обработка исключена во время работы. Поэтому некому будет значение АЦП пробросить в таймер.

А-а-а.... Ну если совсем без программной обработки, так и возьмите инвертор, подключите к нему R и C и будет он жужжать.
Не понимаю я смысла в этих извращениях....
ReAl
Цитата(slog @ Jan 8 2009, 17:45) *
А-а-а.... Ну если совсем без программной обработки, так и возьмите инвертор, подключите к нему R и C и будет он жужжать.
Если таки инвертор (в смысле - не NE555, а что-то из логики), то во-первых, триггер шмитта (hc14 а не hc04), а во-вторых - корпус больше, если жёт размер, то надо брать одногейтовую логику в sot23-5.

И таки непонятно - если "совсем без прораммной обработки" - то зачем оно вообще возле микропроцессора? Что нужно-то?

Если по прерыванию от него какие-то вещи делаются, то почему не сделать его полупрограммно на том же компараторе - по прерыванию от него разряжать конденсатор RC-цепочки на его входе. Т.е. компаратор одой ногой на внутренний ИОН, другой - на RC, С на землю, R на питание или наоборот, в прерывании между необходимой работой включать вывод на выход и разряжать конденсатор.
SasaVitebsk
Цитата(Rst7 @ Jan 7 2009, 22:10) *
Эээ... Это как?

Ну автор ведь темнит немного. Если бы он сразу описал бы параметры результирующего сигнала, то тогда чётко можно было бы дать ответ.
Интересует.
1) Требуется синусоидальный выходной сигнал?
2) В каких пределах изменяется выходной сигнал?
3) Насколько плавно требуется его перестраивать? И вообще требуется ли его перестраивать?

Если исходить из поста автора топика "один раз запустил и всё", то можно просто вывести на ножку OC1A сигнал в режиме CTC.
Я говорил об этом только. В небольших пределах его можно сгладить.
zhevak
Цитата(slog @ Jan 8 2009, 20:45) *
Не понимаю я смысла в этих извращениях....

присоединяюсь

Господа, простите, за брутальность реплики. Здесь что -- "клуб извращенцев" или форум инженеров и
разработчиков?

Без хоть какого-нибудь осязаемого (пусть даже и не совсем полного) списка требований и
четкого представления о назначении прибора, изобрести что-либо полезное, мягко говоря,
не получится. Тем более с таким радиолюбительским подходом, как его увидел и правильно
сформулировал Petka -- "А можно из АВР сделать операционный усилитель?

Извините, за резкость.
Glupen'
Ох-ох-ох. Какие все инженеры и разработчики на этом форуме нежные и неизвращенные оказались.

Это был "контрольный вопрос" на знание архитектуры AVRа.

Всё, запустил регулируемый генератор на RC-вместо часового кварца без всяких внешних микросхем и с малейшими изменениями программного кода. Жужжит и регулируется прекрасно.
zhevak
Поздравляю!

Цитата(Glupen' @ Jan 9 2009, 00:13) *
Ох-ох-ох. Какие все инженеры и разработчики на этом форуме нежные и неизвращенные оказались.

По моему это Вы напрасно сказали. Одно дело собрать одно единственное изделие, которое не
повязано на получение прибыли, не связано с безопасностью и т.д., которое используешь только сам, и
совсем другое дело, когда несешь ответственность за разработку серийного изделия. Если чувствуйте
разницу, то поймете и разницу в подходе к Вашему вопросу.


Пионерская байка.
-- А я вчера супер усилитель разработал!
-- ??
-- А подал в коллектор кт315а 80 В.
-- И чо?
-- Работает!
-- Дай схемку...
Rst7
Цитата
Это был "контрольный вопрос" на знание архитектуры AVRа.


Не слишком ли Вы себе много позволяете? Разработчики тут все профессиональные, и вам все варианты были во втором посте предложены.
Glupen'
Цитата(Rst7 @ Jan 8 2009, 22:58) *
Не слишком ли Вы себе много позволяете? Разработчики тут все профессиональные, и вам все варианты были во втором посте предложены.

Был вполне конкоретный вопрос про аппаратную реализацию. Ваш ответ оказался действительно аппаратным, все остальные - программные...
За что вам отдельная благодарность. a14.gif
SasaVitebsk
Цитата(Glupen' @ Jan 9 2009, 00:08) *
все остальные - программные...

Вы немножечко не понимаете о чём говорите. Связано это с тем, что банально ленитесь почитать основной документ - даташит на используемую микросхему. При этом пытаетесь кого-то тестировать. smile.gif Того у кого спрашиваете. Кроме того нет чёткого вопроса и нет ответа на наводящие вопросы.

Если бы в первом своём посте вы написали ... использую мегу 128 / необходимо получить синус / частота от... до... / не должно быть программной нагрузки.... В этом случае последующих 10 постов просто не было бы.

Что значит программные? Ну например я один раз инициализирую таймер? Это программное решение?
domowoj
Можно и микроскопом гвозди забивать!
А зачем???
Maik-vs
Цитата(Glupen' @ Jan 8 2009, 22:13) *
Ох-ох-ох. Какие все инженеры и разработчики на этом форуме нежные и неизвращенные оказались.
Это был "контрольный вопрос" на знание архитектуры AVRа.

Так или иначе впредь воздержусь от ответов на Ваши вопросы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.