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
در صورتی که با نوعی از میکرو کار کرده اید و برای کاری نیاز شده با مدل دیگری کار کنید ممکن است این دیدگاه را داشته باشید که هر دوی اینها از یک شرکت هستند، پس تنظیمات مثل هم است. موقعی متوجه این دیدگاه اشتباه می شوید که تنظیمی را عینا بدون دیدن منوال میکرو از مدل دیگر کپی کرده اید و وقت زیادی هم صرف شده که چرا کار نمی کند🤔 . با خود می گویید مگر در مدل دیگر کار نمی کرد پس اینجا هم باید کار کند! 😳 غافل از اینکه ممکن است حتی در یک بیت اختلاف تنظیم وجود داشته باشد یا اختلاف اساسی تر باشد.
تفاوت هایی بین lpc1768 و lpc1788 هست. همچنین بین سری های STM32 (STM32F0,STM32F1 ..)
وقتی هدری که ابتدا include می کنید عوض شود وجود تفاوت هایی را بایستی مد نظر قرار داد. در هر صورت رفرنس، یورز منوال یا رفرنس منوال همان سری می باشد.
@armeducation
استفاده از میکروکنترلر شرکت NXP - LPC2294 در تاچ پنل فوق
ARM7TDMI-S based high-performance
با تشکر از جناب آقای مهندس اسلامی بابت ارسال عکس.
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
ساخت دستگاه کنترلرهای هوشمند انرژی
نمونه ای از ساخت یک محصول کنترلری بر اساس نیاز با استفاده از یک میکروکنترلر
@armeducation
در واحد اترنت میکروکنترلرهای ARM پروتکل های مختلفی پشتیبانی می شود که به شرح زیر می باشد :
- UDP
- TCP/IP
- Http
- SNMP
- SMTP
- …
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
تبادل دیتا بین برد میکروکنترلر و PC با پروتکل UDP در اترنت با استفاده از نرم افزار هرکولس در PC
@armeducation
کسانی که در حال یادگیری یا انجام کاری هستند و دچار مشکلی می شوند ممکن است بخواهند در فروم ها و گروههای شبکه های اجتماعی سوال خود را مطرح کنند.
حالتی ممکن است وجود داشته باشد که متاسفانه بسیار دیده شده است و آن اینکه به صورت یک طرفه انتظار بر این است که با طرح سوال، دیگران موظف به پاسخ گویی اند و اگر کسی نباشد که پاسخ دهد بسیار شاکی می شود! در همین جا اگر کسی سوالی بکند که آنها بتوانند جواب دهند با خود می گویند چرا ما باید پاسخ دهیم؟ چه سودی به حال ما دارد؟ به نظر شما چه نامی می توان برای این کار در نظر گرفت؟
در صورتی که روزی از دیگران راهنمایی می گرفتید جبران آن وقت است پیشرفت که کردید و دیدید در فروم ها و... سوالی پرسیده شد که می توانید پاسخ دهید، نگویید من چرا باید پاسخ سوال دیگران را بدهم!؟
پاسخ دادن لزوما به معنای قرار دادن سورس و مطلب آماده نیست. می تواند مشخص کردن مسیری باشد که فرد با صرف زمان بایستی به پاسخ برسد.
تو نیکی میکن و در دجله انداز
که ایزد در بیابانت دهد باز

