Имитация кварцевого резонатора на ардуино

us5wfv
Offline
Зарегистрирован: 09.12.2015

Доброго времени суток всем. Я радиолюбитель. Подскажите как имитировать кварц по средствам ардуино. В наличии ардуино нано. Конкретика: есть укв трансивер, частота задаться кварцами около 8 Мгц на прием и около 33 Мгц на передачу. Изготавливать синтезатор заново нет возможности, в трансивере мало места. Каждый раз перепаивать кварцы для смена частоты ужасно неудобно. Хочу заменить кварцы платой ардуино нано. Возможно ли это? Если да, то как? Благодарю за любую помощь в данном вопросе.

Клапауций 123
Offline
Зарегистрирован: 06.12.2015

плата дуино работает на частоте 16 мегагерц - откуда ты собрался взять 33 мегагерца?

us5wfv
Offline
Зарегистрирован: 09.12.2015

Клапауций 123 пишет:

плата дуино работает на частоте 16 мегагерц - откуда ты собрался взять 33 мегагерца?

пока у меня нет ответа на этот вопрос. Кварц на 8 Мгц возможно имитировать?

Клапауций 123
Offline
Зарегистрирован: 06.12.2015

us5wfv пишет:

Клапауций 123 пишет:

плата дуино работает на частоте 16 мегагерц - откуда ты собрался взять 33 мегагерца?

пока у меня нет ответа на этот вопрос. Кварц на 8 Мгц возможно имитировать?

если я тебя правильно понимаю - тебе нужен регулируемый генератор.

частоты 1 Hz..8 MHz ты сможешь генерить http://arduino.ru/forum/proekty/generator-s-reguliruemoei-chastotoi-na-arduino

16 мегагерц ты можешь взять с ноги контроллера - выше... просто нет по причине отсутствия этих частот в дуино.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Сгенерить частоту 8МГц и 32МГц одновременно может Attiny 25/45/85 или Digispark.  В их МК есть PLL синтезатор, который из внутренней тактовой делает частоту 64 МГц. И есть таймер1, который умеет тактироваться от этой частоты. Соответссно он сделает 32 Мгц. Таймер0  поделит тактовую 16Мгц пополам, будет 8 МГц. Разумеется ничего подстроить нельзя будет, т.к. следущая ступенька частот будет 16 и 4 Мгц. Если затактироваться от кварца, то эти частоты будут сравнительно точными. У меня даже есть готовый пример:

// PB0 -выход 8MHz  ;  PB1 -выход 32MHz 
int main() {
DDRB|=(1<<DDB1)|(1<<DDB0);
PLLCSR=(1<<PLLE)|(1<<PCKE);
TCCR1= (1<<CTC1)|(1<<COM1A0)|(1<<CS10); 
OCR1C=OCR0A=0;
TCCR0A=(1<<COM0A0)|(1<<WGM01);
TCCR0B=1<<CS00;
}

 

us5wfv
Offline
Зарегистрирован: 09.12.2015

dimax пишет:

Сгенерить частоту 8МГц и 32МГц одновременно может Attiny 25/45/85 или Digispark.  В их МК есть PLL синтезатор, который из внутренней тактовой делает частоту 64 МГц. И есть таймер1, который умеет тактироваться от этой частоты. Соответссно он сделает 32 Мгц. Таймер0  поделит тактовую 16Мгц пополам, будет 8 МГц. Разумеется ничего подстроить нельзя будет, т.к. следущая ступенька частот будет 16 и 4 Мгц. Если затактироваться от кварца, то эти частоты будут сравнительно точными. У меня даже есть готовый пример:

// PB0 -выход 8MHz  ;  PB1 -выход 32MHz 
int main() {
DDRB|=(1<<DDB1)|(1<<DDB0);
PLLCSR=(1<<PLLE)|(1<<PCKE);
TCCR1= (1<<CTC1)|(1<<COM1A0)|(1<<CS10); 
OCR1C=OCR0A=0;
TCCR0A=(1<<COM0A0)|(1<<WGM01);
TCCR0B=1<<CS00;
}

 

Спасибо за информацию, к сожалению нужен вариант с возможностью программной подстройки 33 и 8 Мгц в пределах +/- 500 Кгц с шагом  25 Кгц.

us5wfv
Offline
Зарегистрирован: 09.12.2015

Клапауций 123 пишет:

us5wfv пишет:

Клапауций 123 пишет:

плата дуино работает на частоте 16 мегагерц - откуда ты собрался взять 33 мегагерца?

пока у меня нет ответа на этот вопрос. Кварц на 8 Мгц возможно имитировать?

если я тебя правильно понимаю - тебе нужен регулируемый генератор.

частоты 1 Hz..8 MHz ты сможешь генерить http://arduino.ru/forum/proekty/generator-s-reguliruemoei-chastotoi-na-arduino

16 мегагерц ты можешь взять с ноги контроллера - выше... просто нет по причине отсутствия этих частот в дуино.

Попробовал, генератор работает. 8 Мгц маловато...
Попробую DDS AD9850. Выглядит как готовое решение проблемы.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

us5wfv, можно тактовую подстроить регистром OSCCAL, но пологаю, что шаг подстройки будет гораздо выше.  Я  менял этим регистром тактовую частоту от 5 до 30 МГц, так что можно представить какой будет шаг, если градаций всего 255.  А уж подстраивать отдельно 8 и 32 Мгц -принципиально невозможно на данных МК. Так что собирайте специализированный синтезатор частоты. :)

Alex_Sk
Offline
Зарегистрирован: 06.01.2015

Есть же простая схема удвоения частоты на логических элементах. Две таких схемы последовательно дадут учетверение и т.д.

Шаг изменения частоты приведеного выше генератора 1Гц...8МГц при этом изменится в число умножения, т.е. при учетерении будет 4Гц что с большим запасом укладывается в требования.

Там где найдется место для платы Нано наверняка найдется и место под пару корпуса логики и несколько конденсаторов для умножителя.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Alex_Sk, если вы про мой "регулируемый генератор" то у него шаг 1 Гц только до частоты 2800Гц. Потом шаг быстро увеличивается, последний шаг перед 8МГц  аж 4 МГц. Так что товарищу только DDS синтезатор подойдёт, и то, не факт что у стандартного модуля для ардуино не придётся что-то дорабатывать..