hiddenman 18 اشتراک گذاری ارسال شده در 25 آبان، ۱۳۹۵ سلام دوستان عزیز . یه راهنمایی خیلی ضروری لازم دارم اگر بتونید کمکم کنید ممنون میشم . من برنامه ای روی برد mcb2300 با میکرو lpc2378 نوشتم منتها مشکلم اینه میخوام از اسیلاتور بیرون (main oscillator) میکرو که روی برد هست و 12 مگ هست استفاده کنم ولی به صورت پیش فرض روی اسیلاتور داخلی(internal RC Ocs) که 4 مگ تنظیم شده. از قسمت دیباگ میرم تو بخش peripheral که و از قسمت clock source selection نمیتونم تغییر بدم نوع clock رو و کلا روی ذاخلی ثابته!!!! میدونید چطور میتونم اینو set کنم بهmain oscillator.... ایا lock هست برد و باید کاری بکنیم برای unlock کردنش.... لطفا کمکم کنید ... ممنون 2 لینک به دیدگاه
hiddenman 18 مالک اشتراک گذاری ارسال شده در 25 آبان، ۱۳۹۵ واقعا کسی پاسخگو نیست؟؟؟؟؟ 1 لینک به دیدگاه
Yamna 1 17420 اشتراک گذاری ارسال شده در 25 آبان، ۱۳۹۵ صب کنید خب دوستان من تو انجمن ندیدن هنوز 1 لینک به دیدگاه
hiddenman 18 مالک اشتراک گذاری ارسال شده در 27 آبان، ۱۳۹۵ هنوز کسی ندیده . این چجور انجمنی هست حداقل بگید بلد نیستیم تکلیف ما هم مشخص شه ....... 1 لینک به دیدگاه
Mehdi.Aref 26782 اشتراک گذاری ارسال شده در 27 آبان، ۱۳۹۵ سلام دوستان عزیز . یه راهنمایی خیلی ضروری لازم دارم اگر بتونید کمکم کنید ممنون میشم . من برنامه ای روی برد mcb2300 با میکرو lpc2378 نوشتم منتها مشکلم اینه میخوام از اسیلاتور بیرون (main oscillator) میکرو که روی برد هست و 12 مگ هست استفاده کنم ولی به صورت پیش فرض روی اسیلاتور داخلی(internal RC Ocs) که 4 مگ تنظیم شده. از قسمت دیباگ میرم تو بخش peripheral که و از قسمت clock source selection نمیتونم تغییر بدم نوع clock رو و کلا روی ذاخلی ثابته!!!! میدونید چطور میتونم اینو set کنم بهmain oscillator.... ایا lock هست برد و باید کاری بکنیم برای unlock کردنش.... لطفا کمکم کنید ... ممنون دوست عزیز شما در مورد نرم افزار مورد استفاده هیچ توضیحی ندادین ولی main oscillator اگه درست براساس ولتاژ تعیین شده 1.8 ولت با خازن و مقاومت براساس فرکانس مورد نیاز ست بشه به مشکلی نباید بخورید 3 لینک به دیدگاه
hiddenman 18 مالک اشتراک گذاری ارسال شده در 27 آبان، ۱۳۹۵ دوست عزیز شما در مورد نرم افزار مورد استفاده هیچ توضیحی ندادین ولی main oscillator اگه درست براساس ولتاژ تعیین شده 1.8 ولت با خازن و مقاومت براساس فرکانس مورد نیاز ست بشه به مشکلی نباید بخورید سلام - ممنون از اینکه جواب دادید . من از Keil uVision5 استفاده میکنم. در مورد ولتاژ ورودیش که گفتید اطلاعات ندارم . ؟؟؟ ولی تو قسمت کانفیگ کلاک مشکل دارم چون تو دیتا شیت میکرو خوندم به صورت پیش فرض روی داخلی که 4 مگاهرتز است تنظیمه و باید بیارم روی 12 مگاهرتز خارجی. اینو مشکل دارم 1 لینک به دیدگاه
Mehdi.Aref 26782 اشتراک گذاری ارسال شده در 27 آبان، ۱۳۹۵ سلام - ممنون از اینکه جواب دادید . من از Keil uVision5 استفاده میکنم. در مورد ولتاژ ورودیش که گفتید اطلاعات ندارم . ؟؟؟ ولی تو قسمت کانفیگ کلاک مشکل دارم چون تو دیتا شیت میکرو خوندم به صورت پیش فرض روی داخلی که 4 مگاهرتز است تنظیمه و باید بیارم روی 12 مگاهرتز خارجی. اینو مشکل دارم اسیلاتورتون رو با چی راه انداختید؟ آیا رجیستر مربوط به (CLKSRCSEL)external oscillator رو فعال کردید؟ 2 لینک به دیدگاه
hiddenman 18 مالک اشتراک گذاری ارسال شده در 27 آبان، ۱۳۹۵ اسیلاتورتون رو با چی راه انداختید؟ آیا رجیستر مربوط به (CLKSRCSEL)external oscillator رو فعال کردید؟ من دستوری برای راه اندازی کلاک نزدم از یه کد اماده استفاده کردم که جزو sample کدهای keli بوده. الان برای config کلاک باید مقادیر رچیستری رو داخل main تغغیر بدم.؟؟ من کدکو اینجا میذارم اگر بتونی نگاهی بندازی ببینی مشکل از کجاشه... خیلی ممنونم برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام 1 لینک به دیدگاه
Mehdi.Aref 26782 اشتراک گذاری ارسال شده در 28 آبان، ۱۳۹۵ من دستوری برای راه اندازی کلاک نزدم از یه کد اماده استفاده کردم که جزو sample کدهای keli بوده. الان برای config کلاک باید مقادیر رچیستری رو داخل main تغغیر بدم.؟؟من کدکو اینجا میذارم اگر بتونی نگاهی بندازی ببینی مشکل از کجاشه... خیلی ممنونم برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام برای شروع کار با برنامه شما اگه از ویزارد استفاده کنید ابتدا رجیسترهای مورد نظر رو که میخواید ازش استفاده کنید فعال میکنید . در غیراینصورت میبایست رجیسترهارو در داخل برنامه فعال کنید 2 لینک به دیدگاه
hiddenman 18 مالک اشتراک گذاری ارسال شده در 29 آبان، ۱۳۹۵ برای شروع کار با برنامه شما اگه از ویزارد استفاده کنید ابتدا رجیسترهای مورد نظر رو که میخواید ازش استفاده کنید فعال میکنید . در غیراینصورت میبایست رجیسترهارو در داخل برنامه فعال کنید [h=2][/h]الان اون فایلی کدی که فرستادم اگر نگاه کنید یه بخش به اسم target داره که یسری تنظیمات برای کلاک انجام داده .. الان رو کدام کلاک ست شده؟؟؟؟ قسمت ConfigurePLL اگر نگاه کنید این رجیستر مربوط به main oscillator به صورت 0x01 ست شده. میشه کمی از روی این کد منو راهنمایی کنید..ممنونم /***************************************************************************** * target.c: Target C file for NXP LPC23xx/24xx Family Microprocessors * * Copyright(C) 2006, NXP Semiconductor * All rights reserved. * * History * 2006.07.13 ver 1.00 Prelimnary version, first Release ******************************************************************************/#include "LPC23xx.h"#include "type.h"#include "irq.h"#include "target.h"/******************************************************************************** Function name: TargetInit**** Descriptions: Initialize the target board; it is called in a necessary ** place, change it as needed**** parameters: None** Returned value: None** ******************************************************************************/void TargetInit(void){ /* Add your codes here */ return;}/******************************************************************************** Function name: GPIOResetInit**** Descriptions: Initialize the target board before running the main() ** function; User may change it as needed, but may not ** deleted it.**** parameters: None** Returned value: None** ******************************************************************************/void GPIOResetInit( void ){ /* Reset all GPIO pins to default: primary function */ PINSEL0 = 0x00000000; PINSEL1 = 0x00000000; PINSEL2 = 0x00000000; PINSEL3 = 0x00000000; PINSEL4 = 0x00000000; PINSEL5 = 0x00000000; PINSEL6 = 0x00000000; PINSEL7 = 0x00000000; PINSEL8 = 0x00000000; PINSEL9 = 0x00000000; PINSEL10 = 0x00000000; IODIR0 = 0x00000000; IODIR1 = 0x00000000; IOSET0 = 0x00000000; IOSET1 = 0x00000000; FIO0DIR = 0x00000000; FIO1DIR = 0x00000000; FIO2DIR = 0x00000000; FIO3DIR = 0x00000000; FIO4DIR = 0x00000000; FIO0SET = 0x00000000; FIO1SET = 0x00000000; FIO2SET = 0x00000000; FIO3SET = 0x00000000; FIO4SET = 0x00000000; return; }/******************************************************************************** Function name: ConfigurePLL**** Descriptions: Configure PLL switching to main OSC instead of IRC** at power up and wake up from power down. ** This routine is used in TargetResetInit() and those** examples using power down and wake up such as** USB suspend to resume, ethernet WOL, and power management** example** parameters: None** Returned value: None** ******************************************************************************/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;}/******************************************************************************** Function name: TargetResetInit**** Descriptions: Initialize the target board before running the main() ** function; User may change it as needed, but may not ** deleted it.**** parameters: None** Returned value: None** ******************************************************************************/void TargetResetInit(void){#ifdef __DEBUG_RAM MEMMAP = 0x2; /* remap to internal RAM */#endif#ifdef __DEBUG_FLASH MEMMAP = 0x1; /* remap to internal flash */#endif#if USE_USB PCONP |= 0x80000000; /* Turn On USB PCLK */#endif /* Configure PLL, switch from IRC to Main OSC */ ConfigurePLL(); /* Set system timers for each component */#if (Fpclk / (Fcclk / 4)) == 1 PCLKSEL0 = 0x00000000; /* PCLK is 1/4 CCLK */ PCLKSEL1 = 0x00000000;#endif#if (Fpclk / (Fcclk / 4)) == 2 PCLKSEL0 = 0xAAAAAAAA; /* PCLK is 1/2 CCLK */ PCLKSEL1 = 0xAAAAAAAA; #endif#if (Fpclk / (Fcclk / 4)) == 4 PCLKSEL0 = 0x55555555; /* PCLK is the same as CCLK */ PCLKSEL1 = 0x55555555; #endif /* Set memory accelerater module*/ MAMCR = 0;#if Fcclk < 20000000 MAMTIM = 1;#else#if Fcclk < 40000000 MAMTIM = 2;#else MAMTIM = 3;#endif#endif MAMCR = 2; GPIOResetInit(); init_VIC(); return;}/******************************************************************************** End Of File******************************************************************************/ 1 لینک به دیدگاه
Mehdi.Aref 26782 اشتراک گذاری ارسال شده در 1 آذر، ۱۳۹۵ الان اون فایلی کدی که فرستادم اگر نگاه کنید یه بخش به اسم target داره که یسری تنظیمات برای کلاک انجام داده .. الان رو کدام کلاک ست شده؟؟؟؟قسمت ConfigurePLL اگر نگاه کنید این رجیستر مربوط به main oscillator به صورت 0x01 ست شده. میشه کمی از روی این کد منو راهنمایی کنید..ممنونم /***************************************************************************** * target.c: Target C file for NXP LPC23xx/24xx Family Microprocessors * * Copyright(C) 2006, NXP Semiconductor * All rights reserved. * * History * 2006.07.13 ver 1.00 Prelimnary version, first Release ******************************************************************************/#include "LPC23xx.h"#include "type.h"#include "irq.h"#include "target.h"/******************************************************************************** Function name: TargetInit**** Descriptions: Initialize the target board; it is called in a necessary ** place, change it as needed**** parameters: None** Returned value: None** ******************************************************************************/void TargetInit(void){ /* Add your codes here */ return;}/******************************************************************************** Function name: GPIOResetInit**** Descriptions: Initialize the target board before running the main() ** function; User may change it as needed, but may not ** deleted it.**** parameters: None** Returned value: None** ******************************************************************************/void GPIOResetInit( void ){ /* Reset all GPIO pins to default: primary function */ PINSEL0 = 0x00000000; PINSEL1 = 0x00000000; PINSEL2 = 0x00000000; PINSEL3 = 0x00000000; PINSEL4 = 0x00000000; PINSEL5 = 0x00000000; PINSEL6 = 0x00000000; PINSEL7 = 0x00000000; PINSEL8 = 0x00000000; PINSEL9 = 0x00000000; PINSEL10 = 0x00000000; IODIR0 = 0x00000000; IODIR1 = 0x00000000; IOSET0 = 0x00000000; IOSET1 = 0x00000000; FIO0DIR = 0x00000000; FIO1DIR = 0x00000000; FIO2DIR = 0x00000000; FIO3DIR = 0x00000000; FIO4DIR = 0x00000000; FIO0SET = 0x00000000; FIO1SET = 0x00000000; FIO2SET = 0x00000000; FIO3SET = 0x00000000; FIO4SET = 0x00000000; return; }/******************************************************************************** Function name: ConfigurePLL**** Descriptions: Configure PLL switching to main OSC instead of IRC** at power up and wake up from power down. ** This routine is used in TargetResetInit() and those** examples using power down and wake up such as** USB suspend to resume, ethernet WOL, and power management** example** parameters: None** Returned value: None** ******************************************************************************/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;}/******************************************************************************** Function name: TargetResetInit**** Descriptions: Initialize the target board before running the main() ** function; User may change it as needed, but may not ** deleted it.**** parameters: None** Returned value: None** ******************************************************************************/void TargetResetInit(void){#ifdef __DEBUG_RAM MEMMAP = 0x2; /* remap to internal RAM */#endif#ifdef __DEBUG_FLASH MEMMAP = 0x1; /* remap to internal flash */#endif#if USE_USB PCONP |= 0x80000000; /* Turn On USB PCLK */#endif /* Configure PLL, switch from IRC to Main OSC */ ConfigurePLL(); /* Set system timers for each component */#if (Fpclk / (Fcclk / 4)) == 1 PCLKSEL0 = 0x00000000; /* PCLK is 1/4 CCLK */ PCLKSEL1 = 0x00000000;#endif#if (Fpclk / (Fcclk / 4)) == 2 PCLKSEL0 = 0xAAAAAAAA; /* PCLK is 1/2 CCLK */ PCLKSEL1 = 0xAAAAAAAA; #endif#if (Fpclk / (Fcclk / 4)) == 4 PCLKSEL0 = 0x55555555; /* PCLK is the same as CCLK */ PCLKSEL1 = 0x55555555; #endif /* Set memory accelerater module*/ MAMCR = 0;#if Fcclk < 20000000 MAMTIM = 1;#else#if Fcclk < 40000000 MAMTIM = 2;#else MAMTIM = 3;#endif#endif MAMCR = 2; GPIOResetInit(); init_VIC(); return;}/******************************************************************************** End Of File******************************************************************************/ کدی که اینجا گذاشته شده 0x1 هست که غلطه و می بایست 0x01 بشه لینک به دیدگاه
ارسال های توصیه شده