Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 06.12.2010, 13:05  
ZED®
Частый гость
 
Регистрация: 03.08.2010
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ZED® на пути к лучшему
По умолчанию Re: Проба пера AT91SAM9260 + IAR + J-Link

Заминка с инициализацией PLL.
Написал свою функцию, вставил в код, смотрю ножку осцилографом, а частота не такая как должна быть. PLL настраивал на частоту 192 МГц, а ножка дергается с частотой 4.59 МГц. Вот мой код, что не так?
Код:
#include "at91sam9260/AT91SAM9260.h"
//------------------------------------------------------------------------------
///   Настройка PLL
//------------------------------------------------------------------------------
void Init_CLK(void)
{ unsigned int MAINF;
  // Частота медленного RC-генератора SLCK 32.768 кГц. Период 1/32768 = 30.51 мкс
  // Максимальное время запуска основоного генератора: 75 мкс
  // Время запуска основного генератора:8 * OSCOUNT(=16) * 30.51 мкс = 15.6 мс
  // Запуск основного генератора:
  AT91C_BASE_PMC-›PMC_MOR = (AT91C_CKGR_OSCOUNT & (0x40 ‹‹ 8)) | AT91C_CKGR_MOSCEN;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MOSCS));
  // Переключение блока задающей частоты на основную тактовую частоту
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_CSS_MAIN_CLK;
  
  // Настройка PLL на частоту 192 МГц:
  AT91C_BASE_PMC-›PMC_PLLAR = ( AT91C_CKGR_SRCA                  // 29 бит = 1
                              | (0x2 ‹‹ 14)                      // OUTA = 2
                              | (0xBF ‹‹ 8)                      // PLLACOUNT = 191
                              | (AT91C_CKGR_MULA & (0x7C ‹‹ 16)) // MULA = 124
                              | (AT91C_CKGR_DIVA & 12));          // DIVA = 12
  // Ждать пока пройдет время запуска:
  while(!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_LOCKA));
  // Выбор задающей частоты и тактовой частоты процессора:
  // Предделитель тактовой частоты PRES = 1, Предделитель задающей частоты MDIV = 2.
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_PRES_CLK | AT91C_PMC_MDIV_2;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
  // В качестве основной частоты использовать частоту PLL:
  AT91C_BASE_PMC-›PMC_MCKR |= AT91C_PMC_CSS_PLLA_CLK;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
}

/* Главная функция программы */
int main(void)
{  
    Init_CLK();
    
    AT91C_BASE_WDTC-›WDTC_WDMR = AT91C_WDTC_WDDIS; // Отключение сторожевого таймера
    
    enum { WORKMASK = AT91C_PIO_PB0 }; // Битовая маска, определяет каким выводом управлять
    
    AT91C_BASE_PMC-›PMC_PCER = (1UL ‹‹ AT91C_ID_PIOB); // Разрешение тактирования PIO B

    AT91C_BASE_PIOB-›PIO_PER = WORKMASK;    // Установка управления PIO выводом (отключение управления выводом переферийным устройством).
    AT91C_BASE_PIOB-›PIO_PPUER = WORKMASK;  // Разрешение подтягивающих резисторов
    AT91C_BASE_PIOB-›PIO_OER = WORKMASK;    // Установка вывада в качестве выхода
    while(1)
    {
        AT91C_BASE_PIOB-›PIO_SODR = WORKMASK; // Установка вывода в единицу
        AT91C_BASE_PIOB-›PIO_CODR = WORKMASK; // Сброс вывода в ноль
    } 
}
Реклама:
ZED® вне форума  
Непрочитано 06.12.2010, 13:06  
ZED®
Частый гость
 
Регистрация: 03.08.2010
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ZED® на пути к лучшему
По умолчанию Re: Проба пера AT91SAM9260 + IAR + J-Link

