[glow=red,2,300]با عرض سلام و خسته نباشید خدمت همه ی دوستان عزیزم ! قبل از شروع کار تو همین تاپیک ازتون خواهش میکنم که نظراتتونو در تاپیک زیر ارسال کنید تا مطالب بصورت پیوسته با نظم خاصی ارائه بشه که مطمئناً نظر خیلی از دوستان هم همینه ... نظر یادتون نره، نظر دادن شما میتونه تو کیفیت مطالب ارائه شده موثر باشه..... یا علی !!!! http://www.eca.ir/forum2/index.php?topic=105090.0[/glow]
از موضوع تاپیک پیداست که قراره با هم آموزش کامل برنامه نویسی میکروکنترلر ARM LPC176X Cortex-M3 رو که ساخت شرکت NXP هستش و امروزه در بسیاری از پروژه های صنعتی به کار گرفته میشه رو بصورت تخصصی و حرفه ای دنبال کنیم. یکی از دلایلی که باعث شد تا این تاپیک رو ایجاد کنم در واقع پراکنده بودن مطالب آموزشی و نبود مطالب مهم و پیشرفته در رابطه با این سری از میکروکنترلرها بود و از طرفی در بسیاری از انجمن ها به فراخورد میدم که بعضی ها با مشکلات اساسی در کار کردن با این تراشه قدرتمند روبرو میشدند و به ندرت میتوانستند بدون منابع آموزشی اونو رفع کنند ، اما من در این اینجا قصد دارم از 0 تا 100 مباحث مربوط به این تراشه رو براتون بصورت آموزشی در طی جلسات متعدد قرار بدم و شما رو از هرگونه منابع آموزشی بی نیاز کنم ، مطالبی رو که من براتون قرار میدم همشونو بصورت عملی تجربه کردم و همه مباحث رو بصورت تکنیکی و کاربردی - مهندسی براتون میزارم . اما بریم سراغ تهیه تجهیزات سخت افزاری و نرم افزاری :
1 - سخت افزار
شاید برای شروع کار براتون مشکل باشه که خودتون بخواین PCB برد رو پیاده سازی کنید، اما نگران نباشید ، واسه این سری از میکروکنترلرها اونقدر برد داخلی و خارجی وجود داره که شما رو از این جهت بی نیاز کنه ، اما اینکه کدوم برد رو واسه کارتون ( آموزشی - صنعتی ) انتخاب کنید خیلی مهمه !!!
اگه واقعاً می خواین بصورت حرفه ای با این میکرو کار کنید و بر روی تمام امکاناتش تسلط کامل داشته باشین پیشنهاد من به شما برد شرکت ECA هستش که میدونم خیلی هاتون اون خریداری کردین اما دلیل من در انتخاب این برد اینه که این برد در واقع تنها برد آموزشی و حرفه ای هستش که از واحد پردازش صدای دیجیتال I2S پشتیبانی میکنه و هم ماژول های متنوعی رو ساپورت میکنه و مورد مهم دیگه اینه که هسته مرکزی که خود LPC1768 هستش بصورت هدربرد روی برد قراره داره که میتونید در کاربردهای دیگه ازش استفاده کنید و ...
اگه هم توان خرید برد رو ندارید میتونید هدربرد رو خریداری کنید و در طی جلسات متعدد قطعات مورد نیاز رو تهیه و روی بردبرد پیاده سازی کنید >>>
2 - پروگرامر
برنامه ریزی تراشه های ARM یکی از مهم ترین قسمت های کاره ، کلاً شما دو راه بیشتر پیش روتون نیست ، راه اولش اینه که از Bootloder برای پروگرام کردن استفاده کنید که بیشتر برای افراد مبتدی مناسبه و راه دوم استفاده از پروگرامر قدرتمند JLINK که مطمئناً بهتر از این پروگرامر نمیتونید گیر بیارید ، اگه میخواین حرفه ای کار کنید و کارتون طوری هستش که باید دائماً برنامه رو میکرو پروگرام کنید بهتره از JLINK استفاده کنید که میتونید از ECA اونو خریداری کنید البته میتونید از دیباگر و پروگرامر Wiggler هم استفاده کنید که امکان پروگرام کردن میکرو رو از طریق پورت LPT براتون ممکن میکنه که آلان کمتر کسی از این پروگرامر استفاده میکنه ولی به هر حال نظر خودتونه >>>
3 - نرم افزار
بعد از تهیه سخت افزار و پروگرامر باید نرم افزار یا به اصطلاح کامپایلر رو تهیه کنیم ، کامپایلر در واقع نرم افزاری هستش که امکان کدنویسی رو برای میکرو توسط کاربر فراهم میکنه ، بهترین کامپایلر در این زمینه کامپایلر Keil هستش که اکثر مهندسین ، طراحان و دانشجویان چه در امور آموزشی و چه صنعتی از اون استفاده میکنند ، هر چند نسخه اورجینالشو به دلیل تحریم شدن ایران نمیتونیم تهیه کنیم ولی در کل مثل Codevisionavr کارمونو راه میندازه و از طرفی با همکاری بچه های بالا :biggrin: میتونیم بعضی از کتابخونه های مهم و کاربردی رو هم تهیه کنیم . آخرین نسخه این نرم افزار در روزی که این مطلب نوشته شد Keil 5.13 بود ، در این نسخه کمپانی Keil تغییرات اساسی رو لحاظ کرده و حجم نرم افزار کم شده و ما میتونیم کتابخانه های مورد نیاز رو از سایت Keil بصورت Pack دریافت کنیم اما چون این نسخه کامل نشده و از طرفی یه خورده هم میره رو اعصاب آدم ( چون کامل نیست یه خورده قاطی داره ، الکی به تابع ها گیر میده و ... ) من بهتون پیشنهاد میکنم که تا زمان کامل شدن این نسخه از نسخه Keil 4.74 استفاده کنید . در این تاپیک ما آموزش رو با نسخه 4.74 دنبال می کنیم و به امید خدا بعد از اتمام مرحله ی آخر آموزش کار با آخرین نسخه Keil رو براتون میزارم . حالا مباحثی که قراره بصورت جلسه ای بهتون آموزش بدم رو زیر عنوان کردم :
جلسه 1 : مقدمه ای بر میکروکنترلرهای ARM ، واحد حافظه ، مختصری از تاریخچه ARM ، معماری پردازنده های ARM ، هسته های Cortex-M3 ، معرفی قابلیت های تراشه ARM LPC176X CM3 ، نحوه ایجاد پروژه و شبیه سازی در Keil ، برنامه ریزی تراشه در محیط Keil با پروگرامر JLINK ، اصول طراحی برنامه نویسی C ( انتشار یافت )
جلسه 2 : باس های AHB و APB ادوات جانبی متصل شده به آنها ، کنترل منابع Reset ، کنترل منابع کلاک ، فعال سازی قفل حافظه Flash ،تنظیم فرکانس میکروکنترلر ( 100MHZ , 120MHZ , 150MHZ ) ( انتشار یافت )
جلسه 3 : پورت های ورودی / خروجی ( GPIO ) - وقفه های GPIO ( معرفی NVIC اختصاصی جلسه 3 ) ( در حال تألیف )
جلسه 4 : نامشخص
جلسه 5 : نامشخص
جلسه 6 : بررسی رجیسترهای PINSEL و PINMODE
جلسه 7 : وقفه های خارجی ( External Interrupts ) - کنترل توان ( PWR )
جلسه 8 : راه اندازی و کنترل نمایشگرهای LCD کاراکتری
جلسه 9 : راه اندازی و کنترل نمایشگرهای گرافیکی مُدل GLCDKS0108
جلسه 10 : راه اندازی و کنترل نمایشگرهای سون سگمنت و دات ماتریس
جلسه 11 : اسکن صفحه کلید ماتریسی 4 * 3 - 4 * 4
جلسه 12 : راه اندازی و کنترل نمایشگر های TFTLCD از سایز 2.8 تا 9 اینچی
جلسه 13 : راه اندازی و کنترل تاچ اسکرین نمایشگرهای TFTLCD با تراشه درایور مخصوص تاچ
جلسه 14 : مبدل آنالوگ به دیجیتال ( ADC )
جلسه 15 : مبدل دیجیتال به آنالوگ ( DAC )
جلسه 16 تا 18 : تایمر و شمارنده ها ( Timer / Counter )
جلسه 19 : تایمر سگ نگهبان ( WDT )
جلسه 20 : تایمر وقفه تکرار شونده ( RIT )
جلسه 21 : تایمر System Tick
جلسه 22 : مدولاسیون پهنای پالس ( PWM )
جلسه 23 : واحد کنترل موتور سه فاز ( MCPWM )
جلسه 24 : واحد زمان سنج دقیق ( RTC )
جسله 25 تا 27 : ارتباط سریال UART
جلسه 28 : ارتباط سریال کامپیوتری ( RS232 )
جلسه 29 : شبکه سریال RS485
جلسه 30 : تبادل دیتا از طریق Blurtooth با ماژول HC-05 و مدل های مشابه
جلسه 31 تا 33 : ارتباط سریال دو سیمه ( TWI - I2C )
جلسه 34 : خواندن و نوشتن دیتا بر روی حافظه سریال EEPROM مدل AT24CXXXX
جلسه 35 ت 36 : ارتباط جانبی سریال ( SPI )
جلسه 37 تا 40 : ارتباط سریال آسنکرون ( SSP )
جلسه 41 تا 42 : خواندن و نوشتن دیتا ، خواندن فایل و حذف آن ، ایجاد پوشه و حذف آن و ... بر روی حافظه MMC/SD
جلسه 43 : عکسبرداری و فیلمبرداری با دوربین رنگی OV7670 و ذخیره بر روی مموری کارت MMC/SD
جلسه 44 : ضبط و پخش فایل های صوتی با فرمت MP3
جلسه 45 تا 47 : واحد پردازشگر سیگنال های دیجیتالی صوت ( I2S )
جلسه 48 : واحد GPDMA
جلسه 49 تا 60 : پیاده سازی کامل شبکه Ethernet با ارائه مثال های جامع
جلسه 61 : پروتکل ارتباط صنعتی CAN
جلسه 62 تا 70 : پیاده سازی کامل ارتباط USB Device - Host - OTG و مدهای مربوطه
جلسه 71 : اتصال کیبورد کامپیوتر ، دوربین دیجیتالی به میکرو از طریق پورت USB Host
جلسه 72 تا 80 : برنامه نویسی تحت سیستم عامل RTX
جلسه 81 تا 90 : پیاده سازی کامل سیستم عامل گرافیکی Emwin بر روی تراشه ARM LPC1768 - 69 Cortex-M3 و بررسی توابع کاربردی
جلسه 91 تا 95 : برنامه نویسی تحت سیستم عامل بصورت ترکیبی با RTX و Emwin
جلسه 96 تا 98 : کار با برخی از توابع DSP
جلسه 99 : ارتباط میکرو با ماژول SIM908 و پیاده سازی کامل شبکه GSM / GPRS / GPS با نمایشگر رنگی TFTLCD 5Inch
جلسه 100 : واکی تاکی با ماژول مخابراتی NRF24L01
********* آموزش کار با آخرین نسخه نرم افزار Keil
{ دوستان فقط برام دعا کنید تا مشکلم حل بشه :sad: }
از موضوع تاپیک پیداست که قراره با هم آموزش کامل برنامه نویسی میکروکنترلر ARM LPC176X Cortex-M3 رو که ساخت شرکت NXP هستش و امروزه در بسیاری از پروژه های صنعتی به کار گرفته میشه رو بصورت تخصصی و حرفه ای دنبال کنیم. یکی از دلایلی که باعث شد تا این تاپیک رو ایجاد کنم در واقع پراکنده بودن مطالب آموزشی و نبود مطالب مهم و پیشرفته در رابطه با این سری از میکروکنترلرها بود و از طرفی در بسیاری از انجمن ها به فراخورد میدم که بعضی ها با مشکلات اساسی در کار کردن با این تراشه قدرتمند روبرو میشدند و به ندرت میتوانستند بدون منابع آموزشی اونو رفع کنند ، اما من در این اینجا قصد دارم از 0 تا 100 مباحث مربوط به این تراشه رو براتون بصورت آموزشی در طی جلسات متعدد قرار بدم و شما رو از هرگونه منابع آموزشی بی نیاز کنم ، مطالبی رو که من براتون قرار میدم همشونو بصورت عملی تجربه کردم و همه مباحث رو بصورت تکنیکی و کاربردی - مهندسی براتون میزارم . اما بریم سراغ تهیه تجهیزات سخت افزاری و نرم افزاری :
1 - سخت افزار
شاید برای شروع کار براتون مشکل باشه که خودتون بخواین PCB برد رو پیاده سازی کنید، اما نگران نباشید ، واسه این سری از میکروکنترلرها اونقدر برد داخلی و خارجی وجود داره که شما رو از این جهت بی نیاز کنه ، اما اینکه کدوم برد رو واسه کارتون ( آموزشی - صنعتی ) انتخاب کنید خیلی مهمه !!!
اگه واقعاً می خواین بصورت حرفه ای با این میکرو کار کنید و بر روی تمام امکاناتش تسلط کامل داشته باشین پیشنهاد من به شما برد شرکت ECA هستش که میدونم خیلی هاتون اون خریداری کردین اما دلیل من در انتخاب این برد اینه که این برد در واقع تنها برد آموزشی و حرفه ای هستش که از واحد پردازش صدای دیجیتال I2S پشتیبانی میکنه و هم ماژول های متنوعی رو ساپورت میکنه و مورد مهم دیگه اینه که هسته مرکزی که خود LPC1768 هستش بصورت هدربرد روی برد قراره داره که میتونید در کاربردهای دیگه ازش استفاده کنید و ...
اگه هم توان خرید برد رو ندارید میتونید هدربرد رو خریداری کنید و در طی جلسات متعدد قطعات مورد نیاز رو تهیه و روی بردبرد پیاده سازی کنید >>>
2 - پروگرامر
برنامه ریزی تراشه های ARM یکی از مهم ترین قسمت های کاره ، کلاً شما دو راه بیشتر پیش روتون نیست ، راه اولش اینه که از Bootloder برای پروگرام کردن استفاده کنید که بیشتر برای افراد مبتدی مناسبه و راه دوم استفاده از پروگرامر قدرتمند JLINK که مطمئناً بهتر از این پروگرامر نمیتونید گیر بیارید ، اگه میخواین حرفه ای کار کنید و کارتون طوری هستش که باید دائماً برنامه رو میکرو پروگرام کنید بهتره از JLINK استفاده کنید که میتونید از ECA اونو خریداری کنید البته میتونید از دیباگر و پروگرامر Wiggler هم استفاده کنید که امکان پروگرام کردن میکرو رو از طریق پورت LPT براتون ممکن میکنه که آلان کمتر کسی از این پروگرامر استفاده میکنه ولی به هر حال نظر خودتونه >>>
3 - نرم افزار
بعد از تهیه سخت افزار و پروگرامر باید نرم افزار یا به اصطلاح کامپایلر رو تهیه کنیم ، کامپایلر در واقع نرم افزاری هستش که امکان کدنویسی رو برای میکرو توسط کاربر فراهم میکنه ، بهترین کامپایلر در این زمینه کامپایلر Keil هستش که اکثر مهندسین ، طراحان و دانشجویان چه در امور آموزشی و چه صنعتی از اون استفاده میکنند ، هر چند نسخه اورجینالشو به دلیل تحریم شدن ایران نمیتونیم تهیه کنیم ولی در کل مثل Codevisionavr کارمونو راه میندازه و از طرفی با همکاری بچه های بالا :biggrin: میتونیم بعضی از کتابخونه های مهم و کاربردی رو هم تهیه کنیم . آخرین نسخه این نرم افزار در روزی که این مطلب نوشته شد Keil 5.13 بود ، در این نسخه کمپانی Keil تغییرات اساسی رو لحاظ کرده و حجم نرم افزار کم شده و ما میتونیم کتابخانه های مورد نیاز رو از سایت Keil بصورت Pack دریافت کنیم اما چون این نسخه کامل نشده و از طرفی یه خورده هم میره رو اعصاب آدم ( چون کامل نیست یه خورده قاطی داره ، الکی به تابع ها گیر میده و ... ) من بهتون پیشنهاد میکنم که تا زمان کامل شدن این نسخه از نسخه Keil 4.74 استفاده کنید . در این تاپیک ما آموزش رو با نسخه 4.74 دنبال می کنیم و به امید خدا بعد از اتمام مرحله ی آخر آموزش کار با آخرین نسخه Keil رو براتون میزارم . حالا مباحثی که قراره بصورت جلسه ای بهتون آموزش بدم رو زیر عنوان کردم :
جلسه 1 : مقدمه ای بر میکروکنترلرهای ARM ، واحد حافظه ، مختصری از تاریخچه ARM ، معماری پردازنده های ARM ، هسته های Cortex-M3 ، معرفی قابلیت های تراشه ARM LPC176X CM3 ، نحوه ایجاد پروژه و شبیه سازی در Keil ، برنامه ریزی تراشه در محیط Keil با پروگرامر JLINK ، اصول طراحی برنامه نویسی C ( انتشار یافت )
جلسه 2 : باس های AHB و APB ادوات جانبی متصل شده به آنها ، کنترل منابع Reset ، کنترل منابع کلاک ، فعال سازی قفل حافظه Flash ،تنظیم فرکانس میکروکنترلر ( 100MHZ , 120MHZ , 150MHZ ) ( انتشار یافت )
جلسه 3 : پورت های ورودی / خروجی ( GPIO ) - وقفه های GPIO ( معرفی NVIC اختصاصی جلسه 3 ) ( در حال تألیف )
جلسه 4 : نامشخص
جلسه 5 : نامشخص
جلسه 6 : بررسی رجیسترهای PINSEL و PINMODE
جلسه 7 : وقفه های خارجی ( External Interrupts ) - کنترل توان ( PWR )
جلسه 8 : راه اندازی و کنترل نمایشگرهای LCD کاراکتری
جلسه 9 : راه اندازی و کنترل نمایشگرهای گرافیکی مُدل GLCDKS0108
جلسه 10 : راه اندازی و کنترل نمایشگرهای سون سگمنت و دات ماتریس
جلسه 11 : اسکن صفحه کلید ماتریسی 4 * 3 - 4 * 4
جلسه 12 : راه اندازی و کنترل نمایشگر های TFTLCD از سایز 2.8 تا 9 اینچی
جلسه 13 : راه اندازی و کنترل تاچ اسکرین نمایشگرهای TFTLCD با تراشه درایور مخصوص تاچ
جلسه 14 : مبدل آنالوگ به دیجیتال ( ADC )
جلسه 15 : مبدل دیجیتال به آنالوگ ( DAC )
جلسه 16 تا 18 : تایمر و شمارنده ها ( Timer / Counter )
جلسه 19 : تایمر سگ نگهبان ( WDT )
جلسه 20 : تایمر وقفه تکرار شونده ( RIT )
جلسه 21 : تایمر System Tick
جلسه 22 : مدولاسیون پهنای پالس ( PWM )
جلسه 23 : واحد کنترل موتور سه فاز ( MCPWM )
جلسه 24 : واحد زمان سنج دقیق ( RTC )
جسله 25 تا 27 : ارتباط سریال UART
جلسه 28 : ارتباط سریال کامپیوتری ( RS232 )
جلسه 29 : شبکه سریال RS485
جلسه 30 : تبادل دیتا از طریق Blurtooth با ماژول HC-05 و مدل های مشابه
جلسه 31 تا 33 : ارتباط سریال دو سیمه ( TWI - I2C )
جلسه 34 : خواندن و نوشتن دیتا بر روی حافظه سریال EEPROM مدل AT24CXXXX
جلسه 35 ت 36 : ارتباط جانبی سریال ( SPI )
جلسه 37 تا 40 : ارتباط سریال آسنکرون ( SSP )
جلسه 41 تا 42 : خواندن و نوشتن دیتا ، خواندن فایل و حذف آن ، ایجاد پوشه و حذف آن و ... بر روی حافظه MMC/SD
جلسه 43 : عکسبرداری و فیلمبرداری با دوربین رنگی OV7670 و ذخیره بر روی مموری کارت MMC/SD
جلسه 44 : ضبط و پخش فایل های صوتی با فرمت MP3
جلسه 45 تا 47 : واحد پردازشگر سیگنال های دیجیتالی صوت ( I2S )
جلسه 48 : واحد GPDMA
جلسه 49 تا 60 : پیاده سازی کامل شبکه Ethernet با ارائه مثال های جامع
جلسه 61 : پروتکل ارتباط صنعتی CAN
جلسه 62 تا 70 : پیاده سازی کامل ارتباط USB Device - Host - OTG و مدهای مربوطه
جلسه 71 : اتصال کیبورد کامپیوتر ، دوربین دیجیتالی به میکرو از طریق پورت USB Host
جلسه 72 تا 80 : برنامه نویسی تحت سیستم عامل RTX
جلسه 81 تا 90 : پیاده سازی کامل سیستم عامل گرافیکی Emwin بر روی تراشه ARM LPC1768 - 69 Cortex-M3 و بررسی توابع کاربردی
جلسه 91 تا 95 : برنامه نویسی تحت سیستم عامل بصورت ترکیبی با RTX و Emwin
جلسه 96 تا 98 : کار با برخی از توابع DSP
جلسه 99 : ارتباط میکرو با ماژول SIM908 و پیاده سازی کامل شبکه GSM / GPRS / GPS با نمایشگر رنگی TFTLCD 5Inch
جلسه 100 : واکی تاکی با ماژول مخابراتی NRF24L01
********* آموزش کار با آخرین نسخه نرم افزار Keil
{ دوستان فقط برام دعا کنید تا مشکلم حل بشه :sad: }
دیدگاه