PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : Pll



rn4j1m1
15-10-2010, 17:34
سلام دوستان
من با استفاده از PLL مشکل دارم
میشه مثال زیر رو بررسی کنید و بگید چه باید کرد :
کریستال متصل به میکرو (at91sam7x) : شانزده مگاهرتز
و نیاز به این هست که کلاک هسته 80 مگاهرتز باشه
چه باید کرد ؟ :mrgreen:

rn4j1m1
15-10-2010, 21:34
F1(help)
:d

armstk
16-10-2010, 01:11
سلام همشهری:hi:
شما باید مقادیر pll و cksl رو در startup رو تغییر بدین که توی مجله هم نوشته شده
:wink:

rn4j1m1
25-10-2010, 02:18
سلام دوستان
من همچنان با PLL مشکل دارم
یه کریستال 16mhz به میکرو وصل کردم (خازن ها هم 33pf هستند)
وقتی مقادیر زیر ست میشه میکرو دیگه کار نمیکنه :
DIV : 1
MUL : 3
OUT : 80~160mhz
PLLCOUNT : 28
PRES : NONE
من از KEIL 4.1 استفاده میکنم اما همین مقادیر رو خودم هم به رجیستر ها مربوطه دادم ولی باز هم همین مشکل هست و کلا میکرو از 40 مگاهرتز به بالا کار نمیکنه !
فیلتر PLL هم مثل خیلی از بورد هایی هست که دیدم (1nf,10nf,1.5k)

ممکنه به خاطر خازن های XTAL باشه ؟

rn4j1m1
25-10-2010, 16:04
F1

rn4j1m1
26-10-2010, 01:30
چه باید کرد ؟

rn4j1m1
26-10-2010, 22:20
کسی اینجا نیست ؟ cry::

rn4j1m1
27-10-2010, 23:41
یکی بیاد یه چیزی بگه

Division
28-10-2010, 09:43
سلام


کریستال متصل به میکرو (at91sam7x) : شانزده مگاهرتز
و نیاز به این هست که کلاک هسته 80 مگاهرتز باشهحداکثر کلاک پردازنده AT91SAM7X بیشتر از 55 مگاهرتز نمیتونه بشه !:0013:

فرکانس خروجی PLL درصورتی که PLL Clock Frequency Range در رجیستر CKGR_PLL برابر 00 باشه حداقل فرکانس خروجی PLL میشه 80 و حداکثر 160 مگاهرتز میشه .
و در صورتی که مقدار PLL Clock Frequency Range برابر مقدار 10 (باینری) بشه حداقل فرکانس خروجی 150 و حداکثر 200 مگاهرتز میشه .

پس با این حساب فرکانس خروجی PLL نباید کمتر از 80 مگاهرتز باشه در حالی که شما فرکانس خروجی PLL رو 64 کانفیگ کردین که این اشتباهه :mrgreen:

رابطه اصلی فرکانس خروجی 7x هم رو که می دونید دیگه :


PLLCK=(MUL + 1)/DIV)*Fosc


الان شما باید مقدار ها رو به راحتی تعیین کنید (به شرط اینکه فرکانس خروجی بیشتر از 80 بشه )
ولی یه سوالی پیش میاد اونم اینکه این فرکانس 80 آیا مستقیما وارد CPU میشه ؟
جوابش منفیه چون قبل از ورود به CPU از یه قسمت Prescaler عبور میکنه و شما باید اونجا مقدار خروجی از Prescaler رو روی فرکانس های زیر 55 مگاهرتز تنظیم کنید .؟(چون ATMEL تو دیتا شیت نوشته که پردازنش حداکثر کلاک کاریش UP TO 55MHZ هستش)


موفق باشید :wink:

rn4j1m1
28-10-2010, 22:53
سلام

حداکثر کلاک پردازنده AT91SAM7X بیشتر از 55 مگاهرتز نمیتونه بشه !:0013:

فرکانس خروجی PLL درصورتی که PLL Clock Frequency Range در رجیستر CKGR_PLL برابر 00 باشه حداقل فرکانس خروجی PLL میشه 80 و حداکثر 160 مگاهرتز میشه .
و در صورتی که مقدار PLL Clock Frequency Range برابر مقدار 10 (باینری) بشه حداقل فرکانس خروجی 150 و حداکثر 200 مگاهرتز میشه .

پس با این حساب فرکانس خروجی PLL نباید کمتر از 80 مگاهرتز باشه در حالی که شما فرکانس خروجی PLL رو 64 کانفیگ کردین که این اشتباهه :mrgreen:

رابطه اصلی فرکانس خروجی 7x هم رو که می دونید دیگه :