Заминка с инициализацией PLL.
Написал свою функцию, вставил в код, смотрю ножку осцилографом, а частота не такая как должна быть. PLL настраивал на частоту 192 МГц, а ножка дергается с частотой 4.59 МГц. Вот мой код, что не так?
Код:
#include "at91sam9260/AT91SAM9260.h"
//------------------------------------------------------------------------------
///   Настройка PLL
//------------------------------------------------------------------------------
void Init_CLK(void)
{ unsigned int MAINF;
  // Частота медленного RC-генератора SLCK 32.768 кГц. Период 1/32768 = 30.51 мкс
  // Максимальное время запуска основоного генератора: 75 мкс
  // Время запуска основного генератора:8 * OSCOUNT(=16) * 30.51 мкс = 15.6 мс
  // Запуск основного генератора:
  AT91C_BASE_PMC-›PMC_MOR = (AT91C_CKGR_OSCOUNT & (0x40 ‹‹ 8)) | AT91C_CKGR_MOSCEN;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MOSCS));
  // Переключение блока задающей частоты на основную тактовую частоту
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_CSS_MAIN_CLK;
  
  // Настройка PLL на частоту 192 МГц:
  AT91C_BASE_PMC-›PMC_PLLAR = ( AT91C_CKGR_SRCA                  // 29 бит = 1
                              | (0x2 ‹‹ 14)                      // OUTA = 2
                              | (0xBF ‹‹ 8)                      // PLLACOUNT = 191
                              | (AT91C_CKGR_MULA & (0x7C ‹‹ 16)) // MULA = 124
                              | (AT91C_CKGR_DIVA & 12));          // DIVA = 12
  // Ждать пока пройдет время запуска:
  while(!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_LOCKA));
  // Выбор задающей частоты и тактовой частоты процессора:
  // Предделитель тактовой частоты PRES = 1, Предделитель задающей частоты MDIV = 2.
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_PRES_CLK | AT91C_PMC_MDIV_2;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
  // В качестве основной частоты использовать частоту PLL:
  AT91C_BASE_PMC-›PMC_MCKR |= AT91C_PMC_CSS_PLLA_CLK;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
}

/* Главная функция программы */
int main(void)
{  
    Init_CLK();
    
    AT91C_BASE_WDTC-›WDTC_WDMR = AT91C_WDTC_WDDIS; // Отключение сторожевого таймера
    
    enum { WORKMASK = AT91C_PIO_PB0 }; // Битовая маска, определяет каким выводом управлять
    
    AT91C_BASE_PMC-›PMC_PCER = (1UL ‹‹ AT91C_ID_PIOB); // Разрешение тактирования PIO B

    AT91C_BASE_PIOB-›PIO_PER = WORKMASK;    // Установка управления PIO выводом (отключение управления выводом переферийным устройством).
    AT91C_BASE_PIOB-›PIO_PPUER = WORKMASK;  // Разрешение подтягивающих резисторов
    AT91C_BASE_PIOB-›PIO_OER = WORKMASK;    // Установка вывада в качестве выхода
    while(1)
    {
        AT91C_BASE_PIOB-›PIO_SODR = WORKMASK; // Установка вывода в единицу
        AT91C_BASE_PIOB-›PIO_CODR = WORKMASK; // Сброс вывода в ноль
    } 
}
ZED® вне форума  
Непрочитано 06.12.2010, 13:13  
ZED®
Частый гость
 
Регистрация: 03.08.2010
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ZED® на пути к лучшему
По умолчанию Re: Проба пера AT91SAM9260 + IAR + J-Link

Заминка с инициализацией PLL.
Написал свою функцию, вставил в код, смотрю ножку осцилографом, а частота не такая как должна быть. PLL настраивал на частоту 192 МГц, а ножка дергается с частотой 4.59 МГц. Вот мой код, что не так?
Код:
#include "at91sam9260/AT91SAM9260.h"
//------------------------------------------------------------------------------
///   Настройка PLL
//------------------------------------------------------------------------------
void Init_CLK(void)
{ unsigned int MAINF;
  // Частота медленного RC-генератора SLCK 32.768 кГц. Период 1/32768 = 30.51 мкс
  // Максимальное время запуска основоного генератора: 75 мкс
  // Время запуска основного генератора:8 * OSCOUNT(=16) * 30.51 мкс = 15.6 мс
  // Запуск основного генератора:
  AT91C_BASE_PMC-›PMC_MOR = (AT91C_CKGR_OSCOUNT & (0x40 ‹‹ 8)) | AT91C_CKGR_MOSCEN;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MOSCS));
  // Переключение блока задающей частоты на основную тактовую частоту
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_CSS_MAIN_CLK;
  
  // Настройка PLL на частоту 192 МГц:
  AT91C_BASE_PMC-›PMC_PLLAR = ( AT91C_CKGR_SRCA                  // 29 бит = 1
                              | (0x2 ‹‹ 14)                      // OUTA = 2
                              | (0xBF ‹‹ 8)                      // PLLACOUNT = 191
                              | (AT91C_CKGR_MULA & (0x7C ‹‹ 16)) // MULA = 124
                              | (AT91C_CKGR_DIVA & 12));          // DIVA = 12
  // Ждать пока пройдет время запуска:
  while(!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_LOCKA));
  // Выбор задающей частоты и тактовой частоты процессора:
  // Предделитель тактовой частоты PRES = 1, Предделитель задающей частоты MDIV = 2.
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_PRES_CLK | AT91C_PMC_MDIV_2;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
  // В качестве основной частоты использовать частоту PLL:
  AT91C_BASE_PMC-›PMC_MCKR |= AT91C_PMC_CSS_PLLA_CLK;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
}

/* Главная функция программы */
int main(void)
{  
    Init_CLK();
    
    AT91C_BASE_WDTC-›WDTC_WDMR = AT91C_WDTC_WDDIS; // Отключение сторожевого таймера
    
    enum { WORKMASK = AT91C_PIO_PB0 }; // Битовая маска, определяет каким выводом управлять
    
    AT91C_BASE_PMC-›PMC_PCER = (1UL ‹‹ AT91C_ID_PIOB); // Разрешение тактирования PIO B

    AT91C_BASE_PIOB-›PIO_PER = WORKMASK;    // Установка управления PIO выводом (отключение управления выводом переферийным устройством).
    AT91C_BASE_PIOB-›PIO_PPUER = WORKMASK;  // Разрешение подтягивающих резисторов
    AT91C_BASE_PIOB-›PIO_OER = WORKMASK;    // Установка вывада в качестве выхода
    while(1)
    {
        AT91C_BASE_PIOB-›PIO_SODR = WORKMASK; // Установка вывода в единицу
        AT91C_BASE_PIOB-›PIO_CODR = WORKMASK; // Сброс вывода в ноль
    } 
}
ZED® вне форума  
Непрочитано 06.12.2010, 13:14  
ZED®
Частый гость
 
Регистрация: 03.08.2010
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ZED® на пути к лучшему
По умолчанию Re: Проба пера AT91SAM9260 + IAR + J-Link

У меня тут заминка с инициализацией PLL.
Написал свою функцию, вставил в код, смотрю ножку осцилографом, а частота не такая как должна быть. PLL настраивал на частоту 192 МГц, а ножка дергается с частотой 4.59 МГц. Вот мой код, что не так?
Код:
#include "at91sam9260/AT91SAM9260.h"
//------------------------------------------------------------------------------
///   Настройка PLL
//------------------------------------------------------------------------------
void Init_CLK(void)
{ unsigned int MAINF;
  // Частота медленного RC-генератора SLCK 32.768 кГц. Период 1/32768 = 30.51 мкс
  // Максимальное время запуска основоного генератора: 75 мкс
  // Время запуска основного генератора:8 * OSCOUNT(=16) * 30.51 мкс = 15.6 мс
  // Запуск основного генератора:
  AT91C_BASE_PMC-›PMC_MOR = (AT91C_CKGR_OSCOUNT & (0x40 ‹‹ 8)) | AT91C_CKGR_MOSCEN;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MOSCS));
  // Переключение блока задающей частоты на основную тактовую частоту
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_CSS_MAIN_CLK;
  
  // Настройка PLL на частоту 192 МГц:
  AT91C_BASE_PMC-›PMC_PLLAR = ( AT91C_CKGR_SRCA                  // 29 бит = 1
                              | (0x2 ‹‹ 14)                      // OUTA = 2
                              | (0xBF ‹‹ 8)                      // PLLACOUNT = 191
                              | (AT91C_CKGR_MULA & (0x7C ‹‹ 16)) // MULA = 124
                              | (AT91C_CKGR_DIVA & 12));          // DIVA = 12
  // Ждать пока пройдет время запуска:
  while(!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_LOCKA));
  // Выбор задающей частоты и тактовой частоты процессора:
  // Предделитель тактовой частоты PRES = 1, Предделитель задающей частоты MDIV = 2.
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_PRES_CLK | AT91C_PMC_MDIV_2;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
  // В качестве основной частоты использовать частоту PLL:
  AT91C_BASE_PMC-›PMC_MCKR |= AT91C_PMC_CSS_PLLA_CLK;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
}

