AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
29.10.2012, 10:12
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: Attiny13\2313 и генератор импульсов на CVAVR
Сообщение от deeman30rus
|
Из возможных вариантов я рассматривал dds генератор
|
Верной дорогой идёте, товарищ . Вам нужно сделать следующее.
1. Написать программный DDS-генератор на 114 кГц. Первоисточник смотрите здесь http://www.myplace.nu/avr/minidds/index.htm, там же зачатки теории.
2. На выходе цап поставить НЧ-фильтр с полосой пропускания от 0 до 115 кГц. Всё, что выше должно быть отфильтровано на 40 дБ или лучше.
3. После фильтра поставить компаратор, это обязательное условие. После компаратора получите искомый меандр. По моим оценкам от МК с тактовой 20 МГц можно получить частоту 140000,0006 Гц. Заметьте, не всяким частотомером можно измерить частоту с 10 значащими цифрами.
|
|
|
|
29.10.2012, 12:40
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: Attiny13\2313 и генератор импульсов на CVAVR
А зачем так сложно.
Там же, вроде в первоисточнике можно сразу получить меандр.
|
|
|
|
29.10.2012, 18:19
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: Attiny13\2313 и генератор импульсов на CVAVR
Точность не та. От ддс же можно получить 10 точных знаков.
|
|
|
|
29.10.2012, 21:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: Attiny13\2313 и генератор импульсов на CVAVR
Сообщение от =GM=
|
Точность не та. От ддс же можно получить 10 точных знаков.
|
Извините. Если у МК внутренний RC генератор, то о какой точности может идти речь?
Если кварц - то подобрать его частоту так, чтобы за полупериод 114 кГц укладывалось целое число тактов. И всё. Нафиг ЦАП, DDS. Всё равно, точнее опорного источника (кварца) не получите.
|
|
|
|
30.10.2012, 00:29
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: Attiny13\2313 и генератор импульсов на CVAVR
Давайте пойдём ещё дальше - . Берём кварц на 114 кГц и ВСЁ.
|
|
|
|
30.10.2012, 03:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: Attiny13\2313 и генератор импульсов на CVAVR
Сообщение от =GM=
|
Давайте пойдём ещё дальше -. Берём кварц на 114 кГц и ВСЁ.
|
Ну такой ещё найти надо
При стандартном кварце 11,0592 получается 114012,37 Гц.
Если брать в расчёт, что 11,0592 там не будет, подстроечной ёмкостью можно добиться нужной частоты.
|
|
|
|
30.10.2012, 10:24
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: Attiny13\2313 и генератор импульсов на CVAVR
Сообщение от =GM=
|
Точность не та. От ддс же можно получить 10 точных знаков.
|
Да точность та же, только таблица вместо sine загрузить square, у всех масивов 256 step. Или я чего не понял.
я ж про DDS http://www.myplace.nu/avr/minidds/index.htm
Последний раз редактировалось oleg110592; 30.10.2012 в 10:27.
|
|
|
|
01.11.2012, 10:29
|
|
Частый гость
Регистрация: 02.04.2009
Сообщений: 42
Сказал спасибо: 4
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Attiny13\2313 и генератор импульсов на CVAVR
Спасибо за ссылочку на ресурс, я уже сделал через обычный таймер, повесив на него кварц на 16MHz, и конфигурацией таймера1 в режиме CTC сравнение с регистром ICR1,
|
|
|
|
12.11.2012, 09:55
|
|
Частый гость
Регистрация: 02.04.2009
Сообщений: 42
Сказал спасибо: 4
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Attiny13\2313 и генератор импульсов на CVAVR
Я сделал этот генератор на tiny2313, по тз требовалось чтобы у генератора было 2 выходных сигнала(меандр) идущие в противофазе.
я решил сделать следующим образом:
конфигурация выходного порта
// Port B initialization
// Func7=In Func6=In Func5=In Func4=Out Func3=Out Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=1 State3=0 State2=T State1=T State0=T
PORTB=0x10;
DDRB=0x18;
и таймера:
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 16000,000 kHz
// Mode: CTC top=ICR1
// OC1A output: Toggle
// OC1B output: Toggle
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x50;
TCCR1B=0x19;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x46;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
посмотрел в Протеусе - всё работает, залил контроллер - сигналы идут симфазно =( не могу понять почему.
для компиляции использовал CVAVR
|
|
|
|
12.11.2012, 15:50
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: Attiny13\2313 и генератор импульсов на CVAVR
тоже делал подобное, и не смог добиться противофазных сигналов. Видно защелки порта не участвуют в процессе. Вышел из положения так: частоту посчитал в два раза выше чем нужную, включил прерывание по переполнению таймера, в прерывании ножки инвертирую принудительно.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:02.
|
|