Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Ответить

Re: Простой высокочастотный генератор импульсов от 7 Гц до 1

Чт янв 16, 2020 17:28:02

Да действительно какая то загадка. Попробуй сбросить на по умолчанию. И потом погонять частоту по всему диапазону.

Re: Простой высокочастотный генератор импульсов от 7 Гц до 1

Пт янв 17, 2020 01:26:21

Впаял снова на 4Мгц.Работает медленно,дисплей мигает.На кнопки реагирует медленно.Но частота на выходе от кварца не меняется.Блин откуда выход тактируется.Да и камень у меня ATTINY861A не смог другой достать.Но этот вроде лучше.Если обобщить то на 20Мгц кварце все работает только частота ну если на дисплее 50Кгц то на осциллографе 51.3Кгц.И не понятно почему не реагирует на кварц.Собственное тактирование?

Добавлено after 1 hour 15 minutes 41 second:
Re: Простой высокочастотный генератор импульсов от 7 Гц до 10 МГ
Проясняется.
PLLCSR=(1<<PLLE);//Включение PLL
while ((PLLCSR & (1<<PLOCK))==0);//Ждём когда установится бит блокировки,значит PLL успешно запустилась.
PLLCSR|=(1<<PCKE);//Включается асинхронный режим и может использоватся для тактирования таймера.
Таймер 1 тактируется от PLL а он от внутреннего RC генератора,поэтому и не зависит частота от кварца и не совпадает с осциллографом.
Попробую разобраться можно ли переподключить PLL на кварц.Только не силён я в этом(((.

Re: Простой высокочастотный генератор импульсов от 7 Гц до 1

Пт янв 17, 2020 14:55:52

PLL в данном камне тактируется от встроенного RC генератора и это не переделать(что печально в плане стабильности частоты).Но можно подстроить калибровочный байт.Что я и сделал,благо исходник есть.Сначала в codevisionavr прочел заводское значение.Потом в программе переписал регистр OSCCAL уменьшенным значением.Т.к. осциллограф показывал завышенное.Не с первого раза но подобрал значение.
void main(void)
{
OSCCAL=123;// Подгоняем частоту внутреннего RC генератора.Значение завода 0x7F=127.ВСУНУЛ ВОТ ЭТУ СТРОКУ!!!!!!!!!!
#pragma optsize-
CLKPR=(1<<CLKPCE);//Разрешает изменение регистра предделителя
CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0);//деление частоты =1
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
Сильно точно не добился(частота RC меняется ступенчато) но гораздо лучше чем было.

Re: Простой высокочастотный генератор импульсов от 7 Гц до 1

Пт янв 17, 2020 22:09:42

Надо будет добавить в пункт меню калибровка частоты.
Ответить