@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
اجرای عملی وب سرور(Http) در میکروکنترلر lpc1768 با Rl کیل
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
اجرای عملی وب سرور(Http) در میکروکنترلر lpc1768 با EasyWEB
@armeducation
مشاهده دیتای دریافتی در نرم افزار Wireshark که جهت شنود LAN استفاده می شود.
در اینجا پروتکل ارتباطی بین PC و برد میکروکنترلر ، UDP می باشد و عدد 0 و 1 ارسال شده است.
@armeducation
گاهی لازم است یک متغییر در کتابخانه ای که به پروژه اد شده تغییر کند و در برنامه اصلی از آن استفاده شود. به سادگی با تعریف این متغییر از نوع extern این کار انجام می شود. در تایع اصلی متغییر تعریف می شود :
extern int x;
و همین طور در کتابخانه ای که به پروژه اد شده به این شکل تعریف شده و می تواند مقدار دهی شود :
int x;
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
اجرای عملی پروتکل SNMP در میکروکنترلر STM32F107VC با Rl کیل
@armeducation
معمولا کسانی که تازه به حیطه اجرای پروژه های الکترونیک وارد شده اند، قیمت کمتری (شاید هم خیلی کمتری) برای انجام کار طلب می کنند. پارامترهای مختلفی وجود دارد که باعث می شود بعد از مدتی دیگر با قیمت پایین کار نکنند. یکی از آنها این است که کاملا به عدم تناسب بین هزینه و درآمدشان واقف می شوند. بدین معنا که می بینند به ازای خدمتی که در جامعه دیگران برای آنها انجام می دهند چه قیمتی باید پرداخت کنند و خودشان به چه قیمتی خدمتی را ارائه می کنند. مدت زمانی که به این نتیجه میرسند در افراد مختلف متفاوت است.
مسئله جالبی که بعد از به این نتیجه رسیدن برایشان به وجود می آید، این است که : از کسانی که به قیمت پایینی خدمتی در این حیطه انجام می دهند گله مند می شوند (البته در همه صنف ها بدین گونه است) غافل از اینکه خود این گونه بوده اند!
@armeducation
Forwarded from armeducation
در صورتی که مطالب آموزشی کانال را مفید می دانید شما معرف کانال به سایر دوستان خود باشید. 👇👇👇
با سپاس
@armeducation
یک تلقی وجود دارد به این صورت که کار را بده به کسی که از همه ارزان تر میگیرد. ولی ممکن است همیشه این طرز فکر صحیح نباشد. این افراد موقعی متوجه اشتباه خود می شوند که کارشان را به کسی با قیمت پایین داده اند و به نحو دلخواه انجام نشده باشد. اینجاست که یاد "هرچقدر پول بدی همانقدر آش میخوری" می افتند! به خاطر همین است که افراد با تجربه، کار را به افراد کاردان و با تخصص و تجربه کافی می دهند و قیمت آن را هم می پردازند چرا می خواهند به طور مطلوب انجام شود.
@armeducation
در تمام میکروکنترلرهای arm-cortex m واحد system tick timer قرار داده شده است. این تایمر 24 بیتی با تابع SysTick_Config که در هدر core_cm3.h قرار دارد، فعال شده و بر اساس زمان ورودی تابع وارد زیرروال وقفه خود می شود:
void SysTick_Handler (void)
{
SysTickCnt++;
}
به سادگی می توان از این متغییر شمارنده SysTickCnt برای محاسبه زمان دقیق استفاده کرد. به عنوان نمونه با تنظیم ورودی تابع، هر 10 میلی ثانیه یک بار وارد زیروال وقفه شده و یکی به شمارنده SysTickCnt اضافه می شود.
@armeducation
در مبحثی مانند DMA آشنایی با فضای حافظه میکرو ضرورت پیدا می کند. در میکروکنترلرهای stm32 در دیتاشیت و در LPC در یوزرمنوال به معرفی فضای رم پرداخته است. به دیفاین ها و آدرس دهی با اشاره گر در هدر یک میکرو stm32 توجه کنید :
#define PERIPH_BASE ((uint32_t)0x40000000)
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)
typedef struct
{
__IO uint32_t CRL;
__IO uint32_t CRH;
__IO uint32_t IDR;
__IO uint32_t ODR;
__IO uint32_t BSRR;
__IO uint32_t BRR;
__IO uint32_t LCKR;
} GPIO_TypeDef;
بنابراین وقتی از دستور :
GPIOA->CRL |= 0x3 ; // PA0 output
استفاده می کنیم از قبل در هدر تعاریف لازم انجام شده و به فضای حافظه مربوطه ارجاع انجام شده است.
بیس برنامه نویسی سی لازم در این موارد مبحث اشاره گرها و struct می باشد.
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
شرح رجیسترهای systemtick
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
شرح مثال systemtick قسمت اول
@armeducation
در این پست
https://news.1rj.ru/str/armeducation/140
ذکر شد که ممکن است وقفه متوالی گزینه مطلوبی نباشد و در روند کارمان اختلال ایجاد کند. به عنوان یک راه حل می توان از DMA استفاده نمود. DMA مخفف Direct memory access به معنای دسترسی مستقیم به حافظه بدون درگیر شدن cpu می باشد. این دسترسی چه مشکلی از ما حل می کند!؟ با تنظیماتی که در این واحد انجام می شود آدرس مبدا دیتا مشخص می شود(در اینجا مثلا رجیستر دیتای سریال) و آدرس مقصد هم مشخص می شود(در اینجا یک آرایه در فضای رم) و با مشخص بودن تعداد انتقال همین طور طول انتقال، آغاز کار انجام شده و در انتها بر اساس تنظیم وقفه مربوطه اعلام می شود که انتقال انجام شده و می توانید هر کاری صلاح میدانید انجام دهید!
در اینجا درگیر نبودن cpu برای انتقال دیتا مسئله مهمی است که تا در عمل در کاری با این مشکل مواجه نشوید پی به اهمیت آن نخواهید برد.
@armeducation
در صورتی که بخواهید با هزینه کمتری آموزشهای مقدماتی میکروکنترلرهای ARM را به صورت عملی پیاده سازی کنید می توانید از یک هدربرد استفاده کنید. در هدر برد امکاناتی بر روی برد قرار داده نشده و فقط خود میکرو و خروجی Jtag یا SW جهت پروگرام کردن وجود دارد و سایر پایه ها جهت هر استفاده ای بیرون کشیده شده است. شاید هم یک LED متصل به یکی از پایه های میکرو گذاشته باشند!
با قرار دادن چند LED و مقاومت روی بِرد بُرد و اتصال پایه های خروجی برد میکرو به آن قسمت خروجی GPIO تست می شود.
با قرار دادن چند سوییچ و Pull up کردن آن و اتصال پایه های برد میکرو به آن، قسمت خروجی GPIO و وقفه خارجی تست می شود.
با استفاده از یک مبدل یو اس بی به سریال و اتصال پایه های سریال به آن، قسمت UART را می توان به صورت عملی اجرا کرد.
با استفاده از یک پتانسیومتر و اتصال سر وسط آن به پایه های ورودی آنالوگ و قرار دادن نتیجه در سریال، واحد ADC را می توان استفاده کرد.
با اتصال پایه خروجی DAC در میکرو به یک اسپیکر می توان پخش فایل صوتی انجام داد.
خروجی تایمر و PWM را یا می توان توسط اسیلوسکوپ مشاهده یا به LED های روی برد برد متصل و با کاهش فرکانس امکان مشاهده آن را فراهم کرد.
نتیجه RTC روی همان پورت سریال قابل مشاهده است.
اتصال LCD کاراکتری و کیپد و سون سگمنت هم به هدر برد به سادگی انجام می شود.
البته داشتن یک برد کامل تر که دارای امکانات جانبی باشد، باعث صرفه جویی در زمان شما خواهد شد.
@armeducation