الرئيسيةبحث

مايكروكونترولر ايه تي 90 اس 2313

'المتحكم AT90S2313'

بعض المزايا والخصائص التي يتمتع بها المتحكم AT90S2313:

1- تحتوي قائمة التعليمات على 120 تعليمة, ينفذ معظمها خلال دورة آلة واحدة.

2- ذاكرة برنامج وميضية ( Flash Program Memory ) مبنية داخل الشريحة حجمها 2Kbyte

3- قابلة لإعادة البرمجة.

4- نافذة تسلسلية SPI لتحميل البرنامج .

5- الديمومة: 1000 دورة كتابة/مسح.

6- ذاكرة معطيات داخلية RAM بطول 128Kbytes.

7- اثنان وثلاثون مسجل عمل للإغراض العامة.

8- خمسة عشر قطب I/O قابلة للبرمجة.

9- جهد التغذية: Vcc=2.7-6.0v.

10- مجال عمل الهزاز : Fck=4-20MHz .

11- مؤقت/عداد بطول 8-bit.

12- مؤقت/عداد بطول 16-bit.

13- مؤقت مراقبة watchdog قابل للبرمجة دخله من الهزاز RC الداخلي.

14- مقارن تشابهي مبني داخل الشريحة .

15- شريحة ذات عشرين قطباً .

أقطاب المتحكم ( AT90S2313):

1- Vcc : قطب جهد التغذية الموجب Vcc=2.7-6.0v .

2- GND : قطب جهد التغذية الصفري GND=0v .

