رفتن به مطلب

راهنمایی و کمک از اساتید پ(فوری)


ارسال های توصیه شده

سلام دوستان عزیز . یه راهنمایی خیلی ضروری لازم دارم اگر بتونید کمکم کنید ممنون میشم .

من برنامه ای روی برد mcb2300 با میکرو lpc2378 نوشتم منتها مشکلم اینه میخوام از اسیلاتور بیرون (main oscillator) میکرو که روی برد هست و 12 مگ هست استفاده کنم ولی به صورت پیش فرض روی اسیلاتور داخلی(internal RC Ocs) که 4 مگ تنظیم شده. از قسمت دیباگ میرم تو بخش peripheral که و از قسمت clock source selection نمیتونم تغییر بدم نوع clock رو و کلا روی ذاخلی ثابته!!!! میدونید چطور میتونم اینو set کنم بهmain oscillator.... ایا lock هست برد و باید کاری بکنیم برای unlock کردنش.... لطفا کمکم کنید ...

:ws52: ممنون

لینک به دیدگاه
سلام دوستان عزیز . یه راهنمایی خیلی ضروری لازم دارم اگر بتونید کمکم کنید ممنون میشم .

من برنامه ای روی برد mcb2300 با میکرو lpc2378 نوشتم منتها مشکلم اینه میخوام از اسیلاتور بیرون (main oscillator) میکرو که روی برد هست و 12 مگ هست استفاده کنم ولی به صورت پیش فرض روی اسیلاتور داخلی(internal RC Ocs) که 4 مگ تنظیم شده. از قسمت دیباگ میرم تو بخش peripheral که و از قسمت clock source selection نمیتونم تغییر بدم نوع clock رو و کلا روی ذاخلی ثابته!!!! میدونید چطور میتونم اینو set کنم بهmain oscillator.... ایا lock هست برد و باید کاری بکنیم برای unlock کردنش.... لطفا کمکم کنید ...

:ws52: ممنون

دوست عزیز شما در مورد نرم افزار مورد استفاده هیچ توضیحی ندادین ولی main oscillator اگه درست براساس ولتاژ تعیین شده 1.8 ولت با خازن و مقاومت براساس فرکانس مورد نیاز ست بشه به مشکلی نباید بخورید

لینک به دیدگاه
دوست عزیز شما در مورد نرم افزار مورد استفاده هیچ توضیحی ندادین ولی main oscillator اگه درست براساس ولتاژ تعیین شده 1.8 ولت با خازن و مقاومت براساس فرکانس مورد نیاز ست بشه به مشکلی نباید بخورید

 

سلام - ممنون از اینکه جواب دادید . من از Keil uVision5 استفاده میکنم. در مورد ولتاژ ورودیش که گفتید اطلاعات ندارم . ؟؟؟ ولی تو قسمت کانفیگ کلاک مشکل دارم چون تو دیتا شیت میکرو خوندم به صورت پیش فرض روی داخلی که 4 مگاهرتز است تنظیمه و باید بیارم روی 12 مگاهرتز خارجی. اینو مشکل دارم

لینک به دیدگاه
سلام - ممنون از اینکه جواب دادید . من از Keil uVision5 استفاده میکنم. در مورد ولتاژ ورودیش که گفتید اطلاعات ندارم . ؟؟؟ ولی تو قسمت کانفیگ کلاک مشکل دارم چون تو دیتا شیت میکرو خوندم به صورت پیش فرض روی داخلی که 4 مگاهرتز است تنظیمه و باید بیارم روی 12 مگاهرتز خارجی. اینو مشکل دارم

 

اسیلاتورتون رو با چی راه انداختید؟ آیا رجیستر مربوط به (CLKSRCSEL)external oscillator رو فعال کردید؟

لینک به دیدگاه
اسیلاتورتون رو با چی راه انداختید؟ آیا رجیستر مربوط به (CLKSRCSEL)external oscillator رو فعال کردید؟

 

من دستوری برای راه اندازی کلاک نزدم از یه کد اماده استفاده کردم که جزو sample کدهای keli بوده. الان برای config کلاک باید مقادیر رچیستری رو داخل main تغغیر بدم.؟؟

من کدکو اینجا میذارم اگر بتونی نگاهی بندازی ببینی مشکل از کجاشه... خیلی ممنونم

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه
من دستوری برای راه اندازی کلاک نزدم از یه کد اماده استفاده کردم که جزو sample کدهای keli بوده. الان برای config کلاک باید مقادیر رچیستری رو داخل main تغغیر بدم.؟؟

من کدکو اینجا میذارم اگر بتونی نگاهی بندازی ببینی مشکل از کجاشه... خیلی ممنونم

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

برای شروع کار با برنامه شما اگه از ویزارد استفاده کنید ابتدا رجیسترهای مورد نظر رو که میخواید ازش استفاده کنید فعال میکنید . در غیراینصورت میبایست رجیسترهارو در داخل برنامه فعال کنید

لینک به دیدگاه
برای شروع کار با برنامه شما اگه از ویزارد استفاده کنید ابتدا رجیسترهای مورد نظر رو که میخواید ازش استفاده کنید فعال میکنید . در غیراینصورت میبایست رجیسترهارو در داخل برنامه فعال کنید

 

[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
******************************************************************************/


لینک به دیدگاه
الان اون فایلی کدی که فرستادم اگر نگاه کنید یه بخش به اسم 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 بشه

لینک به دیدگاه

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...