ARM Cortex microcontrollers

PICs, AVRs, Arduino, ATMEL, etc.
قوانين المنتدى
صورة العضو الشخصية
Majd
Founder
Founder
مشاركات: 1342
اشترك في: الخميس إبريل 21, 2005 10:31 pm
التخصص: Electronics and Telecom Engineering
مكان: Aden
اتصال:

ARM Cortex microcontrollers

مشاركةبواسطة Majd » الأربعاء نوفمبر 23, 2016 8:43 pm

[b]
[center]السلام عليكم ورحمة الله وبركاته[/center]
[/b]







أريد في هذا الموضوع أن اقوم ببعض التوضيح لهذا الجيل من المتحكمات Microcontrollers خصوصاً ورغم توفر المراجع وبعض البيئات المجانية Free IDEs الا أن دراستها والعمل عليها يحتاج الى الكثير من المعرفة عن كيفية عمل هذه المتحكمات حيث انها ذو نطاق ال 32Bit أي أن Registers تحتوي على 32 بت قابلة للتعديل في قيمها R\W.



ماهي ARM

ARM = Advanced RISC machine or micro-controllers



من الأسم تعني انها معالجات تستخدم ال Reduced Instruction Set Computing ولكن بشكل مطور عن مثيلاتها من المتحكمات خصوصا أن الاوامرmachine Instructions التي تستخدم تدعم ال Floating point math والتي نراها في معالجات ال DSP Digital Signal Processing المشهورة.





أولا ميزة هذا المتحمات أنها سريعة جداً ولها القابلية على تحليل البيانات والقيام بالعمليات الحسابية ذات الفواصل Floating point math حيث ان مثل هذه العمليات تحتاج الى مساحات كبيرة RAM || ROM في المتحكمات الأخرى ذات النطاق 8Bit - 16Bit ولكن بواسطة متحمات ARM فهي تقوم بهذه العمليات المعقدة بواسطة معداتها الفيزيائية وأيضا بواسطة البرمجة أي Floating point Hardware وبالأمكان التحكم أذا ماكنت تريد إستخدام الهاردوير أو السوفت وير. من مميزات إستخدام الهاردوير لعمل العمليات الرياضية المعقدة هو السرعة في الحساب ولكن العيب يأتي من ناحية إستهلاك الطاقة.



وأيضا من مميزات مثل هذه المتحكمات أنها تأتي بالعديد من الوحدات التحكمية peripherals والتي تتمثل بالمدخلات والمخرجات ووحدة التواصل متمثلة بالعديد من البروتوكولات المستخدمة في الإتصالات ووسائط الملتميديا وغيرها الكثير. أمثلة عن هذه الوحدات

[color=#FF0000]

General Purpose Input Output GPIO

Wired Communications UART, I2C, SPI, USB, CAN and etc

Multimedia modules such as Graphical LCD, TFT panel with resistive touch, SD Card and etc

Wireless communications[/color]




وهناك العديد من الوحدات التي لاتحصى للسرد والتي تدعمها مثل هذه المتحكمات وتختلف من شركة الى أخرى.



في السابق كان اقتناء مثل هذه المتحمات أمر صعب جداً ليس لسعرها أنما لصعوبة التعامل معها ومع عدم توفر بيئات البرمجة المجانية انذاك ولكن الأن التنافس بين الشركات المصنعة لكسب السوق هو ما أدى الى انتشار البيئات التعليمية والبرمجية المجانية بميزات تسمح للمستخدم من اكتشاف قدرات هذه المتحكمات حتى ولو لم تكن جميعها, ولم تكتفي الشركات المصنعة بتوفير البيئات البرمجية فقط إنما ايضا قامت بتوفير هذه المتحكمات على شكل بوردات تعليمية تطويرية حتى يتسنى للمستخدم أكتشاف قدرات هذه المتحكمات من غير أي مشاكل مع التوصيلات الخارجية لهذه المتحكمات, أي ان الشركات المصنعة قامت بعمل بعض البرودات التي تحتوي على المتحكمات مع بعض الازرار وشاشة وصلات إتصالات مثل اليو اس بي USB وغيرها ووفرتها بأسعار زهيدة لاتتجاوز ال 100 $.

وهناك أيضا بوردات تطويية Evaluation Boards وهي غالية جداً عُملت من قبل الشركات لأغراض البحث والتطوير وبواسطة هذه البوردات تستطيع التحكم بكل منفذ لهذه المتحكمة..









أنا شخصيا أستخدم متحكمات ARM من شركة [url]http://www.st.com[/url]



[color=#0000FF]STM32F7 Discovery Board[/color]

http://www.st.com/en/evaluation-tools/32f746gdiscovery.html



[img]http://www.st.com/content/ccc/fragment/product_related/rpn_information/board_photo/ab/99/10/5c/89/3d/4e/22/stm32f746g-disco.jpg/files/stm32f746g-disco.jpg/_jcr_content/translations/en.stm32f746g-disco.jpg[/img]



[color=#0000FF]STM32F429 Discovery Board[/color]



http://www.st.com/en/evaluation-tools/32f429idiscovery.html



[img]http://www.st.com/content/ccc/fragment/product_related/rpn_information/board_photo/9c/2a/bf/3d/42/a4/4b/75/stm32f429i-disco.jpg/files/stm32f429i-disco.jpg/_jcr_content/translations/en.stm32f429i-disco.jpg[/img]



[color=#0000FF]STM32F072 Evaluation Board[/color]

http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-eval-boards/stm32072b-eval.html



[img]http://media.digikey.com/photos/STMicro%20Photos/STM32072B-EVAL.jpg[/img]



أتمنى أن اكون وفقت في التبسيط..

وأنا مستعد لجميع الإستفسارات ..



في المستقبل القريب بإذن الله سأقوم بتعريف بعض بيئات البرمجة والتطوير للعمل على مثل هذه اللوحات.



تحياتي ..
Majd

صورة العضو الشخصية
Majd
Founder
Founder
مشاركات: 1342
اشترك في: الخميس إبريل 21, 2005 10:31 pm
التخصص: Electronics and Telecom Engineering
مكان: Aden
اتصال:

Re: ARM Cortex microcontrollers

مشاركةبواسطة Majd » الثلاثاء ديسمبر 06, 2016 8:48 pm

[center][b]السلام عليكم ورحمة الله وبركاته[/b][/center]




قبل الشروع في سرد الأدوات المستخدمة لتطوير وبرمجة هذا النوع من المتحكمات أحب أن أضيف معلومة بسيطة قد أكون أُغفلت عنها عند ذكري لبعض اللوحات التي أستخدمها شخصياً, أي بالمختصر أن هناك العديد من الشركات التي تقوم بتصنيع لوحات تحوي في طياتها على ال [color=#0000FF]ARM [/color]Cortex micro-controller ومثال عن ذلك

[color=#FF0000]

NXP

Toshiba

Samsung

[/color]
[color=#FF0000]ST [/color]سبق وذكرها في أول الموضوع وهي التي أستخدمها شخصياً.

[color=#FF0000] Sony

TI Texas Instruments

[/color]


والعديد التي لامجال لذكرها, وتستطيع البحث في الجوجل عن ال [color=#0000FF]ARM [/color]وستجد في النتائج العديد من الشركات التي تقدم اللوحات المختلفة والأدوات المستخدمة لبرمجتها..



والان نأتي الى البيئات التي يمكن استخدامها لبرمجة هذه المتحكمات



[url]http://www.coocox.org[/url]



وهو برنامج متكامل لبرمجة مختلف متحكمات [color=#0000FF]ARM [/color]من مختلف الشركات وهو مجاني وتستطيع تحميل البرنامج من الموقع بسهولة

وعند تثبيت البرنامج ستحتاج الى C/C++ Compiler المستخدم لترجمة الأوامر الى bin, hex, etc..

تستطيع تحميل أخر اصدار من الكمبايلر من هذا الموقع

[url]https://launchpad.net/gcc-arm-embedded[/url]



أحب أن انوه أن [color=#0000FF]Gnu tool chain[/color] هي أدوات تخضع لرخصة ال GPL المجانية, أي انك تستطيع تحميلها والعمل عليها وتعديلها ونشرها أذا احببت.



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

وتستطيع أن تعمل على خاصية ال [color=#FF0000]Debugging [/color]أي تستطيع متابعة أوامر الكود وكيفية تنفيذه من قبل المعالج خطوة بخطوة.





[url]http://www.keil.com/[/url]



برنامج مشهور وذو امكانيات عالية ولكنه ليس مجاني, وتستطيع تحميل نسخته المجانية التي تعمل بشكل كامل ولكن محدودة ببرامج ذو سعة 32 كيلو بايت فقط .. (الله يخلي التورنت والكراكات :mrgreen: )..



[url]https://www.iar.com/[/url]



وهو أيضا برنامج قوي وليس سهلاً أبداً وأيضا ليس مجاني. البرنامج مقدم من شركة TI شركة رائدة في مجال المتحكمات واشباه الموصلات بشكل عام..



[url]https://www.mikroe.com[/url]



تقدم أيضا شركة [color=#0000FF]MiKroE [/color]حلول لمعالجات ال [color=#0000FF]ARM [/color]بلغات ال C والباسكال والبيسك أيضاً. والبيئة المستخدمة معروفة جداً وسهلة في الاستخدام لوجود مكتبات عديدة جاهزة.

البرنامج ليس مجاني ونسخته المجانية أيضا تتيح لك 32 كيلو بايت الكود البرمجي الممكن حرقة في المتحكمات..



وهناك العديد من البيئات سواء مفتوحة المصدر(مجانية) أو مغلقة (ليست مجانية) لغرض برمجة متحكمات ال [color=#0000FF]ARM [/color]وعند البحث عن الأدوات المستخدمة لبرمجة ال [color=#0000FF]ARM [/color]ستجد الكثير من هذه الادوات منها الصعب في التعامل ومنها السهل..



وقبل الختام , لمحبي بيئات ال [color=#008040]Arduino [/color]لأمتيازها بالسهولة في التعامل واضافة المكتبات, هناك مجتمع من المطورين قامو بعمل Online compiler لبرمجة بعض اللوحات المخصصة لل [color=#0000FF]ARM [/color]على الانترنت, أي ان كل ماعليك فعله هو شراء احدى اللوحات المدعومة من قبلهم والتي تحمل العلامة [color=#FF0000]mbed [/color]وتقوم بالتسجيل في الموقع وتستخدم البيئة لبرمجة هذه اللوحة وعند عمل Compile سيقومون بالتدقيق اذا ماكان هناك اخطاء او تحذيرات في الكود البرمجي ومن ثم ارسال البرنامج(Hex, bin files) جاهزاً لك في حالة عدم وجود أخطاء..

وهذا رابط الموقع



[url]https://mbed.com/[/url]



وهذا رابط الكمبايلر مباشرةً (قم بالتسجيل أولاً)..

[url]https://developer.mbed.org/compiler/[/url]



هذا مختصر, وأتمنى أن اكون قد أوضحت وسهلت..



مستعد لأي استفسارات بخصوص هذا الموضوع..





[color=#FF0000]تحياتي[/color]..
Majd


العودة إلى “المتحكمات الدقيقة Microcontrollers”



الموجودون الآن

المستخدمون الذين يتصفحون المنتدى الآن: لا يوجد أعضاء مسجلين متصلين وزائران