/* Главная функция программы */
int main(void)
{  
    Init_CLK();
    
    AT91C_BASE_WDTC-›WDTC_WDMR = AT91C_WDTC_WDDIS; // Отключение сторожевого таймера
    
    enum { WORKMASK = AT91C_PIO_PB0 }; // Битовая маска, определяет каким выводом управлять
    
    AT91C_BASE_PMC-›PMC_PCER = (1UL ‹‹ AT91C_ID_PIOB); // Разрешение тактирования PIO B

    AT91C_BASE_PIOB-›PIO_PER = WORKMASK;    // Установка управления PIO выводом (отключение управления выводом переферийным устройством).
    AT91C_BASE_PIOB-›PIO_PPUER = WORKMASK;  // Разрешение подтягивающих резисторов
    AT91C_BASE_PIOB-›PIO_OER = WORKMASK;    // Установка вывада в качестве выхода
    while(1)
    {
        AT91C_BASE_PIOB-›PIO_SODR = WORKMASK; // Установка вывода в единицу
        AT91C_BASE_PIOB-›PIO_CODR = WORKMASK; // Сброс вывода в ноль
    } 
}
ZED® вне форума  
Непрочитано 06.12.2010, 13:15  
ZED®
Частый гость
 
Регистрация: 03.08.2010
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ZED® на пути к лучшему
По умолчанию Re: Проба пера AT91SAM9260 + IAR + J-Link

У меня тут заминка с инициализацией PLL.
Написал свою функцию, вставил в код, смотрю ножку осцилографом, а частота не такая как должна быть. PLL настраивал на частоту 192 МГц, а ножка дергается с частотой 4.59 МГц. Вот мой код, что не так?
Код:
#include "at91sam9260/AT91SAM9260.h"
//------------------------------------------------------------------------------
///   Настройка PLL
//------------------------------------------------------------------------------
void Init_CLK(void)
{ unsigned int MAINF;
  // Частота медленного RC-генератора SLCK 32.768 кГц. Период 1/32768 = 30.51 мкс
  // Максимальное время запуска основоного генератора: 75 мкс
  // Время запуска основного генератора:8 * OSCOUNT(=16) * 30.51 мкс = 15.6 мс
  // Запуск основного генератора:
  AT91C_BASE_PMC-›PMC_MOR = (AT91C_CKGR_OSCOUNT & (0x40 ‹‹ 8)) | AT91C_CKGR_MOSCEN;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MOSCS));
  // Переключение блока задающей частоты на основную тактовую частоту
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_CSS_MAIN_CLK;
  
  // Настройка PLL на частоту 192 МГц:
  AT91C_BASE_PMC-›PMC_PLLAR = ( AT91C_CKGR_SRCA                  // 29 бит = 1
                              | (0x2 ‹‹ 14)                      // OUTA = 2
                              | (0xBF ‹‹ 8)                      // PLLACOUNT = 191
                              | (AT91C_CKGR_MULA & (0x7C ‹‹ 16)) // MULA = 124
                              | (AT91C_CKGR_DIVA & 12));          // DIVA = 12
  // Ждать пока пройдет время запуска:
  while(!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_LOCKA));
  // Выбор задающей частоты и тактовой частоты процессора:
  // Предделитель тактовой частоты PRES = 1, Предделитель задающей частоты MDIV = 2.
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_PRES_CLK | AT91C_PMC_MDIV_2;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
  // В качестве основной частоты использовать частоту PLL:
  AT91C_BASE_PMC-›PMC_MCKR |= AT91C_PMC_CSS_PLLA_CLK;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
}

/* Главная функция программы */
int main(void)
{  
    Init_CLK();
    
    AT91C_BASE_WDTC-›WDTC_WDMR = AT91C_WDTC_WDDIS; // Отключение сторожевого таймера
    
    enum { WORKMASK = AT91C_PIO_PB0 }; // Битовая маска, определяет каким выводом управлять
    
    AT91C_BASE_PMC-›PMC_PCER = (1UL ‹‹ AT91C_ID_PIOB); // Разрешение тактирования PIO B

    AT91C_BASE_PIOB-›PIO_PER = WORKMASK;    // Установка управления PIO выводом (отключение управления выводом переферийным устройством).
    AT91C_BASE_PIOB-›PIO_PPUER = WORKMASK;  // Разрешение подтягивающих резисторов
    AT91C_BASE_PIOB-›PIO_OER = WORKMASK;    // Установка вывада в качестве выхода
    while(1)
    {
        AT91C_BASE_PIOB-›PIO_SODR = WORKMASK; // Установка вывода в единицу
        AT91C_BASE_PIOB-›PIO_CODR = WORKMASK; // Сброс вывода в ноль
    } 
}
ZED® вне форума  
Непрочитано 06.12.2010, 13:18  
ZED®
Частый гость
 
Регистрация: 03.08.2010
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ZED® на пути к лучшему
По умолчанию Re: Проба пера AT91SAM9260 + IAR + J-Link

Заминка с инициализацией PLL.
Написал свою функцию, вставил в код, смотрю ножку осцилографом, а частота не такая как должна быть. PLL настраивал на частоту 192 МГц, а ножка дергается с частотой 4.59 МГц. Вот мой код.
Код:
#include "at91sam9260/AT91SAM9260.h"
//------------------------------------------------------------------------------
///   Настройка PLL
//------------------------------------------------------------------------------
void Init_CLK(void)
{ unsigned int MAINF;
  // Частота медленного RC-генератора SLCK 32.768 кГц. Период 1/32768 = 30.51 мкс
  // Максимальное время запуска основоного генератора: 75 мкс
  // Время запуска основного генератора:8 * OSCOUNT(=16) * 30.51 мкс = 15.6 мс
  // Запуск основного генератора:
  AT91C_BASE_PMC-›PMC_MOR = (AT91C_CKGR_OSCOUNT & (0x40 ‹‹ 8)) | AT91C_CKGR_MOSCEN;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MOSCS));
  // Переключение блока задающей частоты на основную тактовую частоту
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_CSS_MAIN_CLK;
  
  // Настройка PLL на частоту 192 МГц:
  AT91C_BASE_PMC-›PMC_PLLAR = ( AT91C_CKGR_SRCA                  // 29 бит = 1
                              | (0x2 ‹‹ 14)                      // OUTA = 2
                              | (0xBF ‹‹ 8)                      // PLLACOUNT = 191
                              | (AT91C_CKGR_MULA & (0x7C ‹‹ 16)) // MULA = 124
                              | (AT91C_CKGR_DIVA & 12));          // DIVA = 12
  // Ждать пока пройдет время запуска:
  while(!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_LOCKA));
  // Выбор задающей частоты и тактовой частоты процессора:
  // Предделитель тактовой частоты PRES = 1, Предделитель задающей частоты MDIV = 2.
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_PRES_CLK | AT91C_PMC_MDIV_2;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
  // В качестве основной частоты использовать частоту PLL:
  AT91C_BASE_PMC-›PMC_MCKR |= AT91C_PMC_CSS_PLLA_CLK;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
}

/* Главная функция программы */
int main(void)
{  
    Init_CLK();
    
    AT91C_BASE_WDTC-›WDTC_WDMR = AT91C_WDTC_WDDIS; // Отключение сторожевого таймера
    
    enum { WORKMASK = AT91C_PIO_PB0 }; // Битовая маска, определяет каким выводом управлять
    
    AT91C_BASE_PMC-›PMC_PCER = (1UL ‹‹ AT91C_ID_PIOB); // Разрешение тактирования PIO B

    AT91C_BASE_PIOB-›PIO_PER = WORKMASK;    // Установка управления PIO выводом (отключение управления выводом переферийным устройством).
    AT91C_BASE_PIOB-›PIO_PPUER = WORKMASK;  // Разрешение подтягивающих резисторов
    AT91C_BASE_PIOB-›PIO_OER = WORKMASK;    // Установка вывада в качестве выхода
    while(1)
    {
        AT91C_BASE_PIOB-›PIO_SODR = WORKMASK; // Установка вывода в единицу
        AT91C_BASE_PIOB-›PIO_CODR = WORKMASK; // Сброс вывода в ноль
    } 
}
Прошу укажите ошибку.
ZED® вне форума  
Непрочитано 06.12.2010, 13:31  
ZED®
Частый гость
 
