реклама на сайте
подробности

 
 
> XMEGA E5 тактирование 8МГц от встроенного 8МГц источника
Дмитрий_Мигачев
сообщение Dec 4 2015, 05:44
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 110
Регистрация: 28-02-06
Из: Россия г. Омск
Пользователь №: 14 784



Добрый день уважаемые коллеги.
Пару дней бьюсь и ничего не получается,
Задача такая использовать встроенный генератор 8МГц для тактирования 8 МГц (По дефолту тактирование от этого генератора делится на 4).
Микроконтроллер atxmega32e5.
В интернете всех интересует как затактировать его от встроенного 32МГц генератора, что кстати у меня тоже не получается. Хотя тактирование от кварца проходит.
Начал разбирать свой старый код для atxmega8e5, там у меня была задача как тактировать от внешнего кварца, код такой:
Код
OSC.XOSCCTRL = xoscctrl_reg;
OSC.CTRL = OSC_XOSCEN_bm;
while( !( OSC.STATUS & OSC_XOSCRDY_bm ) );
OSC.PLLCTRL = pllctrl_reg;
OSC.CTRL |= OSC_PLLEN_bm;
while ( !( OSC.STATUS & OSC_PLLRDY_bm ) );
asm ("ldi r16,0xd8");
asm ("ldi r17,0x04");
asm ("out 0x34,r16");
asm ("sts 64,r17");
OSC.CTRL = OSC.CTRL & 0xFE;        //Отключение внутреннего 2 МГц генератора

На эти переменные xoscctrl_reg, pllctrl_reg не обращайте внимания они инициализированы выше в коде.
Самое, что интересное стало сейчас для меня что такой код работает, А что именно мне показалось интересным? То, что в этом коде нет записи в регистр CLK.CTRL
и по идее код на asm вроде как лишний, поскольку для изменения значения в регистре OSC не нужно записывать данные в CCP, но это я не проверял.
(возможно как раз при записи в CCP, происходит автоматическое изменение в регистре CLK.CTRL)

По аналогии я написал такой код:
Код
    OSC.CTRL |= OSC_RC8MEN_bm;
    while( !( OSC.STATUS & OSC_RC8MRDY_bm ) );
    asm ("ldi r16,0xD8");
    asm ("ldi r17,0x04");
    asm ("out 0x34,r16");
    asm ("sts 64,r17");
    CLK.CTRL = CLK_SCLKSEL_RC8M_gc;
    OSC.CTRL &= ~(1<<OSC_RC2MEN_bp);

Хотя я перепробовал очень много вариаций, и все тщетно.
При программной отладке происходит зависание в цикле, на железе зависаний нет, но частота не изменяется.
Можно конечно забить и поставить кварц, под него разведено, но так охото понять почему у меня ничего не получается.

Сообщение отредактировал Дмитрий_Мигачев - Dec 4 2015, 05:49


--------------------
Go to the top of the page
 
+Quote Post



Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 04:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.0136 секунд с 7
ELECTRONIX ©2004-2016