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

 
 
 
Reply to this topicStart new topic
> PLL в LM3S6432, не работает
stapleman
сообщение Dec 31 2010, 14:07
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 9-11-08
Пользователь №: 41 482



Здравствуйте.
Программирую lm3s6432. Пытаюсь запустить внутренний PLL, но он упорно отказывается запускаться. Хотя когда использую внешний кварц без PLL (BYPASS=0), то все работает.
Код, инициализирующий PLL, такой:
Код
void SYSCTL_Init (void){
    // get current value
    uint32_t rcc_buf = SYSCTL->RCC;

    // bypass the PLL and system clock divider
    rcc_buf |= SYSCTL_RCC_BYPASS;
    rcc_buf &= ~SYSCTL_RCC_USESYSDIV;
    // write new value
    SYSCTL->RCC = rcc_buf;

    // enable main osc
    rcc_buf &= ~SYSCTL_RCC_MOSCDIS;
    // write new value
    SYSCTL->RCC = rcc_buf;
    SysCtlDelay(524288);

    // select the crystal value and oscillator source
    rcc_buf &= ~(SYSCTL_RCC_XTAL_M | SYSCTL_RCC_OSCSRC_M);
    rcc_buf |= SYSCTL_RCC_XTAL_6MHZ;
    rcc_buf |= SYSCTL_RCC_OSCSRC_MAIN;
    // write new value
    SYSCTL->RCC = rcc_buf;

    SysCtlDelay(16);

    // Clear the PLL lock interrupt.
    SYSCTL->MISC |= SYSCTL_MISC_PLLLMIS;

    // power-down PLL desable
    rcc_buf &= ~SYSCTL_RCC_PWRDN;
    // select the desired system divider
    rcc_buf &= ~SYSCTL_RCC_SYSDIV_M;
    rcc_buf |= SYSCTL_RCC_SYSDIV_4;
    // enable use of the system clock divider
    rcc_buf |= SYSCTL_RCC_USESYSDIV;
    // write new value
    SYSCTL->RCC = rcc_buf;

    while (bit_is_clear(SYSCTL->RIS,SYSCTL_RIS_PLLLRIS)){}
    SYSCTL->MISC |= SYSCTL_MISC_PLLLMIS;

    // enable use of the PLL
    rcc_buf &= ~SYSCTL_RCC_BYPASS;
    // write new value
    SYSCTL->RCC = rcc_buf;

    SysCtlDelay(16);
}

При попытке использовать готовые функции, результат тот же.
Подскажите, пожалуйста, в чем может быть проблема.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Dec 31 2010, 16:13
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



По каким признакам вы судите, то не работает PLL?


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
stapleman
сообщение Dec 31 2010, 17:01
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 9-11-08
Пользователь №: 41 482



Цитата(DpInRock @ Dec 31 2010, 22:13) *
По каким признакам вы судите, то не работает PLL?

В функции main дергаю пином.
Если пишу rcc_buf &= ~SYSCTL_RCC_BYPASS, то нога перестает дергаеться. Контроллер перестает шиться. И приходится делать recovery "locked" chip.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Dec 31 2010, 17:25
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Соответствует ли частота дерганья частоте кварца? (Лучше для этого использовать что-то типа PWM - аппаратного пина с выходной частотой - ибо частота дерганья пина вещь очень условная)ю


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
stapleman
сообщение Dec 31 2010, 17:45
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 9-11-08
Пользователь №: 41 482



Так, проблему локализовал до LDO.
Из errata вычитал, что PLL не работает при LDO <= 2.5 В. Пробую назначить LDO равным 2.75, а он меняется на 2.56 В. При назначении 2.5, он равняется 2.3В.
Когда попробовал внешнее напряжение 2.6 В подать, то все заработало.
Теперь у меня вопрос: что происходит с внутренним LDO?
Кварец 1 мкФ повесил. Замыканий нет.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Jan 1 2011, 06:46
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Цитата
Когда попробовал внешнее напряжение 2.6 В подать

Надеюсь, что сие означает подача 2.6 на вывод VDD25 при отсоединенном пине 7?

Цитата
Пробую назначить

А это что означает?


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
stapleman
сообщение Jan 1 2011, 08:22
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 9-11-08
Пользователь №: 41 482



Цитата(DpInRock @ Jan 1 2011, 12:46) *
Надеюсь, что сие означает подача 2.6 на вывод VDD25 при отсоединенном пине 7?

Разумеется
Цитата(DpInRock @ Jan 1 2011, 12:46) *
А это что означает?

Значение напряжения LDO можно задавать програмно в диапазоне от 2.25 до 2.75 В
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Jan 1 2011, 08:51
Сообщение #8


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Тогда каков уровень пульсаций питающего напряжения? В милливольтах?


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 03:11
Рейтинг@Mail.ru


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