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

 
 
> Проблема конфигурирования PLL в rvmdk(keil) SAM64, какое-то колдовство
SpiritDance
сообщение Jul 18 2006, 08:17
Сообщение #1


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Обнаружилась проблема.
Как известно конфинурирование PMC и тактовой частоты в keil происходит в файле SAM7.s

Исходный кварц 16.0 Мгц
Задаю
PLL divider 10
PLL multiplier 60
PLL clock frequency range 80..160Мгц
Clock source selection PLL clock
Prescaler 2
И ожидаю получить ровно 48000000 Гц, а получаю 48800000. blink.gif (Смотрю через окно peripherals->PMC) Убейте не понимаю как при этом работает USART пусть даже на 9600.

Раньше думал что это глюк эмулятора, теперь убедился что это не так.
Как это отловилось. Надо было выдать 16 Мгц с помощью PWM.
MCK в качестве тактовой, период 3, период скважности 2 - получаем 16Мгц
Пишем вот такой код
Код
void set_PWM0(void)
{
    /* ïîäêëþ÷àåì ê PWM ñèñòåìíóþ ÷àñòîòó è âêëþ÷àåì âûâîä */
    AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << AT91C_ID_PWMC);
    AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA, 0, AT91C_PA23_PWM0);

    /* âûáèðàåì èñòî÷íèê òàêòèðîâàíèÿ è leftAligment+íóëåâàÿ ïîëÿðíîñòü */
    AT91C_BASE_PWMC_CH0->PWMC_CMR = AT91C_PWMC_CPRE_MCK;
    AT91C_BASE_PWMC_CH1->PWMC_CMR = AT91C_PWMC_CPRE_MCK;
    AT91C_BASE_PWMC_CH2->PWMC_CMR = AT91C_PWMC_CPRE_MCK;
    AT91C_BASE_PWMC_CH3->PWMC_CMR = AT91C_PWMC_CPRE_MCK;

    /* êîíôèãóðèðóåì ïåðèîä øèìà è ñâàæíîñòü */
    AT91C_BASE_PWMC_CH0->PWMC_CPRDR = 3;
    AT91C_BASE_PWMC_CH0->PWMC_CDTYR = 2;
    AT91C_BASE_PWMC_CH1->PWMC_CPRDR = 3;
    AT91C_BASE_PWMC_CH1->PWMC_CDTYR = 2;
    AT91C_BASE_PWMC_CH2->PWMC_CPRDR = 3;
    AT91C_BASE_PWMC_CH2->PWMC_CDTYR = 2;
    AT91C_BASE_PWMC_CH3->PWMC_CPRDR = 3;
    AT91C_BASE_PWMC_CH3->PWMC_CDTYR = 2;
    
    /* âêëþ÷àåì pwm0 */
    AT91C_BASE_PWMC->PWMC_IER = AT91C_PWMC_CHID0;
    AT91C_BASE_PWMC->PWMC_ENA = AT91C_PWMC_CHID0;
}

Запускаем прошивку сгенерированную IARом с проверенным иницилизационным кодом с такимиже коэффициентами. Лезем цифровым осциллографом. Получаем частоту 15.99999. Вполне годится.

Далее запускаем прошивку сгенерированную в keil. Получаем частоту 16.2665 что дает нам частоту MCK равную 48.7995. чтд.

Вопрос: какого чОрта?
Если кто работает с САМ под кейл отзовитесь. Если не испытывали проблем киньте пожалуста файл SAM7.s на почту или сюда.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post



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

 


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


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