armeducation – Telegram
armeducation
3.58K subscribers
367 photos
326 videos
115 files
370 links
آموزش حرفه ای میکروکنترلرهای ARM

ادمین:
@mzarkoob
مهندس مهدی زرکوب
شروع مطالب :
https://news.1rj.ru/str/armeducation/1
اینستاگرام :
@armeducation
کانال ایتا:
https://eitaa.com/armeducation
همراه :
09359956361
Download Telegram
در پورت سریال در حالت معمول، وقتی دیتایی در حال دریافت است برنامه منتظر می ماند تا دیتا دریافت شود سپس ادامه کار انجام می شود. خوب این جالب نیست که برنامه متتظر بماند و کار دیگری نتواند انجام دهد.
با استفاده از وقفه به محض دریافت هر کاراکتر برنامه وارد زیروال وقفه شده و می توانیم دیتا را دریافت و ادامه اجرای برنامه انجام می شود.
کلیت تنظیم مربوطه فعال کردن یک بیت در یک رجیستر (بنا به نوع میکرو) و فعال کردن زیروال وقفه سریال می باشد.
هر کاراکتر که به سریال میکرو وارد می شود برنامه وارد زیروال وقفه شده، آن را بررسی می کند که اینتر نباشد و در داخل آرایه ای قرار می دهد. در صورت وارد شدن اینتر، می توان یک فلگ را ست کرد تا در طول برنامه از رشته مربوطه استفاده شود.
حال در نظر بگیرید در کاری مرتب دیتا از پورت سریال وارد می شود. به این ترتیب برنامه مرتب بایستی وارد زیروال وقفه شده تا کاراکترها را دریافت کند و .... .فکر می کنید راه حل چیست!؟
@armeducation
مقدار باودریت در سریال با استفاده از تنظیماتی در یک رجیستر در میکروکنترلرها انجام می شود. این تنظیم رابطه مستقیمی با کلاک اعمالی به پریفرال uart دارد که در منوال ذکر شده است. بنابراین در صورتی که تنظیمات کلاک میکرو برروی مقدار مورد نظر نباشد،بدیهیست مقدار باودریت ایجاد شده نیز غلط خواهد بود و در عمل در ترمینال PC چرند دریافت خواهیم کرد.
برای ارتباط بین میکرو و PC لازم است باودریت مقادیر مشخصی باشد مانند 9600 و 115200 و ... . ولی بین ذو میکرو ضرورتی ندارد و می توان مقادیر رند که البته دارای خطای کمتری است، قرار داد.
@armeducation
یک تمرین ساده با پورت سریال :
میکروکنترلر با دریافت متنی از پورت سریال، عملی را انجام دهد:
در صورتی که پیام led1on آمد ال ای دی 1 روشن و وقتی led1off آمد ال ای دی 1خاموش شود. برای led2 نیز همین طور. همچنین با روشن شدن هر ال ای دی متنی به پورت سریال ارسال شود مثلا 1onok یا 1offok ...
حال به جای نرم افزار ترمینال در PC، در ویژال C# یا ... یک برنامه گرافیکی طراحی کنید که ارسال دستورات سریال را با زدن باتونها فراهم کند و با دریافت متن سریال به آن واکنش نشان دهد.
@armeducation
در انتشار یک مطلب علمی و یا آموزشی ، احترام به مالکیت معنوی ایجاب می کند که مطلب ذکر شده همراه با مرجع باشد. مشاهده می شود که در برخی سایت ها،گروهها و ... کاربران ملزم به حذف نام مرجع یک مطلب(علمی و یا آموزشی) خواهند بود و در صورت فوروارد یک مطلب آموزشی، که همراه با مرجع آن می باشد ..... !
همگان می دانیم در انتشار یک مقاله علمی، عدم ذکر نام مراجع کپی برداری محسوب می شود و اصلا قابل پذیرش نیست.
به امید گسترش فرهنگ احترام به تولید کنندگان محتوا
@armeducation
مطالبی که در کانال قرار داده می شود در وب سایت نیز، جهت دسترسی بیشتر قرار داده می شود :
http://www.arm-education.ir/?cat=9
@armeducation
یکی از قابلیت های میکروکنترلرهای ARM ارتباط با SD کارت می باشد.
میکروکنترلرهایی که فقط دارای پریفرال SPI می باشند، با استفاده از رابط SPI با SD کارت ارتباط برقرار می کنند.
میکروکنترلرهایی که دارای پریفرال SDIO می باشند، با استفاده از این رابط با SD کارت ارتباط برقرار می کنند:
https://news.1rj.ru/str/sisoog/35
ساده ترین حالت خواندن و نوشتن در SD کارت، سکتوری است.
با استفاده از توابعی می توان به صورت فایلی با SD کارت کار کرد. یک فایل ایجاد کرد و داخل دیتا قرار داد، فایلی را باز کرد و اطلاعات آن را خواند و ...
توابع RL کیل و همچنین توابع ChaN این قابلیت را ایجاد می کنند که به صورت فایلی با SD کارت کار کرد.
@armeducation
شماتیک اتصال mini SD کارت به میکروکنترلر lpc1768 با رابط SPI.
1- پایه کلاک خارجی SCS : P1.20
2- پایه انتخاب اسلیو SSEL : P1.21
3- پایه داده MISO : P1.23
4- پایه داده MOSI : P1.24