3- النافذة(PortB(PB7….PB0: وهي عبارة عن نافذة I/O ذات ثمانية أقطاب ثنائية الاتجاه مزودة بترانسيزتور رفع داخلي ، وحيث أننا نستطيع استخدام القطبين PB0 و PB1 كمدخل موجب ( AIN0) ومدخل سالب ( AIN1 ) على الترتيب للمقارن التشابهي المبني على شريحة المتحكم MCU . تتمتع النافذة B بمزايا أخرى خاصة بعمل المتحكم AT90S2313 .

4- النافذة (Port D( PD6….PD0: وهي عبارة عن نافذة I/O ذات سبعة أقطاب ثنائية الاتجاه مزودة بترانزيستور رفع داخلي ، تتمتع النافذةD بمزايا أخرى خاصة بعمل المتحكم AT90S2313 .

5- قطب التصفير RESET  : مدخل التصفير ، عند تطبيق إشارة كهربائية ذات منطق منخفض على القطب RESET لمدة دورتي آلة أثناء عمل هزاز الشريحة ، فإن دارة التصفير الداخلية تعمل على تصفير المتحكم MCU .

6- مدخل الهزاز XTAL1: هو عبارة عن مدخل لمضخم الهزاز العاكس و هو أيضاً مدخل لدارة تشغيل الساعة الداخلية .

7- مدخل الهزاز XTAL2: هو عبارة عن مخرج لمضخم الهزاز العاكس.

لمحة بنيوية عن المتحكم AT90S2313 :

لقد اعتمدت متحكمات AVR مفهوم بنية هارفارد التي تعنون ذاكرة المعطيات وذاكرة البرنامج بخطوط منفصلة ( على خلاف البنية التي وضعها العالم فون نويمان في مذكرته ) . حيث يتم الولوج لذاكرة البرنامج بدورة ممر واحدة. فعندما تبدءا وحدة المعالجة المركزية بتنفيذ التعليمة الأولى ، فانه يتم إحضار شفرة التعليمة التالية من ذاكرة البرنامج ، وبالتالي أدت هذه البنية إلى تنفيذ التعليمة بدورة ساعة واحدة . ونذكر هنا أن ذاكرة البرنامج هي ذاكرة ومضيه Flash قابلة لإعادة البرمجة مبنية على شريحة المتحكم MCU .

وحدة الحساب والمنطق ALU : تدعم وحدة الحساب والمنطق ( ALU ( Arithmetic Logic Unit العمليات الحسابية و المنطقية بين المسجلات أو بين عدد فوري ثابت ومسجل. كما تقوم وحدة الحساب والمنطق بتنفيذ بعض العمليات على مسجل وحيد.حيث تعمل الـ ALU بالارتباط المباشر مع اثنين وثلاثين مسجل ( مسجل الأغراض العامة ) ، فخلال دورة ساعة واحدة تنفذ وحدة الحساب والمنطق عملية ما بين مسجلين في ملف المسجلات . فهي تقوم أولا بإخراج المعاملين من المسجلات, ومن ثم تنفذ العملية ، ومن ثم تعيد تخزين النتيجة في ملف المسجلات . وكل ذلك يتم خلال ساعة واحدة .

ذاكرة البرنامج و ذاكرة المعطيات :

أولا – ذاكرة المعطيات: تم تنظيم ذاكرة المعطيات وتقسيمها إلى ثلاث أقسام وهي : مسجلات العمل ذات الأغراض العامة ( ملف المسجلات ) . حيز ذاكرة الـ I/O . SRAM وهي ذاكرة المعطيات

1- ملف المسجلات ذات الإغراض العامة :

يتألف ملف المسجلات من اثنين وثلاثين مسجل عمل من اجل العمليات الحسابية والمنطقية, تشكل آخر ستة من هذه المسجلات ثلاث مسجلات مؤشر بطول 16-bit تستخدم في العنونة غير المباشرة لعنونة حيز المعطيات, والتي تسهل حساب العنوان الفعال. ملاحظة : فقط التعليمات التي تتعامل مع الأعداد بشكل مباشر مثل:CPI ، SUBI ، SBCI ORI ، ANDI ، تطبق على مسجلات النصف الثاني لملف المسجلات R16….R31. نلاحظ أن لكل مسجل عنوان في حيز عنونة ذاكرة المعطيات ، وبالتالي فإننا نستطيع استخدام أنماط عنونة الذاكرة التقليدية لعنونة ملف المسجلات أيضا, وهذا متاح على اعتبار أن ملف المسجلات معين باثنين وثلاثين مسجلاً متوضعة عند حيز عنونة المعطيات السفلي ( $00-$1F) مما يسمح لنا بالولوج إلى ملف المسجلات كمواقع ذكرية .

2- حيز ذاكرة الـ I/O  :

تتوضع مختلف الوظائف المحيطية و وظائف الدخل / الحرج للمتحكم AT90S2313 في حيز ذاكرة الـ I/O . ويتم الوصول إلى مختلف مواقع I/O باستخدام التعليمتين IN و OUT اللتين تحولان المعطيات ما بين مسجلات العمل الاثنين و الثلاثين ذات الأغراض العامة وحيز ذاكرة I/O. يحتوي حيز ذاكرة الـ I/O على أربع وستين عنوان مخصص لوظائف وحدة المعالجة المركزية CPU المحيطية مثل مسجلات التحكم, المؤقتات / العدادات ، المبدلات A/D ، و وظائف I/Oالأخرى . ونستطيع الوصول إلى حيز I/O بشكل مباشر باستخدام التعليمتين SBI و CBI ، أو من خلال عناوين حيز المعطيات التالي لملف المسجلات ( $20-$5F) ، وكذلك يمكننا فحص أي خانة من هذه المسجلات باستخدام التعليمتين SBIS و CBIS .

3- ذاكرة المعطيات SRAM :

يتألف عنونة ذاكرة المطيات من 244 ‏موقع مخصص لملف المسجلات وحيز ذاكرة I/O ‏وذاكرة المعطيات SRAM ‏ حيث خصص أول 96 ‏موقع لملف المسجلات وحبز ذاكرة I/O ‏ وخصص آخر 128 ‏موقع لعنونة ذاكرة المعطيات SRAM ‏.و بالتالي يكون حجم الذاكرة 128 0 Byte ) SRAM ‏) . يتوضع المكدس فعليا في ذاكرة المعطيات العامة SRAM ‏، و بالتالي فان حجم المكدس بتحدد فقط بحجم الذاكرة SRAM ‏ الإجمالي . ويقع على عاتق المبرمج تهيثة مؤشر المكدس SP في روتين خدمة التصفير reset ‏ وذلك فبل تنفيذ البرامج الفرعية و المقاطعات ‏, ومؤشر المكدس هو عبارة عن مسجل يعرض 8-bit ‏نستطيع قراءته أو الكتابة عليه . وتتم الوصول إليه بعنوانه المتوضع في حيز ذاكرة I/O

ذاكرة البرنامج الومضية القابلة لاعادة التحميل :

تحتوي شريحة المتحكم AT90S2313 على ذاكرة ومضيه قابلة لإعادة التحميل بطول 2Kbyte مخصصة لتخزين البرامج حيث أن لكل التعليمات تقريبا شيفرة وحيدة بطول كلمة 16-Bit أو كلمتين 32-Bit ولهذا فقد نظمت هذه الذاكرة 1K× 16

نوافذ الدخل و الخرج I/O PORTS :

أولا النافذة B

النافذة B هي عبارة عن نافذة دخل ظ خرج ثنائية الاتجاه ذات ثمانية أقطاب تتوضع عناوين مسجلات النافذة B الثلاث في حيز ذاكرة I/O وهي : 1- مسجل المعطيات PORTB الذي يتوضع عند العنوان $18($38) ، يستخدم من أجل إخراج المعطيات

2- مسجل اتجاه المعطيات DDRB

الذي يتوضع عند العنوان $17($37) ، يستخدم لتحديد اتجاه المعطيات

3- عنوان أقطاب دخل النافذة PINB-B

الذي يتوضع عند العنوان $16($36) ، يستخدم فقط في الإدخال يجب الانتباه إلى إن عنوان أقطاب النافذة B يقرأ فقط بينما تنفذ عمليات القراءة و الكتابة على مسجل المعطيات و مسجل اتجاه المعطيات تتم عملية اختيار ترانزستور الرفع MOS Pull-up بشكل مستقل لكل قطب من أقطاب النافذة B

مسجل معطيات النافذة PORTB-B :

إن عنوان أقطاب النافذة PINB-B ليست مسجلا فيزيائيا. حيث نستطيع الوصول بهذا العنوان إلى القيم الفيزيائية الموجودة على كل قطب من أقطاب‏النافدة B ‏. فعند قراءة مسجل النافذة PORTB-B فإننا نقرأ معطيات ماسك latch ‏النافذة B. أما عندما نقرأ عنوان أقطاب دخل النافدة B فإننا نقرأ القيم المنطقية الحالية الموجود ‏على أقطاب هذه النافذة. يبين الجدول التالي تأثير الخانة DDR Bn على أقطاب النافذة B (حيث أن 0…6:n= رقم القطب) وكذلك الأمر بالنسبة للنافذة (D)

كيفية برمجة المتحكم :

يتم برمجة المتحكم الصغرى بواسطة دارة يتم وصلها إلى الكومبيوتر عن الكومبيوتر عن طريق المنفذة التسلسلي(COM) أو التفرعي (LPT) أو منفذ ال USB . هذه الدارة تقوم بوصل أقطاب البرمجة للمتحكم الصغرى الثمانية إلى المنفذ وهذه الأقطاب هي : عملية تصنيع مبرمجة لجميع المتحكم عائلات المتحكم الصغرى AVR ليس بالأمر الصعب ، حيث تتوافر مخططاتها بكثرة لدرجة أنه بإمكانك تصنيعها بنفسك

تطبيق عملي :

المطلوب تصميم دارة تقوم بإضاءة مجموعة من الليدات (ثمانية ليدات) وفق حركات معينة (مثلا إضاءة الليد الأول ثم إضاءة الليد الثاني مع بقاء الأول مضاء ... وهكذا الثالث و....) ثم الانتقال إلى حركات أخرى

لنبدء أولا بتصميم دارة التغذية و المؤلفة على الترتيب من المراحل التالية  :

1- مقوم الموجة الكاملة

2- مرحلة تنعيم (مكثف كيميائي موصول على التفرع)

3- منظم الجهد (وهو عبارة عن IC تعطي في خرجها 5v )

4- مرحلة تنعيم أخرى (مكثف كيميائي موصول على التفرع )

تؤمن دارة التغذية جهد ملائم لعمل المتحكم الصغير حيث تقوم بتحويل التيارالمتناوب إلى تيار مستمر ذو قيمة يوافق منظم الجهد المستخدم (تم استخدام منظم الجهد 7805 الذي يعطي جهد مستمر 5v ) نقوم بربط الليدات الثمانية المطلوبة إلى المنفذ P مثلا وبالتالي تتحدد إضاءة الليدات بحسب القيمة الستة عشرية المخرجة من النافذة B ومنه فإن أي ليد نريد إضاءته نضع مكانه (1) منطقي و أي ليد نريد إطفاء نضع مكانه (0) منطقي ونحسب العدد الست عشري الناتج لنرسله على النافذة B كما في المثال التالي

1- إضائة اليد الاول :

وبالتالي تكون الشيفرة بالست عشري هي : 16(01) = 2(00000001)

2- إضاءة الليد الأول والثاني :

وبالتالي تكون الشيفرة بالست عشري هي : 16(03) = 2(00000011)

3- إضاءة الليد الأول والثاني و الثالث :

وبالتالي تكون الشيفرة بالست عشري هي : 16(07) = 2(00000111) و هكذا........

وبالتالي بكون شكل الدارة النهائي بعد الأخذ بعين الاعتبار وصل الهزاز الكرستالي للمتحكم و وصل المقاومات و الجهد vcc و الأرضي و قطب التصفير Rest :

التحليل النطقي للبرنامج :

يجب في البداية تهيئة المكدس و تهيئة المنفذ B ليكون في وضع الخرج و التالي يتم إخراج القيم الست عشرية على هذه النافذة بما يتناسب مع إضاءة ليد و إطفاء آخر لما هو مرغوب مع ملاحظة أنني بحاجة إلى برنامج تأخير زمني مناسب لتمكنني من رؤية العملية المطبقة على الليدات بشكل واضح

التعليمات المستخدمة في البرنامج :

(LDI (Load Immediate تقوم هذه التعليمة بتحميل عدد ثابت بطول (8 Bit) بشكل مباشر إلى المسجل (Rd) LDI Rd ، K

(OUT (Store Register to I/O Location تقوم هذه التعليمة بتخزين المعطيات من المسجل (Rd) الموجود في ملف المسجلات إلى حيز OUT A ، Rd

(RCALL (Relative Subroutine CALL تقوم هذه التعليمة بتنفيذ إستدعاء نسبي لعنوان موجود ضمن مجال ذاكرة البرنامج ويخزن عنوان العودة في المكدس وعند كتابة التعليمات في المترجم نقوم بإستخدام لافتات عوضا عن معاملات الناوين النسبية

(DEC (Decrement : تقوم هذه التعليمة بإنقاص محتوى المسجل بقدار واحد وتعيد تخزين النتيجة في مسجل الهدف

(BRNE (Branch if Not Equal : تقوم هذه التعليمة بإنجاز قفز نسبي مشروط فتفحص علم الصفر ZF في مسجل الأعلام ولا تقوم بالقفز في حال ZF=0 بل ينابع البرنامج العمل بدءا من التعليمة التالية

(CPI (Compare With Immediate : تقوم هذه التعليمة بإنجاز عملية مقارنة بين المسجل و قيمة فورية ثابتة ، وإنما تتأثر بهذه لتعليمة أعلام مسجل الحالة فقط ، بحيث لا تغير من قيمة المسجل

Download Links

[1]


[2]


[3]

Datasheet AT90S2313 Rev B/C Errata Mature

[4]

Application Note AVR091: Replacing AT90S2313 by ATtiny2313

[5]

Article Wireless MP3 Remote Jukebox with Atmel AT90S2313-4PC

[6]