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

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

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

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

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

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

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

 
Опции темы
Непрочитано 07.08.2008, 11:41  
zl3p
Частый гость
 
Регистрация: 09.06.2008
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
zl3p на пути к лучшему
По умолчанию можно ли получить точные генераторы НЧ на микроконтроллере?

Если нужны миниатюрные генераторы НЧ с частотами 3 - 7 кГц с погрешностью менее 1%, то можно ли их делать на базе МК AVR с внешним кварцем. Что из этого получится? Т.е. будет ли получена требуемая точность и стабильность частоты? Или лучше использовать что-то другое?
Реклама:
zl3p вне форума  
Непрочитано 07.08.2008, 13:14  
tauP10
Почётный гражданин KAZUS.RU
 
Регистрация: 26.08.2006
Сообщений: 1,405
Сказал спасибо: 1
Сказали Спасибо 89 раз(а) в 69 сообщении(ях)
tauP10 на пути к лучшему
По умолчанию

можно и даже нужно
Идеальным решением было бы использование МК + микросхема типа UDA1334BTS (спецификация во вложении)
Она содержит в себе 2 ЦАПа и выходные фильтры,
понимает 4 формата входных данных.
Их лепите по таблице в МК для синуса с целью ускорения вычислений. Для сокращения таблицы можете использовать укороченный набор и кусочно-линейную интерполяцию, если устроит несколько повышенный уровень гармоник.

Можно и проще , параллельным выходом опять же по таблице синуса через параллельный ЦАП (или резисторный даже), но потребуется фильтр на выходе. Точность частоты при желании можно получить и 0,1%

Прикрепленный файл: 1715566.pdf
tauP10 вне форума  
Непрочитано 21.08.2008, 12:58  
zl3p
Частый гость
 
Регистрация: 09.06.2008
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
zl3p на пути к лучшему
По умолчанию

Вобще я здесь имел ввиду более простой вариант: выводить сигнал непостредственно с ножки микроконтроллера. Что лучше использовать?
Например, я попытался использовать 16-разрядный таймер T/C1. Запускаю таймер (TCCR1B=0b00000001). Жду пока в счетчиках появится значение TCNT1H=0x07 TCNT1H=0xC6, и переключаю выход PD2 с 0 в 1 или с 1 в 0. При таком раскладе я должен получить 0x07C6 = 1990 = т.е. 2000 тактов. Внешний кварц 12 МHz, т.е. в 1 сек имеем 12 млн тактов. 120000000/2000=6000 - частота переключения. А частота импульсов должна быть 3000 Hz.
Так вот, реально на осциллографе я намерил период импульса 100 мкс, т.е 10 кГц. В чем ошибка?
zl3p вне форума  
Непрочитано 29.08.2008, 09:10  
lankai
Частый гость
 
Регистрация: 18.12.2007
Сообщений: 34
Сказал спасибо: 8
Сказали Спасибо 3 раз(а) в 1 сообщении
lankai на пути к лучшему
По умолчанию

Наверное просто ошибка в программе, попробуйте прогонять в Протеусе или в VMLab. Только ИМХО для вашего случая надо использовать режим СТС и какойнибудь вывод OCxx.
Удачи!
lankai вне форума  
Непрочитано 29.08.2008, 09:21  
Superki
Прописка
 
Регистрация: 08.02.2008
Сообщений: 150
Сказал спасибо: 22
Сказали Спасибо 19 раз(а) в 19 сообщении(ях)
Superki на пути к лучшему
По умолчанию

zl3p, с помощью таймеров на AVR можно сделать даже часы, которые будут идти месяцами и даже годами без ошибок.. кварц уже обеспечивает высокую стабильность частоты... то есть задача вполне осуществима с требуемой точностью...

насчет ошибки: посмотрите фьюзы, может что-то с частотой тактирования не так.. как считываете данные счетчика: сначала старшую часть или сначала младшую?
Superki вне форума  
Непрочитано 29.08.2008, 10:21  
zl3p
Частый гость
 
Регистрация: 09.06.2008
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
zl3p на пути к лучшему
По умолчанию

Сообщение от Superki
как считываете данные счетчика: сначала старшую часть или сначала младшую?
считывал сначала старший, затем младший байт, но потом надоело парить мозги над этой проблемой (невозможность одновременного считывания обоих байт), поэтому задействовал прерывания от таймера.
Но основная проблема, видимо, была в фузах, по крайней мере пересмотрел CKOPT. Сейчас вроде работает как надо.
zl3p вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как получить заданное кол-во импульсов с USB-порта sanek231081 Ремонт оргтехники 2 26.02.2009 00:29
Как получить теоретические значения dasco Электроника - это просто 7 16.12.2008 14:44
Контроллер получить web страницу. Developer_ Микроконтроллеры, АЦП, память и т.д 4 03.04.2008 13:15
как из USB получить 2UARTa? Doctor-Morro Микроконтроллеры, АЦП, память и т.д 8 29.03.2007 02:11
Как на PIC16C745 получить по USB скорость килобайт 30 в сек? Buran Микроконтроллеры, АЦП, память и т.д 1 30.11.2004 00:23


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


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