@armeducation
شماتیک اتصال SD کارت به میکروکنترلر lpc1768 بارابط SPI.
میکروکنترلر lpc1768 با استفاده از رابط SPI با SD کارت ارتباط برقرار می کند.
@armeducation
در صورت داشتن یک هدر برد فاقد خشاب sd کارت، می توان با یک ماژول ساده اتصال آن را به پایه های مربوطه در برد انجام داد. ساخت چنین ماژولی هم کار ساده ایست.
@armeducation
شماتیک اتصال mini SD کارت به میکروکنترلر STM32f103VE با رابط SDIO.
پایه های PC.8 تا PC.12 در حالت Alternate Function قرار داده می شود.
@armeducation
👈 ابزار آموزش چه کمکی می تواند انجام دهد؟
- آموزش تسهیل کننده فرایند آشنایی، راه اندازی و نحوه انجام کار است. بنابراین وقت اصلی افراد بعد از یادگیری و آموزش، صرف انجام کاری می شود که قصد انجام آن را دارند. زیرا کارآموزان وقت زیادی صرف راه اندازی قسمت های مختلف نخواهند کرد.
👈 یک آموزش دارای چه ویژگی هایی باید باشد؟
- از پایه مطلب شروع شود و مرحله به مرحله با مثال به جلو رود. مثال های مرحله به مرحله نقش مهمی در یاددهی نحوه توسعه کار خواهد داشت.
- عملی باشد. یعنی با توجه به مطالب ذکر شده به صورت عملی همان موقع اجرا شود و نتیجه مشاهده شود. بنابراین داشتن تجهیزات کافی لازمه کار می باشد.
- به غیر از مواردی که جهت انجام یادگیری، بایستی از ابتدا انجام شود سایر موارد از قبل انجام و تست شده باشد.
- دارای جزوه مناسب باشد.
- دارای محیط مناسب و نظم برگزاری باشد.
👈 کارآموز دارای چه ویژگی هایی باشد؟
- پیش نیازهای مطلب را بداند. در غیر این صورت با مواردی مواجه می شود که بایستی از آنها در کار استفاده کند ولی با آنها آشنا نیست.
- هر جلسه موارد انجام شده را انجام دهد و تمرینات داده شده را اجرا کند. مشکل اصلی در اینجا "حوصله و وقت" ندارم است :
"حوصله ندارم"
این عبارت مانع بزرگی برای رشد علمی در رشته الکترونیک است. یک شرط لازم برای پیشرفت در الکترونیک و برنامه نویسی، وجود حوصله زیاد برای پرداختن به جزییات پیچیده و وقت گیر است.
https://news.1rj.ru/str/KnowledgePlus/307
✔️ در یک جمله وظیفه مدرس داشتن دایکیومنت آموزشی قوی و انتقال مطلب مناسب و وظیفه فن آموز تمرین مطالب گفته شده می باشد.
@armeducation
همان طور که ذکر شد از توابع RL کیل و همچنین توابع ChaN برای کار با SD کارت (همچنین USB Flash) می توان استفاده کرد.
مواردی مانند SD – USB – Ethernet و .. مباحث پیشرفته ای هستند که اجرای عملی آن نیازمند دانش پایه از نحوه اجرای پروتکل های مربوطه می باشد. همچنین در یک میکروکنترلر رجیسترهای بسیار زیادی برای این پریفرال ها وجود دارد.
در اینجا محاسن و معایب یک پروژه که از توابع RL کیل استفاده شده بر اساس تجربه ذکر می شود :
- همینکه در مباحث پیشرفته که دارای پیچیدگی های زیادی است، توابعی باشد که بدون درگیر شدن با جزییات بتوان کار مورد نظر را انجام داد، بسیار خوب است. در صورتی که بخواهیم خودمان توابعی را بنویسیم که به عنوان نمونه به صورت فایلی کاری را در SD کارت انجام دهد و ... نیازمند صرف زمان زیادی خواهیم بود.
- در صورتی که سرعت تبادل مهم باشد، ممکن است این توابع نتواند نیاز ما را تامین کند.
- در صورتی که چندین کار لازم باشد انجام شود ممکن است نتوان در یک پروژه با هم آنها را فعال کرد. مثلا هم زمانی استفاده از USB و SD کارت، تبدیل شدن میکرو به رم ریدر برای SD کارت و هم زمان خواندن و نوشتن روی SD ،و ...
@armeducation
به جهت تعیین سرعت ارسال دیتا یا خواندن دیتا برای تست سرعت در SD کارت می توان دیتای حجیمی را پشت سر هم بر روی SD قرار داد یا از SD کارت خواند. به صورت کاربردی تر این دیتای خوانده شده می تواند یک فایل عکس باشد.
در نظر بگیرید قرار است یک عکس 800 در 480 پیکسل 24 بیتی(سه بایتی) را روی FTF LCD 7 اینچ نمایش دهید. برای هر پیکسل لازم است سه بایت دیتا از SD کارت خوانده شود :
a = fgetc(f;
b = fgetc(f);
c = fgetc(f);
و به نحو مقتضی در TFT قرار داده شود.
بنابراین لازم است این کار 800*480 = 384000 بار انجام شود یعنی 384000*3 بایت = 1152000 بایت معادل 1.15 مگا بایت.
البته برای سنجش دقیق زمان می توان از تایمر استفاده کرد. بدین صورت که ابتدای پروسه تایمر فعال انتهای پروسه هم مقدار شمارنده در متغییری قرار داده شود و با یک محاسبه کوچک زمان دقیق پروسه بدست می آید.
@armeducation
در صورتی که فایل های لازم در یک پروژه با RL کیل که با کیل 4 ایجاد شده باشد (فایل های lib. هم داخل آنها وجود داشته باشد) در پوشه پروژه وجود داشته باشد، با کیل 5 هم باز شده و اجرا خواهد شد.
تا کنون تنها موردی که مشاهده شد برنامه SD کارت که با کیل 4 ایجاد شده است و با کیل 5 که بروی برد ریخته شد، ولی کار نکرد برای در برد میکروکنترلر stm32f103ve بوده است!
@armeducation
گاهی موارد مشاهده می کنید در انجام یک کار انگار فقط خودتان هستید که بروی این موضوع کار می کنید و کس دیگری را پیدا نمی کنید که بتواند به شما کمک کند یا روی این موضوع کار کرده باشد و به نتیجه رسیده باشد یا به شما این تجربه را نمی دهد.
اینجاست که تمام راه های ممکن را امتحان می کنید، تمام جزییات را باید بررسی کنید، تمام وقت خود را صرف آن کنید ...
ارزش و قیمت این تجربه چقدر است!؟
@armeducation
گاهی برای ساخت یک برنامه اجرایی گرافیکی بین برد میکروکنترلر و pc، نیاز است در pc از ویژاآل استدیو برای ساخت این واسط گرافیکی استفاده شود. در این پست
https://news.1rj.ru/str/armeducation/142
یک تمرین ساده از این خصوص داده شد.
در این جا چکیده ای از کار با ویژآل C# قرار داده می شود. امید است مفید واقع شود .
👇👇👇👇👇👇
@armeducation
vc#1.pdf
537.3 KB
چکیده ای از کار با ویژآل C# قسمت اول از شش
@armeducation
vc#2.pdf
774.3 KB
چکیده ای از کار با ویژآل C# قسمت دوم از شش
@armeducation
vc#3.pdf
941.2 KB
چکیده ای از کار با ویژآل C# قسمت سوم از شش
@armeducation
vc#4.pdf
445 KB
چکیده ای از کار با ویژآل C# قسمت چهارم از شش
@armeducation
vc#5.pdf
520.7 KB
چکیده ای از کار با ویژآل C# قسمت پنجم از شش
@armeducation