PLLCK=(MUL + 1)/DIV)*Fosc


الان شما باید مقدار ها رو به راحتی تعیین کنید (به شرط اینکه فرکانس خروجی بیشتر از 80 بشه )
ولی یه سوالی پیش میاد اونم اینکه این فرکانس 80 آیا مستقیما وارد CPU میشه ؟
جوابش منفیه چون قبل از ورود به CPU از یه قسمت Prescaler عبور میکنه و شما باید اونجا مقدار خروجی از Prescaler رو روی فرکانس های زیر 55 مگاهرتز تنظیم کنید .؟(چون ATMEL تو دیتا شیت نوشته که پردازنش حداکثر کلاک کاریش UP TO 55MHZ هستش)


موفق باشید :wink:






ممنون
اون یه مثال بود
الان من مقدار ضرب شده رو میزارم 9 و بر 3 هم تقسیم میشه اما باز هم مشکل داره و کلا بیشتر از 42 مگاهرتز مشکل داره
مثلا برای 48 مگاهرتز باید n بار ریست بکنم تا بالاخره کار کنه

Division
28-10-2010, 23:25
اما باز هم مشکل داره و کلا بیشتر از 42 مگاهرتز مشکل داره

سلام

میشه بگید شما با چه روشی کلاک cpu رو می سنجید ؟

rn4j1m1
29-10-2010, 01:44
سلام

میشه بگید شما با چه روشی کلاک cpu رو می سنجید ؟

مثلا الان کریستال 20 مگاهرتز گذاشتم و
DIV = 5
MUL = 13
Prescaler = None
توی این شرایط میکرو درست کار نمیکنه اما اگه MUL برابر با 11 باشه همه چی درست میشه

Division
30-10-2010, 01:30
مثلا الان کریستال 20 مگاهرتز گذاشتم و
DIV = 5
MUL = 13
Prescaler = None
توی این شرایط میکرو درست کار نمیکنه اما اگه MUL برابر با 11 باشه همه چی درست میشه

سلام

شما از این روش برای سنجش فرکانس کاری میکرو استفاده می کنید ؟ii998)
منظورم اینه که فرکانس کاری رو صرفا برای کار کردن تعریف می کنید ؟

rn4j1m1
31-10-2010, 00:09
سلام

شما از این روش برای سنجش فرکانس کاری میکرو استفاده می کنید ؟ii998)
منظورم اینه که فرکانس کاری رو صرفا برای کار کردن تعریف می کنید ؟

نمیدونم منظورتون چیه اما شما لطفا بگید چه کار کنم
الان کریستال 20 مگاهرتز روی بورد هست و میخام میکرو با 55 مگاهرتز کار کنه

Division
31-10-2010, 00:41
نمیدونم منظورتون چیه اما شما لطفا بگید چه کار کنم
الان کریستال 20 مگاهرتز روی بورد هست و میخام میکرو با 55 مگاهرتز کار کنه


شمات باید چند تا کار رو انجام بدید :

1- فعال کردن اسیلاتور خارجیmain oscillator
2- مقدار دهی ضریب تقسم و ضریب ضرب در واحد PLL
3- راه اندازی PLL
4- مقدار دهی تقسیم کننده متصل به خط کلاک PLLCK به منظور تامین فرکانس پردازنده (حداکثر خروجی کلاک بعد از تقسم کننده CPU باید 55 باشه نه بیشتر!)
5- کلاک پایه مورد نظرتون رو فعال کنید (برای تست کلاک)
6- این نکته رو هم مد نظر داشته باشین که میکرو تو یه سیکل نمیتونه به حافظه فلش دسترسی داشته باشه این مقدار تو بدترین حالت در صورت استفاده از سرعت پردازنده تو مد کاری حداکثری به 30MHZ محدود میشه (صفحه
15 دیتا شیت)

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

من برای تراشه LPC2378 تست گرفتم دیدم حداکثر فرکانسی که میتونه روی پایه هاش بندازه دقیقا 36 مگاهرتز بود (البته تو دیتا شیتش هم اشاره کرده بود که حداکثر تو 2 سیکل پردازنده میتونه به پایه هاش کانکنت بشه)

لازم به توضیح هستش که هسته تراشه LPC2378 همون هسته AT91SAM7x256 هستش تازشم کلاکش به میزان 23% بهینه تر شده یعنی با این حساب شما صد در صد تو خروجی AT91SAM7x256 فرکانس زیر 36 مگ رو میتونی دریافت کنی .

اگه بازم سوالی بود خوشحال میشم کمکی کرده باشم .
موفق باشید :wink: