آموزش گام به گام برنامه نویسی AVR به زبان C
22 مرداد, 1395
آموزش راه اندازی پروتکل سریال در LabView
آموزش راه اندازی پروتکل سریال در LabView
4 دی, 1395
آموزش گام به گام برنامه نویسی AVR به زبان C
22 مرداد, 1395
آموزش راه اندازی پروتکل سریال در LabView
آموزش راه اندازی پروتکل سریال در LabView
4 دی, 1395
منابع کلاک در ARM

بازدیدها: 4

منابع کلاک در میکروکنترلرهای ARM سری LPC176x

PLL0:

دیاگرام کلی سیستم تولید و توزیع کلاک به شکل فوق می باشد. پس از انتخاب سیستم کلاک که می تواند یکی از موارد کریستال خارجی یا کلاک ساعت و یا نوسان ساز RC باشد، ابتدا توسط واحد Main PLL که یک ضرب کننده می باشد به حداکثر مقدار خود طبق فرمول F_cco=(2*M*F_in)/N افزایش داده می شود. M مقدار ضرب کنند می باشد و می­تواند مقداری بین 1 تا 512 داشته باشد، N مقدار تقسیم کنند می باشد و می­تواند مقداری بین 1-256 داشته باشد. F_in فرکانس کلاک ورودی می باشد. در رابطه فوق سه متغییر مورد اشاره باید به گونه مقدار دهی شوند که نتیجه F_cco بین 275MHz تا 550MHz شود.

PLL1:

USB PLL نیز یک واحد ضرب کنند و تقسیم کنند مجزا می باشد که پالس ورودی آن فقط از کریستال خارجی تامین می شود. مقدار ضرب کنند بین 1 تا 32 می باشد ولی نمی توان بیشتر از 4 در آن نوشت. همچنین مقدار تقسیم کننده می­تواند 2، 4، 8 یا 16 باشد. پس از آنکه کلاک ورودی توسط PLL0 به مقدار نهایی خود افزایش داده شد، حال توسط مقدار  CCLKSELمی تواند فرکانس کاری CPU را تعیین نمود. CCLKSEL می­تواند مقداری بین 0 تا 255 داشته باشد.

نکته 1: هنگامی که PLL0 فعال باشد مقدار CCLKSEL نمی تواند 0 یا 1 باشد! زیرا در این حالت فرکانس CPU از حد مجاز خارج می شود. (ص 56)

نکته 2: هر عددی که برای تقسیم کلاک F_cco برای CCLKSEL انتخاب می­کنید در هنگام تقسیم با عدد 1 جمع می شود. یعنی اگر CCLKSEL=4 وارد کنید در اصل کلاک CPU از تقسیم F_cco بر 5 بدست می آید.

USB Clock:

زمانی usb_clk کلاک خود را از PLL1 دریافت می­کند که کریستال خارجی فرکانسی بین 10MHz تا 25MHz داشته باشد. در صورتی که کریستال خارجی فرکانسی کمتر از 10MHz داشته باشد به صورت خودکار این کلاک از F_cco با عملیات تقسیم تامین می­شود. مقادیر ضرب و تقسیم باید بگونه ای باشد که فرکانس F_cco مقادیر 288MHz یا 384MHz یا 480MHz را تولید نماید.

مثال: فرض کنیم از کریستال 12MHz استفاده کرده ایم حال کلاک هر بخش به صورت زیر می باشد:

فرکانس پایه در تمامی بخش ها

مقدار

F_cco=(2*100*12)/6=400MHz

فرکانس CPU  بعد از تقسیم

4

CCLK=400/4=100MHz

فرکانس USB  بعد از ضرب

12MHz بزرگتر از 10MHz می باشد لذا توسط PLL1 مستقیما ضرب می شود.

4

12MHz*4=48MHz

اکنون که مقدار F_cco تولید شده است می توان برای هر کدام از سخت افزار ها و بخش های داخلی با انتخاب یک تقسیم کننده مستقل که شامل یکی از اعداد 1، 2، 4، یا 8  می باشد کلاک بخش مربوطه را تعیین نمود.