Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: помогите разобраться с клоками
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Понедельник
1.устаналиваю PLL ~ 95 мгц (вывел программируемый клок на внешнюю ногу, по осцилографу все правильно окого 95мгц)

2.MCK выбираю PLL/2 , должно быть около 48мгц (PMC_MCKR = 0x7)

3.частота SPI = MCK/8 (SPI_CSR =0x01010811 ожидал получить в районе 6 мгц, однако получается ~ 0.2 мгц)

объясните, пожалуйста, что я забыл потрогать ? спасибо help.gif

можно ли вывести наружу MCK для проверки ?
KAlex
Цитата(Понедельник @ Sep 25 2007, 14:40) *
объясните, пожалуйста, что я забыл потрогать ? спасибо help.gif

Возможно: AT91C_PMC_CSS_PLL_CLK - Clock from PLL is selected
Понедельник
Цитата(KAlex @ Sep 25 2007, 14:52) *
Возможно: AT91C_PMC_CSS_PLL_CLK - Clock from PLL is selected


я вас не вполне понял.

Мастер клок получается из PLL/2 таким образом

pPMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2 ;
while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));

pPMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK ;
while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));
KAlex
А если так:
pPMC->PMC_MCKR = AT91C_PMC_CSS_PLL_CLK | AT91C_PMC_PRES_CLK_2 ;
while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));
Понедельник
Цитата(KAlex @ Sep 25 2007, 15:06) *
А если так:
pPMC->PMC_MCKR = AT91C_PMC_CSS_PLL_CLK | AT91C_PMC_PRES_CLK_2 ;
while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));



ничего на изменилось -(

я вообще этот кусок выкинул из кода, оказалось, что этот регистр в стартапе инициализируется, вот кусок
# Select Clock
LDR R1, =PMC_MCKR_Val
STR R1, [R0, #PMC_MCKR]

куда рыть ума не приложу
такое ощущение, что SPI клок еще на 32 делится, хотя по даташиту должно быть
SPCK Baudrate MCK = MCK/SCBR
KAlex
А если SCBR = 1 какая будет частота?
Понедельник
Цитата(KAlex @ Sep 25 2007, 15:23) *
А если SCBR = 1 какая будет частота?


судя по ерате SCBR = 1 устаноаливать нельзя при нечетном кол-ве битов, хотя я, честно говоря не пробовал
KAlex
Цитата(Понедельник @ Sep 25 2007, 15:29) *
судя по ерате SCBR = 1 устаноаливать нельзя при нечетном кол-ве битов, хотя я, честно говоря не пробовал

И еще, про PMC_PCKx не забыл?
Понедельник
Цитата(KAlex @ Sep 25 2007, 15:52) *
И еще, про PMC_PCKx не забыл?



а какое отношение PMC_PCKx имеет к SPI, чего то этого в описании не нашел ?
KAlex
Цитата(Понедельник @ Sep 25 2007, 15:56) *
а какое отношение PMC_PCKx имеет к SPI, чего то этого в описании не нашел ?

http://www.gaw.ru/html.cgi/txt/doc/micros/..._sam7s/26_4.htm
Понедельник
Цитата(KAlex @ Sep 25 2007, 16:02) *


Вы дали ссылку на переведенный даташит, однако ни в русском , ни в анг-ом варианте, связи между SPI и программируемыми клоками обнаружить не удалось. Частота SPI определяется только частотой MCK и делителем (поле SCBR в регистре SPI_CSR) , ничего другого я не обнаружил
KAlex
Цитата(Понедельник @ Sep 25 2007, 16:19) *
Вы дали ссылку на переведенный даташит, однако ни в русском , ни в анг-ом варианте, связи между SPI и программируемыми клоками обнаружить не удалось. Частота SPI определяется только частотой MCK и делителем (поле SCBR в регистре SPI_CSR) , ничего другого я не обнаружил

29.5.2 Power Management
The SPI may be clocked through the Power Management Controller (PMC), thus the programmer
must first configure the PMC to enable the SPI clock.
Понедельник
сейчас проверил MCK через Periodic Interval Timer, как о ожидал получилось MCK = 48 Мгц

должно быть SPCK Baudrate = MCK/SCBR = 48/8 = 6, а по осцилографу вижу 0.2 Мгц ????? wacko.gif help.gif
KAlex
К стати, сейчас обнаружил, в даташите нет ни слова про SPI_FDIV
Понедельник
Цитата(KAlex @ Sep 25 2007, 17:32) *
К стати, сейчас обнаружил, в даташите нет ни слова про SPI_FDIV


я тут еще одну формулу для вычисления SCLK обнаружил, в соседнем топике, если интересно
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.