Регистрация: 03.08.2010
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ZED® на пути к лучшему
По умолчанию Re: Проба пера AT91SAM9260 + IAR + J-Link

Доброго всем дня. У меня тут заминка с настройкой PLL. Я хочу, чтобы моя частота тактирования процессора PCK была 192 МГц, а задающая частота, которая тактирует периферию MCK была в 2 раза меньше, т.е. 96 МГц. Я написал функцию Init_CLK, которая осуществляет. Включил функцию в свой код "дрыгания лапкой". Смотрю осцилографом, лапка переключается с частотой 9.2 МГц. Вот мой код:
Код:
#include "at91sam9260/AT91SAM9260.h"

//------------------------------------------------------------------------------
///   Настройка PLL
//------------------------------------------------------------------------------
void Init_CLK(void)
{ unsigned int MAINF;
  // Частота медленного RC-генератора SLCK 32.768 кГц. Период 1/32768 = 30.51 мкс
  // Максимальное время запуска основоного генератора: 75 мкс
  // Время запуска основного генератора:8 * OSCOUNT(=64) * 30.51 мкс = 15.6 мс
  // Запуск основного генератора:
  AT91C_BASE_PMC-›PMC_MOR = (AT91C_CKGR_OSCOUNT & (0x40 ‹‹ 8)) | AT91C_CKGR_MOSCEN;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MOSCS));
  // Переключение блока задающей частоты на основную тактовую частоту
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_CSS_MAIN_CLK;
  
  // Настройка PLL на частоту 192 МГц:
  AT91C_BASE_PMC-›PMC_PLLAR = ( AT91C_CKGR_SRCA                  // 29 бит = 1
                              | (0x2 ‹‹ 14)                      // OUTA = 2
                              | (0xBF ‹‹ 8)                      // PLLACOUNT = 191
                              | (AT91C_CKGR_MULA & (0x7C ‹‹ 16)) // MULA = 124
                              | (AT91C_CKGR_DIVA & 12));          // DIVA = 12
  // Ждать пока пройдет время запуска:
  while(!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_LOCKA));
  // Выбор задающей частоты и тактовой частоты процессора:
  // Предделитель тактовой частоты PRES = 1, Предделитель задающей частоты MDIV = 2.
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_PRES_CLK | AT91C_PMC_MDIV_2;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
  // В качестве основной частоты использовать частоту PLL:
  AT91C_BASE_PMC-›PMC_MCKR |= AT91C_PMC_CSS_PLLA_CLK;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
 
}

/* Главная функция программы */
int main(void)
    Init_CLK();
    enum { WORKMASK = AT91C_PIO_PB0 }; // Битовая маска, определяет каким выводом управлять

    AT91C_BASE_WDTC-›WDTC_WDMR = AT91C_WDTC_WDDIS; // Отключение сторожевого таймера

    AT91C_BASE_PMC-›PMC_PCER = (1UL ‹‹ AT91C_ID_PIOB); // Разрешение тактирования PIO B

    AT91C_BASE_PIOB-›PIO_PER = WORKMASK;    // Установка управления PIO выводом (отключение управления выводом переферийным устройством).
    AT91C_BASE_PIOB-›PIO_PPUER = WORKMASK;  // Разрешение подтягивающих резисторов
    AT91C_BASE_PIOB-›PIO_OER = WORKMASK;    // Установка вывада в качестве выходад
    
    while(1)
    {
        AT91C_BASE_PIOB-›PIO_SODR = WORKMASK; // Установка вывода в единицу
        AT91C_BASE_PIOB-›PIO_CODR = WORKMASK; // Сброс вывода в ноль
    } 
}
Пожалуйста укажите мне на ошибку.
ZED® вне форума  
Непрочитано 06.12.2010, 13:37  
ZED®
Частый гость
 
Регистрация: 03.08.2010
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ZED® на пути к лучшему
По умолчанию Re: Проба пера AT91SAM9260 + IAR + J-Link

Добрый день. У меня тут заминка с настройкой PLL. Я хочу, чтобы моя частота тактирования процессора PCK была 192 МГц, а задающая частота, которая тактирует периферию MCK была в 2 раза меньше, т.е. 96 МГц. Я написал функцию Init_CLK, которая осуществляет. Включил функцию в свой код "дрыгания лапкой". Смотрю осцилографом, лапка переключается с частотой 9.2 МГц. Вот мой код:
Код:
#include "at91sam9260/AT91SAM9260.h"

//------------------------------------------------------------------------------
///   Настройка PLL
//------------------------------------------------------------------------------
void Init_CLK(void)
{ unsigned int MAINF;
  // Частота медленного RC-генератора SLCK 32.768 кГц. Период 1/32768 = 30.51 мкс
  // Максимальное время запуска основоного генератора: 75 мкс
  // Время запуска основного генератора:8 * OSCOUNT(=64) * 30.51 мкс = 15.6 мс
  // Запуск основного генератора:
  AT91C_BASE_PMC-›PMC_MOR = (AT91C_CKGR_OSCOUNT & (0x40 ‹‹ 8)) | AT91C_CKGR_MOSCEN;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MOSCS));
  // Переключение блока задающей частоты на основную тактовую частоту
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_CSS_MAIN_CLK;
  
  // Настройка PLL на частоту 192 МГц:
  AT91C_BASE_PMC-›PMC_PLLAR = ( AT91C_CKGR_SRCA                  // 29 бит = 1
                              | (0x2 ‹‹ 14)                      // OUTA = 2
                              | (0xBF ‹‹ 8)                      // PLLACOUNT = 191
                              | (AT91C_CKGR_MULA & (0x7C ‹‹ 16)) // MULA = 124
                              | (AT91C_CKGR_DIVA & 12));          // DIVA = 12
  // Ждать пока пройдет время запуска:
  while(!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_LOCKA));
  // Выбор задающей частоты и тактовой частоты процессора:
  // Предделитель тактовой частоты PRES = 1, Предделитель задающей частоты MDIV = 2.
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_PRES_CLK | AT91C_PMC_MDIV_2;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
  // В качестве основной частоты использовать частоту PLL:
  AT91C_BASE_PMC-›PMC_MCKR |= AT91C_PMC_CSS_PLLA_CLK;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
 
}

/* Главная функция программы */
int main(void)
    Init_CLK();
    enum { WORKMASK = AT91C_PIO_PB0 }; // Битовая маска, определяет каким выводом управлять

    AT91C_BASE_WDTC-›WDTC_WDMR = AT91C_WDTC_WDDIS; // Отключение сторожевого таймера

    AT91C_BASE_PMC-›PMC_PCER = (1UL ‹‹ AT91C_ID_PIOB); // Разрешение тактирования PIO B

    AT91C_BASE_PIOB-›PIO_PER = WORKMASK;    // Установка управления PIO выводом (отключение управления выводом переферийным устройством).
    AT91C_BASE_PIOB-›PIO_PPUER = WORKMASK;  // Разрешение подтягивающих резисторов
    AT91C_BASE_PIOB-›PIO_OER = WORKMASK;    // Установка вывада в качестве выходад
    
    while(1)
    {
        AT91C_BASE_PIOB-›PIO_SODR = WORKMASK; // Установка вывода в единицу
        AT91C_BASE_PIOB-›PIO_CODR = WORKMASK; // Сброс вывода в ноль
    } 
}
Пожалуйста укажите мне на ошибку.
ZED® вне форума  
Непрочитано 06.12.2010, 14:36  
ZED®
Частый гость
 
Регистрация: 03.08.2010
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ZED® на пути к лучшему
По умолчанию Re: Проба пера AT91SAM9260 + IAR + J-Link

Добрый день. У меня тут заминка с настройкой PLL. Я хочу, чтобы моя частота тактирования процессора PCK была 192 МГц, а задающая частота, которая тактирует периферию MCK была в 2 раза меньше, т.е. 96 МГц. Я написал функцию Init_CLK, которая осуществляет. Включил функцию в свой код "дрыгания лапкой". Смотрю осцилографом, лапка переключается с частотой 9.2 МГц. Вот мой код:
Код:
#include "at91sam9260/AT91SAM9260.h"

