MyBB Pro

P30-ART


تبلیغات


ارسال موضوع ارسال پاسخ
ADSP BF561
مهمان گرامی، خوش آمدید!
نام کاربری
گذرواژه‌
[عضویت در انجمن]


جستجوی انجمن‌ها

(جستجوی پیشرفته)

جستجو در گوگل

Google



در اين سايت


درنا بلاگ

سرویس بلاگدهی درنا بلاگ
http://dornablog.com

تبلیغات

آمار انجمن
» اعضا: 3633
» آخرین عضو: faraz
» موضوع‌های انجمن: 159
» ارسال‌های انجمن: 911

آمار کامل

ارسال: #1
۱۳۹۱/۶/۱۷, ۰۳:۴۱ صبح
ADSP BF561

این تاپیک رو برای آشنایی شما دوستان با یک پروسسور قدرتمند ایجاد کردم. انشا الله که مورد استفاده دوستان قرار بگیره.

ADSP BF561 یک میکرو پروسسور 32 بیتی dual core است.(Multiprocessor) این میکرو ساخت شرکت Analog Devices است و قیمتی حدود 40$ دارد که به نسبت کارایی آن بسیار مناسب است. متاسفانه بسنه بندی این نوع میکرو فقط ازنوع 297 ball PBGA است. کامپایلر این میکرو پروسسورها Visual DSP است. این کامپایلر از زبان برنامه نویسی C حمایت میکند. همچنین در این کامپایلر میتوان از ASEMBLY مخصوص خود شرکت استفاده کرد. پروگرام کردن این پروسسور با توجه به BOOT LOADER آن میتواند از طرق مختلف انجام شود. برای مثال این میکرو میتواند از طریق JTAG و SPI پروگرام شود. میتوان با خرید ایمولاتور مخصوص شرکت Analog Devices ( به قیمت حدود 200$) از امکانات جالب آن بهره مند شد. خصوصیات این پروسسور:
1- دارای پردازنده دو هسته ای با فرکانس کاری 600MHZ
2- دارای 328KB حافظه داخلی
3- دارای 48 پایه GPIO. فرق GPIO با پورت های مثلا AVR این هست که هر کدام از این پایه ها میتوانند وقفه خارجی را دریافت کنند. این میکرو دارای 15 منبع وقفه میباشد که هر منبع دارای چند زیرشاخه است. برای مثال منبع وقفه IVG11 مربوط به وقفه های خارجی است که خود شامل 48 پایه میشود. تمامی از IVG7~IVG15 قابلیت تغییر Priority (اولویت) وقفه وجود دارد.
4- دارای 12 کانال DMA
دارای پورتهای:
5- UART
6-SPI
7-SPORT
8-I2C

9- دارای watchdog
10- دارای 14 تایمر/PWM/کانتر 32 بیتی
و....

هرکدام از core های این میکرو خصوصیات زیر را دارا میباشند:
1- دارای 2 ALU چهل (40) بیتی
2-چهار ALU هشت بیتی مخصوص پردازش ویدو
3- دارای دو MAC شانزده بیتی
و .........

در زیر یک نمونه از کد اسمبلی آورده شده است:


.SECTION program;
.ALIGN 4;
.GLOBAL _main;
#include <defBF561.h>
_main:
P0.L=LO(FIO2_DIR);
P0.H=HI(FIO2_DIR);
R0=0;
R0.L=0X00FF;
W[P0]=R0;
P5=8;
R0.L=0X0001;
LED:
LOOP LED1 LC1=P5;
LOOP_BEGIN LED1;
P0.L=LO(FIO2_FLAG_S);
P0.H=HI(FIO2_FLAG_S);
W[P0]=R0;
CALL DELAY_1S;
P0.L=LO(FIO2_FLAG_C);
P0.H=HI(FIO2_FLAG_C);
W[P0]=R0;
CALL DELAY_1S;
R0=R0<<1;
LOOP_END LED1;
R0=0;
R0.L=0X0001;
JUMP LED;

DELAY_1S:
P2.L=0X4600;
P2.H=0X03C3;
LOOP DELAY LC0=P2;
LOOP_BEGIN DELAY;
NOP;
LOOP_END DELAY;
RTS;
///********* End Main Code Here *********///
RTS;
._main.END:

================================================

اگر دوست داشتید که ادامه بدم لطفا بگید!!!!!!!!!!!!!!!
نقل قول این ارسال در یک پاسخ بازگشت به بالا
یافتن تمامی ارسال‌های این کاربر
 سپاس شده توسط behnam ، سعید ، crz_boy
تبلیغات
ارسال: #2
۱۳۹۱/۶/۱۷, ۰۹:۵۳ صبح
آفلاین
RE: ADSP BF561

سلام...

لطفن ادامه بدید...

ممنونم از مطلب مفیدتون.
نقل قول این ارسال در یک پاسخ بازگشت به بالا
مشاهده وب‌سایت کاربر یافتن تمامی ارسال‌های این کاربر
ارسال: #3
۱۳۹۱/۶/۱۸, ۰۹:۲۳ عصر
RE: ADSP BF561

