Страница 1 из 2
Деление частоты внутреннего генератора
Добавлено: Вс мар 29, 2015 15:12:47
george_54
У м/к 12f629 нужно на любом выходе поочерёдно иметь частоты кратные 4 Мгц. Можно ли программно это сделать делением частоты внутреннего генератора и как?
Спасибо
Re: Деление частоты внутреннего генератора
Добавлено: Вс мар 29, 2015 15:55:52
BOB51
Можно... Но "в разумных пределах"...
Любым из понятных программисту способом.

Re: Деление частоты внутреннего генератора
Добавлено: Вс мар 29, 2015 17:44:33
pyzhman
Согласно даташиту этот мк может тактироваться до 20МГц. С учетом хитрой его организации частота составит 20/4=5Мгц. По заданию нужно формировать частоты, кратные 4МГц. Итого получаем первую частоту 4МГц, вторую надо бы 8МГц. И как?
Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 08:36:57
Vadim_vv
А слабо этот МК тактировать 16МГц?
Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 09:26:41
Pavel_1978
А разница то какая??? PLL в нем нету, работает или от внутреннего RC или внешнего генератора именно на частоте генератора.
16/4 = 4МГц максимальная частота дрыганья ногой, причем одной и МК больще ни чем заниматься не будет.
"Кратная 4МГц" - это 4, 8,12, 16 и т.д
Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 09:54:55
Vano79
Pavel_1978 писал(а):16/4 = 4МГц максимальная частота дрыганья ногой, причем одной и МК больще ни чем заниматься не будет.
А можете привести кусок кода, когда при тактовой в 16 МГц, нога дрыгает на 4 МГц?:)
Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 09:55:13
КРАМ
Частота дрыганья ногой и выходная частота на ноге отличаются в два раза.
Максимальная частота дрыганья ногой будет ограничена минимальным кодом
xor-goto, что составит ТРИ машинных цикла на фронт и шесть на период генерируемой частоты. Сиречь, для выходной частоты в 4 МГц потребуется 6*4*4=96 МГц осциллятора...

Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 09:58:07
pyzhman
Ну отчего же? Можно всю память забить ксорами, нехай крутится с 0 до упора и опять по кругу. Будет частота чаще.
Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 09:59:53
КРАМ
Забить память ксорами можно, только вот кто будет инициализировать выход и задаст первоначальную маску, уважаемый?

Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 10:12:38
Vadim_vv
Не утверждаю, но насколько помню на выполнение команды в этом МК уйдет 4 такта. Можно постараться одной ногой дрыгать 4МГц в прерывании по таймеру. Выше - не выйдет. Можно тактироваться от внутреннего генератора и сразу на клокоут выводить 4 МГц. Откуда хотите 8 МГц получить? самое простое - ставить счетчик на логике.
Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 10:16:59
pyzhman
Маска займет одну команду. После сброса порты настроены на вывод.
Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 10:20:38
Vadim_vv
pyzhman писал(а): После сброса порты настроены на вывод.
После сброса порты настроены на ВХОД!
Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 10:25:19
pyzhman
К чему такие эмоции с восклицательными знаком? Разве TRISx не сбрасываются в 0, что означает "порт на вывод"? А? Может вы попутали PIC и AVR?
Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 10:29:10
Vano79
Vadim_vv писал(а):После сброса
А сам сброс конечно не подчиняется законам квантовой физики и происходит за время равное 0.
Разве TRISx не сбрасываются в 0,
По сбросу TRISx = 1, при записи 0 - порт на выход, защелка на вывод, содержимое защелки после сброса.. нужно уточнить.
Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 10:52:05
BOB51
pyzhman писал(а): По заданию нужно формировать частоты, кратные 4МГц. Итого получаем первую частоту 4МГц, вторую надо бы 8МГц. И как?
ВВерх НИКАК... А вниз кратно 4 мегагерцам - любая желаемая при естественном ограничении на максимально возможную (учитывая удвоенную задержку от команды до вывода и собственно программный участок).

Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 11:05:28
pyzhman
Выдержка из даташита:
Register Address Power-on Reset• MCLR Reset duringnormal operation
TRISIO 85h --11 1111 --11 1111
Точно. Настраиваются на вход. Ну ничего страшного. Еще одну команду - настройка на вывод. Делов-то. Итого две команды: маска, вывод. Остальные 1022 на ксоры.
Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 12:00:23
Vano79
BOB51 писал(а):А вниз кратно 4 мегагерцам

"Вниз кратно" это как?

0,0000001 Гц например?
pyzhman писал(а):Точно. Настраиваются на вход.
Это при POR и BOD насколько я понимаю. Здесь другой тип сброса. Вот его лучше приведите в пример

Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 12:17:14
КРАМ
pyzhman писал(а):Итого две команды: маска, вывод. Остальные 1022 на ксоры.
Смотря для чего.
При определенных условиях фазовая модуляция с частотой примерно 4 кГц (и еще примерно пятью кратными частотами) будет совершенно неприемлема.
Vano79 писал(а):Это при POR и BOD насколько я понимаю. Здесь другой тип сброса
Сброс здесь будет ОДИН - по питанию. То есть "тристейт" будет ВКЛЮЧЕН. Проход счетчика команд по кругу не является сбросом.
Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 16:35:32
pyzhman
КРАМ писал(а):...фазовая модуляция...
Это уже не в ту степь, поскольку
george_54 писал(а):Можно ли программно это сделать...?
Re: Деление частоты внутреннего генератора
Добавлено: Пн мар 30, 2015 17:11:57
КРАМ
pyzhman писал(а):КРАМ писал(а):...фазовая модуляция...
Это уже не в ту степь
Это почему не в ту?
Как раз очень даже в ту.
Программные задержки без прерываний и условных переходов дают фазовый шум кварца (или RC) осциллятора.