توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : Pll
سلام دوستان
من با استفاده از PLL مشکل دارم
میشه مثال زیر رو بررسی کنید و بگید چه باید کرد :
کریستال متصل به میکرو (at91sam7x) : شانزده مگاهرتز
و نیاز به این هست که کلاک هسته 80 مگاهرتز باشه
چه باید کرد ؟ :mrgreen:
سلام همشهری:hi:
شما باید مقادیر pll و cksl رو در startup رو تغییر بدین که توی مجله هم نوشته شده
:wink:
سلام دوستان
من همچنان با PLL مشکل دارم
یه کریستال 16mhz به میکرو وصل کردم (خازن ها هم 33pf هستند)
وقتی مقادیر زیر ست میشه میکرو دیگه کار نمیکنه :
DIV : 1
MUL : 3
OUT : 80~160mhz
PLLCOUNT : 28
PRES : NONE
من از KEIL 4.1 استفاده میکنم اما همین مقادیر رو خودم هم به رجیستر ها مربوطه دادم ولی باز هم همین مشکل هست و کلا میکرو از 40 مگاهرتز به بالا کار نمیکنه !
فیلتر PLL هم مثل خیلی از بورد هایی هست که دیدم (1nf,10nf,1.5k)
ممکنه به خاطر خازن های XTAL باشه ؟
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:
سلام
حداکثر کلاک پردازنده 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 رو می سنجید ؟
سلام
میشه بگید شما با چه روشی کلاک 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)
منظورم اینه که فرکانس کاری رو صرفا برای کار کردن تعریف می کنید ؟
سلام
شما از این روش برای سنجش فرکانس کاری میکرو استفاده می کنید ؟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:
Powered by vBulletin® Version 4.2.1 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.