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
برای نمایش یک عکس معمولی BMP چگونه بایستی دیکد را انجام داد؟
عکس BMP دیکد خاصی ندارد و فقط کافیست اطلاعات اولیه عکس از ابتدای آن خوانده شده :
https://en.wikipedia.org/wiki/BMP_file_format
و بر اساس آن نمایش از The offset, به بعد انجام شود. اطلاعات مهم قابل استخراج :
The offset
The bitmap width in pixels
the bitmap height in pixels
The number of bits per pixel

@armeducation
سخت افزار USB OTG .
در اینجا OTG می تواند هم هاست باشد و هم دیوایس.
دو پایه D+ و D- مستقیما به پایه های میکرو متصل شده است و دیگه جامپر لازم نیست!
@armeducation
از نرم افزار WinHex می توان برای مشاهده متن فایل ها به صورت هگزادسیمال استفاده کرد.
@armeducation
دستور پیش پردازنده
#ifdef
#ifndef
در مواردی که می خواهید با یک دیفاین سوییچ کردن بین چند مورد را انجام دهید بسیار مفید خواهد بود. در این حالت حجم کدها در حالتی که دیفاین نشده در برنامه در نظر گرفته نمی شود.
به عنوان مثال با تعریف __UART0 از سریال 0 استفاده شده و در غیر این صورت پیش فرض سریال1 خواهد بود :
#ifdef __UART0
#define UART LPC_UART0
#else
#define UART LPC_UART1
#endif
@armeducation
یکی از کاربردهای پورت سریال برای مانیتورینگ برنامه است. بدین ترتیب با خروجی که در هر مرحله داده می شود همین طور اعداد بدست آمده می توان به روند اجرای برنامه نظارت داشت و در صورت بروز مشکل به رفع آن کمک می کند. بهتر است یک کتابخانه ساده داشته باشید که با اضافه کردن آن به پروژه بتوانید نمایش رشته را داشته باشید:
UART0_SendString("\n\r www.arm-education.ir");
در صورتی که لازم باشد از سایر پورت های سریال استفاده شود بعد از اینیشیالیز مربوطه با تغییر کوچک، تابع ارسال رشته تغییر خواهد کرد:
UART1_SendString("\n\r www.arm-education.ir");
در صورتی که نیاز است رشته و متغییر با هم چاپ شود از printf به سادگی می توان با شناساندن به برنامه،استفاده کرد:
R = 3;
M = 3;
S = 1396;
printf("\n\r @armeducation. %i / %i / %i ",S,M,S);
@armeducation
Terminal.exe
330.5 KB
از برنامه ترمینال جهت ارتباط با پورت سریال می توان بین میکرو و PC استفاده کرد.
ابزارهایی این مدل نرم افزارها در اختیار قرار می دهند، باعث سهولت در ارتباط با پورت سریال می شود.
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
اجرای عملی استفاده از نرم افزار Hyper Terminal جهت تبادل دیتا در کامپیوتر با پورت سریال .
ساده ترین نرم افزار جهت ارتباط با پورت سریال کامپیوتر، هایپرترمینال است.
@armeducation
Hyper Terminal For Win7.rar
304.8 KB
ساده ترین نرم افزار جهت ارتباط با پورت سریال کامپیوتر، هایپرترمینال است. در ویندوز سون این ابزار وجود ندارد و جداگانه بایستی استفاده شود.
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
اجرای عملی استفاده از نرم افزار Terminal جهت تبادل دیتا در کامپیوتر با پورت سریال
ابزارهایی که نرم افزار Terminalو ... در اختیار قرار می دهند، باعث سهولت در ارتباط با پورت سریال می شود.
@armeducation
در پورت سریال در حالت معمول، وقتی دیتایی در حال دریافت است برنامه منتظر می ماند تا دیتا دریافت شود سپس ادامه کار انجام می شود. خوب این جالب نیست که برنامه متتظر بماند و کار دیگری نتواند انجام دهد.
با استفاده از وقفه به محض دریافت هر کاراکتر برنامه وارد زیروال وقفه شده و می توانیم دیتا را دریافت و ادامه اجرای برنامه انجام می شود.
کلیت تنظیم مربوطه فعال کردن یک بیت در یک رجیستر (بنا به نوع میکرو) و فعال کردن زیروال وقفه سریال می باشد.
هر کاراکتر که به سریال میکرو وارد می شود برنامه وارد زیروال وقفه شده، آن را بررسی می کند که اینتر نباشد و در داخل آرایه ای قرار می دهد. در صورت وارد شدن اینتر، می توان یک فلگ را ست کرد تا در طول برنامه از رشته مربوطه استفاده شود.
حال در نظر بگیرید در کاری مرتب دیتا از پورت سریال وارد می شود. به این ترتیب برنامه مرتب بایستی وارد زیروال وقفه شده تا کاراکترها را دریافت کند و .... .فکر می کنید راه حل چیست!؟
@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