سلام....

من نمی دونم دیگه مقدمه بگم و در مورد خصوصیات این پروسسور بگم یا اینکه آموزش این پروسسور رو بگم؟؟؟
نقل قول این ارسال در یک پاسخ بازگشت به بالا
یافتن تمامی ارسال‌های این کاربر
ارسال: #4
۱۳۹۱/۶/۱۸, ۱۱:۴۲ عصر
RE: ADSP BF561

سلام بنظر من آموزش بزارید مهندس عالیهSmile
نقل قول این ارسال در یک پاسخ بازگشت به بالا
یافتن تمامی ارسال‌های این کاربر
ارسال: #5
۱۳۹۱/۶/۱۹, ۰۹:۳۸ صبح
RE: ADSP BF561

سلام به همگی:

من آموزش پروسسور رو کم کم این جا میزارم. امید وارم دوستان خوششون بیاد.( در مطلبی که امروز گذاشتم بیشتر از خصوصیات این میکروپروسسور گفتم)

یک فرق اساسی که پروسسور ها با میکروکنترلر ها دارن اینه که منابع وقفه در پروسسور ها بسیار زیاد است. برای مثال همانطور که در بالا گفتم، این پروسسور دارای 48 پایه GPIO است. همه این پایه ها به منبع وقفه ای به نام IVG11 نگاشت یا همون map میشن. منظور اینه که اگر وقفه ای در یکی از پایه ها اتفاق افتاد آدرس این زیر روالی که در IVG11 نوشته ایم فراخوانی میشه. مثلا در AVR ما INT0 داشتیم. خود INT0 یک پایه بیشتر نبود. اما در اینجا IVG11 شامل 48 پایه میشه. یعنی هنگامی که به زیر روال IVG11 رفتیم ممکنه هر کدام از این 48 پایه به ما وقفه داده باشن. پروسسور این 48 پایه رو در قالب 3 رجیستر 16 بیت در اختیار ما قرار داده و ما میتونیم وقفه هر کدام از این 3 قسمت رو mask کینم. پس هنگامی که داخل سرویس روتین IVG11 شدیم حداقل 16 پایه وجود دارند که یکی از آنها به ما وقفه داده. حالا ما از کجا بفهمیم که کدام پایه وقفه داده؟؟؟؟ بهترین راه حل خوندن تک تک پایه هاست و سپس تصمیم گیری بر اساس حالت هرکدام از پایه ها. مثلا فرض کنید پایه 10 وقفه داد. چون توی 16 تای اول هست ما حالت تمام 16 پایه اول رو چک میکنیم. هنگامی که به پایه 10 رسیدیم چون حالت این بیت با بقیه فرق میکنه میفهمیم که این پایه وقفه داده.
نقل قول این ارسال در یک پاسخ بازگشت به بالا
یافتن تمامی ارسال‌های این کاربر
 سپاس شده توسط behnam ، crz_boy
تبلیغات
ارسال: #6
۱۳۹۱/۶/۱۹, ۰۷:۴۵ عصر (آخرین ویرایش در این ارسال: ۱۳۹۱/۶/۱۹ ۰۸:۰۹ عصر، توسط behnam.)
آفلاین
RE: ADSP BF561

مرسی مهندس

یه سوال برنامه نویسی این پروسسورها با چه زبانهایی هست؟
نقل قول این ارسال در یک پاسخ بازگشت به بالا
مشاهده وب‌سایت کاربر یافتن تمامی ارسال‌های این کاربر
ارسال: #7
۱۳۹۱/۶/۱۹, ۰۹:۵۴ عصر
RE: ADSP BF561

(۱۳۹۱/۶/۱۹ ۰۷:۴۵ عصر)behnam نوشته شده توسط:  مرسی مهندس

یه سوال برنامه نویسی این پروسسورها با چه زبانهایی هست؟

سلام:

زبان برنامه نویسی این پروسسور ها (اونایی که من باهاش کار کردم) C و assembly است.
من فایل Programming Refrence رو در اینجا آپلود کردم کردم. در این PDF آموزش اسمبلی این پروسسور در کامپایلر Visual DSP کاملا آموزش داده شده است. یکی از قابلیت های ویژه این پروسسورها کار با اعداد اعشاری و Floating point است. در این PDF آموز کار با این نوع داده آورده شده. متاسفانه این pdf حدود 1200 صفحه است که خوندنش خیلی وقت میگیره. اگر اجازه بدید من هر 2-3 روز یکبار مقداری از آموزش این پروسسور رو توی سایت مینویسم تا شاید به درد کسی بخوره!!
نقل قول این ارسال در یک پاسخ بازگشت به بالا
یافتن تمامی ارسال‌های این کاربر
 سپاس شده توسط behnam ، سعید ، aida ، crz_boy
ارسال موضوع ارسال پاسخ


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان