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

 
 
 
Reply to this topicStart new topic
> AT91SAM7S256 не запускается MainClock
AlexBoy
сообщение Jul 20 2007, 08:34
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 19-12-05
Из: Kiev
Пользователь №: 12 394



Сделал плату на SAM7S256, при запуске MainClock входит в вечный цикл. Вот этот фрагмент:
Код
    // ---------------------------------
    // Включаем главный генератор
    pmc->PMC_MOR = (AT91C_CKGR_OSCOUNT & (0xFF <<8)) | AT91C_CKGR_MOSCEN;
    while(!(pmc->PMC_SR & AT91C_PMC_MOSCS));

Задержку на всякий случай поставил максимальную.
Что это? Не исправен кварц или номиналы неправильные в PLL? Или PLL не влияет на запуск кварца?
Go to the top of the page
 
+Quote Post
IV_K
сообщение Jul 20 2007, 08:52
Сообщение #2


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

Группа: Свой
Сообщений: 121
Регистрация: 17-06-05
Пользователь №: 6 087



номиналы pll влияют на pll, смотрите на кварц, есть ли генерация.. кондеры какие стоят?
Go to the top of the page
 
+Quote Post
AlexBoy
сообщение Jul 21 2007, 10:13
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 19-12-05
Из: Kiev
Пользователь №: 12 394



Цитата(IV_K @ Jul 20 2007, 11:52) *
номиналы pll влияют на pll, смотрите на кварц, есть ли генерация.. кондеры какие стоят?

Кварц сразу ж не запускается, только после включения, посмотреть нечем. кондеры по 10пф. Наверно кварц неиспавен. Попробую поменять.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 21 2007, 12:33
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(AlexBoy @ Jul 21 2007, 13:13) *
Наверно кварц неиспавен.
Какая частота у кварца? Для кварцев частотой меньше 4 МГц надо последовательно с кварцем включать резистор (см. даташит)


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
AlexBoy
сообщение Jul 23 2007, 09:36
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 19-12-05
Из: Kiev
Пользователь №: 12 394



Цитата(Сергей Борщ @ Jul 21 2007, 15:33) *
Какая частота у кварца? Для кварцев частотой меньше 4 МГц надо последовательно с кварцем включать резистор (см. даташит)

частота 18,342Mhz, резистор не нужен. К тому же эта схема у меня работала на SAM7X256.
Go to the top of the page
 
+Quote Post
amw
сообщение Jul 23 2007, 13:17
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Что-то размер кода маловат smile.gif.
Я включаю так: (кварц 18.432 PLL 96 MCK=48 для USB)
Код
@--------------------------------------------------------
@ Power Mangement Controller (PMC) definitions
    .equ    PMC_BASE,    0xFFFFFC00        @ PMC Base Address
    .equ    PMC_SCER,    0x00            @ PMC SCER Offset
    .equ    PMC_SCDR,    0x04            @ PMC SCDR Offset
    .equ    PMC_MOR,    0x20            @ PMC_MOR Offset
    .equ    PMC_MCFR,    0x24            @ PMC_MCFR Offset
    .equ    PMC_PLLR,    0x2C            @ PMC_PLLR Offset
    .equ    PMC_MCKR,    0x30            @ PMC_MCKR Offset
    .equ    PMC_SR,        0x68            @ PMC_SR Offset
    .equ    PMC_PCK0,    0x40            @ Programmable Clock 0
@ MOR Bits
    .equ    PMC_MOSCEN,    (1 << 0)        @ Main Oscillator Enable
    .equ    PMC_OSCBYPASS,    (1 << 1)        @ Main Oscillator Bypass
    .equ    PMC_OSCOUNT,    (0xFF << 8)        @ Main OScillator Start-up Time
@ PLLR Bits
    .equ    PMC_DIV,    (0x18 << 0)        @ PLL Divider
    .equ    PMC_PLLCOUNT,    (0x3F << 8)        @ PLL Lock Counter
    .equ    PMC_OUT,    (0x00 << 14)        @ PLL Clock Frequency Range
    .equ    PMC_MUL,    (0x7C << 16)        @ PLL Multiplier
    .equ    PMC_USBDIV,    (0x01 << 28)        @ USB Clock Divider
@ MCKR Bits
    .equ    PMC_CSS,    (3 << 0)        @ Clock Source Selection
    .equ    PMC_PRES,    (1 << 2)        @ Prescaler Selection
@ SR Bits
    .equ    PMC_MOSCS,    (1 << 0)        @ Main Oscillator Stable
    .equ    PMC_LOCK,    (1 << 2)        @ PLL Lock Status
    .equ    PMC_MCKRDY,    (1 << 3)        @ Master clock ready
    .equ    PMC_PCKRDY0,    (1 << 8)        @ Programmable Clock 0 ready
@ Registers' values
    .equ    PMC_MOR_Val,    (PMC_OSCOUNT | PMC_MOSCEN)
    .equ    PMC_PLLR_Val,    (PMC_USBDIV | PMC_MUL | PMC_OUT | PMC_PLLCOUNT | PMC_DIV)
    .equ    PMC_MCKR_Val,    (PMC_PRES | PMC_CSS)

@--------------------------------------------------------
@ PMC - OSC & PLL
_pmc_init:
    ldr    r0, =PMC_BASE
    ldr    r1, =PMC_MOR_Val
    str    r1, [r0, #PMC_MOR]    @ switch to MAIN OSC
_pmc_wait_main:
    ldr    r2, [r0, #PMC_SR]
    ands    r2, r2, #PMC_MOSCS
    beq    _pmc_wait_main

    ldr    r1, =PMC_PLLR_Val
    str    r1, [r0, #PMC_PLLR]
_pmc_wait_pll:
    ldr    r2, [r0, #PMC_SR]
    ands    r2, r2, #PMC_LOCK
    beq    _pmc_wait_pll

    ldr    r1, =PMC_PRES
    str    r1, [r0, #PMC_MCKR]
_pmc_wait_pres:
    ldr    r2, [r0, #PMC_SR]
    ands    r2, r2, #PMC_MCKRDY
    beq    _pmc_wait_pres

    ldr    r1, =PMC_MCKR_Val
    str    r1, [r0, #PMC_MCKR]
_pmc_wait_css:
    ldr    r2, [r0, #PMC_SR]
    ands    r2, r2, #PMC_MCKRDY
    beq    _pmc_wait_css
_pmc_init_end:


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post

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

 


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


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