//------------------------------------------------------------------------------
///   Настройка PLL
//------------------------------------------------------------------------------
void Init_CLK(void)
{ unsigned int MAINF;
  // Частота медленного RC-генератора SLCK 32.768 кГц. Период 1/32768 = 30.51 мкс
  // Максимальное время запуска основоного генератора: 75 мкс
  // Время запуска основного генератора:8 * OSCOUNT(=64) * 30.51 мкс = 15.6 мс
  // Запуск основного генератора:
  AT91C_BASE_PMC-›PMC_MOR = (AT91C_CKGR_OSCOUNT & (0x40 ‹‹ 8)) | AT91C_CKGR_MOSCEN;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MOSCS));
  // Переключение блока задающей частоты на основную тактовую частоту
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_CSS_MAIN_CLK;
  
  // Настройка PLL на частоту 192 МГц:
  AT91C_BASE_PMC-›PMC_PLLAR = ( AT91C_CKGR_SRCA                  // 29 бит = 1
                              | (0x2 ‹‹ 14)                      // OUTA = 2
                              | (0xBF ‹‹ 8)                      // PLLACOUNT = 191
                              | (AT91C_CKGR_MULA & (0x7C ‹‹ 16)) // MULA = 124
                              | (AT91C_CKGR_DIVA & 12));          // DIVA = 12
  // Ждать пока пройдет время запуска:
  while(!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_LOCKA));
  // Выбор задающей частоты и тактовой частоты процессора:
  // Предделитель тактовой частоты PRES = 1, Предделитель задающей частоты MDIV = 2.
  AT91C_BASE_PMC-›PMC_MCKR = AT91C_PMC_PRES_CLK | AT91C_PMC_MDIV_2;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
  // В качестве основной частоты использовать частоту PLL:
  AT91C_BASE_PMC-›PMC_MCKR |= AT91C_PMC_CSS_PLLA_CLK;
  // Ждать пока пройдет время запуска:
  while (!(AT91C_BASE_PMC-›PMC_SR & AT91C_PMC_MCKRDY));
 
}

/* Главная функция программы */
int main(void)
    Init_CLK();
    enum { WORKMASK = AT91C_PIO_PB0 }; // Битовая маска, определяет каким выводом управлять

    AT91C_BASE_WDTC-›WDTC_WDMR = AT91C_WDTC_WDDIS; // Отключение сторожевого таймера

    AT91C_BASE_PMC-›PMC_PCER = (1UL ‹‹ AT91C_ID_PIOB); // Разрешение тактирования PIO B

    AT91C_BASE_PIOB-›PIO_PER = WORKMASK;    // Установка управления PIO выводом (отключение управления выводом переферийным устройством).
    AT91C_BASE_PIOB-›PIO_PPUER = WORKMASK;  // Разрешение подтягивающих резисторов
    AT91C_BASE_PIOB-›PIO_OER = WORKMASK;    // Установка вывада в качестве выходад
    
    while(1)
    {
        AT91C_BASE_PIOB-›PIO_SODR = WORKMASK; // Установка вывода в единицу
        AT91C_BASE_PIOB-›PIO_CODR = WORKMASK; // Сброс вывода в ноль
    } 
}
Пожалуйста укажите мне на ошибку.
ZED® вне форума  
Непрочитано 07.12.2010, 21:09  
ZED®
Частый гость
 
Регистрация: 03.08.2010
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ZED® на пути к лучшему
По умолчанию Re: Проба пера AT91SAM9260 + IAR + J-Link

Вот решил поставить Linux!
Скачал MMNET1000-CD, на комп поставил SAM-BA v2.10. На сайте Запуск платы на AT91SAM9260 говорят, что начальный загрузчик следует устанавливать в DataFlash. В MMNET1000-CD нашел скрипт для своего устройства, но там все льется в NandFlash
Гружу с помощью J-Link for ARM от IAR Systems.
Вопрос, в чем моя ошибка. Можно ли вообще с помощью J-Link залить Linux?
ZED® вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подниму тему WinAVR vs IAR oleg110592 Микроконтроллеры, АЦП, память и т.д 5 24.10.2015 14:06


Часовой пояс GMT +4, время: 15:24.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot