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

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

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

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

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

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


Результаты опроса: Запуск "на коленке" часть 2. Что дальше будем обсмакивать?
RTC (часы реального времени) 119 11.40%
USB 540 51.72%
Базовые навыки работы с портами ввода-вывода 248 23.75%
АЦП 108 10.34%
ЦАП 29 2.78%
Голосовавшие: 1044. Вы ещё не голосовали в этом опросе

 
Опции темы
Непрочитано 01.09.2010, 00:30  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

В этой теме уже выкладывался исходник с конфигурацией PLL. У меня так вообще этим стартап занимается, я только коэффиценты считаю. Кстати проидитесь по ветке, я уже о них рассказывал.
А функция:
Код:
void ConfigurePLL ( void )
{
  DWORD MValue, NValue;

  if ( PLLSTAT & (1 ‹‹ 25) )
  {
	PLLCON = 1;			/* Enable PLL, disconnected */
	PLLFEED = 0xaa;
	PLLFEED = 0x55;
  }

  PLLCON = 0;				/* Disable PLL, disconnected */
  PLLFEED = 0xaa;
  PLLFEED = 0x55;
    
  SCS |= 0x20;			/* Enable main OSC */
  while( !(SCS & 0x40) );	/* Wait until main OSC is usable */

  CLKSRCSEL = 0x1;		/* select main OSC, 12MHz, as the PLL clock source */

  PLLCFG = PLL_MValue | (PLL_NValue ‹‹ 16);
  PLLFEED = 0xaa;
  PLLFEED = 0x55;
      
  PLLCON = 1;				/* Enable PLL, disconnected */
  PLLFEED = 0xaa;
  PLLFEED = 0x55;

  CCLKCFG = CCLKDivValue;	/* Set clock divider */
#if USE_USB
  USBCLKCFG = USBCLKDivValue;		/* usbclk = 288 MHz/6 = 48 MHz */
#endif

  while ( ((PLLSTAT & (1 ‹‹ 26)) == 0) );	/* Check lock bit status */
    
  MValue = PLLSTAT & 0x00007FFF;
  NValue = (PLLSTAT & 0x00FF0000) ›› 16;
  while ((MValue != PLL_MValue) && ( NValue != PLL_NValue) );

  PLLCON = 3;				/* enable and connect */
  PLLFEED = 0xaa;
  PLLFEED = 0x55;
  while ( ((PLLSTAT & (1 ‹‹ 25)) == 0) );	/* Check connect bit status */
  return;
}
Это родная из примеров NXP.
Реклама:
kison вне форума  
Непрочитано 01.09.2010, 05:18  
serb-radio
Гражданин KAZUS.RU
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Ок, спасибо, внимательнее ветку посмотрю и за код спасибо
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 01.09.2010, 09:55  
serb-radio
Гражданин KAZUS.RU
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Уважаемые знатоки, поясните мне разряд регистра SCS GPIOM. Как в этом режиме работает МК (LPC2366), чего с PLL происходит и от чего тактируетсся МК, как я понимаю он тактируется от внутреннего RC генератора, так? Чего то не получается мне его запустить на основном генераторе от кварца 12МГц. Конфигурирую вроде верно: частота на выходе PLL 288 Мгц, M=12, N=1, в прогу пишу на единицу меньше, соответственно M=0x0b; N=0x00; соответственно PLLCFG = 0x0000000b; предделители CCLk=4;USBclk=6; в прогу - на единицу меньше, соответвтвенно CCLKCFG = 0x00000003;USBCLKCFG = 0x00000005;
И еще, вопрос к уважаемому Kison-у, вы выложили код, что там за переменные PLL_MValue и PLL_NValue и чем они отличаются от MValue и NValue, извините если глупые вопросы задаю. Вот мой код, глянте, я не могу в нем "подерргать" пином МК, хотя когда включаю GPIOM - все работает:


unsigned int MValue=11, NValue=0, CCLKDivValue=3,USBCLKDivValue=5;

int main()
{
//SCS |= _BV(GPIOM);


if ( PLLSTAT & (1 ‹‹ 25) )
{
PLLCON = 1; /* Enable PLL, disconnected */
PLLFEED = 0xaa;
PLLFEED = 0x55;
}

PLLCON = 0; /* Disable PLL, disconnected */
PLLFEED = 0xaa;
PLLFEED = 0x55;

SCS |= 0x20; /* Enable main OSC */
while( !(SCS & 0x40) ); /* Wait until main OSC is usable */

CLKSRCSEL = 0x1; /* select main OSC, 12MHz, as the PLL clock source */

PLLCFG = MValue | (NValue ‹‹ 16);
PLLFEED = 0xaa;
PLLFEED = 0x55;

PLLCON = 1; /* Enable PLL, disconnected */
PLLFEED = 0xaa;
PLLFEED = 0x55;

CCLKCFG = CCLKDivValue; /* Set clock divider */
//#if USE_USB
USBCLKCFG = USBCLKDivValue; /* usbclk = 288 MHz/6 = 48 MHz */
//#endif

while ( ((PLLSTAT & (1 ‹‹ 26)) == 0) ); /* Check lock bit status */

MValue = PLLSTAT & 0x00007FFF;
NValue = (PLLSTAT & 0x00FF0000) ›› 16;
// while ((MValue != PLL_MValue) && ( NValue != PLL_NValue) );

PLLCON = 3; /* enable and connect */
PLLFEED = 0xaa;
PLLFEED = 0x55;
while ( ((PLLSTAT & (1 ‹‹ 25)) == 0) ); /* Check connect bit status */

// SCS |= _BV(GPIOM);


FIO1DIR = 0x00000002;

for (;
{
FIO1CLR = 0x00000002;
pause(1);

FIO1SET = 0x00000002;
pause(1);
}
}
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 05.09.2010, 20:03  
cvy7
Частый гость
 
Регистрация: 23.02.2007
Сообщений: 10
Сказал спасибо: 7
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
cvy7 на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Доброго времени суток !
Непонятная мутка с прерываниями на STR910, пишу под IAR
Вот так еще работает:
void TIM1_IRQHandler(void)
Код:
{
  //t_proc_begin();
  //TIM_ClearFlag(TIM0, TIM_FLAG_OC1); // clear irq pending bit
      TIM1-›SR &= ~TIM_FLAG_OC1;
   TIM1-›OC1R += 128;    

  //////////////////////////
  static int i=0;
    //if(ADC_GetFlagStatus(ADC_FLAG_ECV) == SET)
  //  if(ADC-›CR & (1‹‹(ADC_FLAG_ECV & ADC_FLAG_MASK)))
    //    {
                //ADC_ClearFlag(ADC_FLAG_ECV);
        //        ADC-›CR |= (1‹‹(ADC_FLAG_ECV&ADC_FLAG_MASK));
                analog_data_in[0][i] = ADC-›DR0 & ADC_RESULT_MASK;//ADC_GetConversionValue(ADC_Channel_0);
                analog_data_in[1][i] = ADC-›DR1 & ADC_RESULT_MASK;//ADC_GetConversionValue(ADC_Channel_1);
                analog_data_in[2][i] = ADC-›DR2 & ADC_RESULT_MASK;//ADC_GetConversionValue(ADC_Channel_2);
                analog_data_in[3][i] = ADC-›DR3 & ADC_RESULT_MASK;//ADC_GetConversionValue(ADC_Channel_3);
                analog_data_in[4][i] = ADC-›DR4 & ADC_RESULT_MASK;//ADC_GetConversionValue(ADC_Channel_4);
                analog_data_in[5][i] = ADC-›DR5 & ADC_RESULT_MASK;//ADC_GetConversionValue(ADC_Channel_5);
                analog_data_in[6][i] = /*ADC-›DR6 & ADC_RESULT_MASK;*/ADC_GetConversionValue(ADC_Channel_6);
                analog_data_in[7][i++]=/*ADC-›DR7 & ADC_RESULT_MASK;*/ADC_GetConversionValue(ADC_Channel_7);
                i&=0x003f;     
       // } 
#ifndef REV_G
    //ADC_ConversionCmd(ADC_Conversion_Start);
     ADC-›CR |= ADC_Conversion_Start;
#endif
    /*write any value to VIC0 VAR*/
    VIC0-›VAR = 0xff;
    ////////////////////////////////////////////////////
 //  t_proc_end();
}
а если сделать так:
Код:
analog_data_in[6][i] = ADC-›DR6 & ADC_RESULT_MASK;//ADC_GetConversionValue(ADC_Channel_6);
                analog_data_in[7][i++]=ADC-›DR7 & ADC_RESULT_MASK;//ADC_GetConversionValue(ADC_Channel_7);
те последние 2 вызова заменить на прямое обращение к регистрам- рушит стек (вероятностно)

теряюсь в догадках
cvy7 вне форума  
Непрочитано 06.09.2010, 16:02  
Snacker
Временная регистрация
 
Регистрация: 16.05.2007
Сообщений: 59
Сказал спасибо: 1
Сказали Спасибо 10 раз(а) в 9 сообщении(ях)
Snacker на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от serb-radio Посмотреть сообщение
хотя когда включаю GPIOM - все работает
Ну так включайте. Вы используете FIO1SET/FIO1CLR вместо IOSET1/IOCLR1 с нулем в SCS, естественно, что у вас ничего не работает.
Snacker вне форума  
Сказали "Спасибо" Snacker
serb-radio (06.09.2010)
Непрочитано 06.09.2010, 20:18  
serb-radio
Гражданин KAZUS.RU
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Спасибо, разобрался
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 07.09.2010, 19:02  
Alexey_1811
Частый гость
 
Аватар для Alexey_1811
 
Регистрация: 10.11.2006
Адрес: Київ
Сообщений: 34
Сказал спасибо: 4
Сказали Спасибо 1 раз в 1 сообщении
Alexey_1811 на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Прикрутил vs1001k к lpc2368 и возникла проблема.
Не хочет работать SSP1 в режиме SPI.
Вот код инициализации

SCS |= (1 ‹‹ 0);
PCONP |= (1 ‹‹ 10);
FIO2DIR |= 0x3F;
PINSEL0 |= ((1 ‹‹ 13)|(1 ‹‹ 15)|(1 ‹‹ 17)|(1 ‹‹ 19));

SSP1CR1 = 0x0 ; // disable SSP, must be off during changes
SSP1CR0 = 0x07; // | (1‹‹6) /* CPOL */ | (1‹‹7) /* CPHA */; // | SSP_CR0_CPOL | SSP_CR0_CPHA; // DataSizeSelect=8, CPOL=1,CPHA=1
SSP1CPSR = 0xFFFF; // SPICLK = PCLK/8 = 18MHz/8 = 2.25MHz
SSP1IMSC = 0; // INTs disabled
SSP1DMACR = 0; // no DMA
// SSP1ICR = SSP_ICLR_RORIC | SSP_ICLR_RTIC; // Clear RxOverflow,TxTimeout INTs
SSP1CR1 = (1‹‹1); // enable SSP, Master mode
Alexey_1811 вне форума  
Непрочитано 08.09.2010, 14:18  
serb-radio
Гражданин KAZUS.RU
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Господа знатоки, в LPC23xx регистр FIOxMASK, как его использовать и для чего он нужен, в даташите сказано для облегчения работы низком уровне с выводами, для их маскирования, в чем заключается это маскирование
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 08.09.2010, 15:28  
serb-radio
Гражданин KAZUS.RU
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

написал библиотеку работы с ЖКИ HD44780 для LPC23xx
__________________
То, что нас не убивает - делает нас сильнее

Последний раз редактировалось serb-radio; 08.09.2010 в 15:47.
serb-radio вне форума  
Непрочитано 08.09.2010, 15:52  
serb-radio
Гражданин KAZUS.RU
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Кому надо - берите, в *.h файле все написано шо куда подключал.
Вложения:
Тип файла: rar HD44780.rar (1.3 Кб, 132 просмотров)
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Эти 6 пользователя(ей) сказали Спасибо serb-radio за это сообщение:
eitch (08.09.2010), gdtron (06.10.2010), kozer_1983 (11.01.2011), L_0_R (09.09.2010), tommy_gun (26.09.2010)
 

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

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

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

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


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


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