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
Media is too big
VIEW IN TELEGRAM
وقفه RTC با تنظیمات در STM32CubeMX
- شرح تنظیمات در پاورپوینت
- شرح تنظیمات در CubeMX و برنامه ایجاد شده در کیل
- تست عملی برنامه
#آموزش_توابع_هال_F1
@armeducation
مجموعه فیلم های آموزش کار با نرم افزار STM32CubeMX و توابع HAL

1-1- نحوه ایجاد پروژه در نرم افزار STM32CubeMX برای keil و پروگرام کردن بر روی برد
https://news.1rj.ru/str/armeducation/270
2-1- نحوه تنظیمات در نرم افزار STM32CubeMX برای خروجی کردن پایه ها
https://news.1rj.ru/str/armeducation/282
2-2- نحوه تنظیمات در نرم افزار STM32CubeMX برای ورودی کردن پایه ها
https://news.1rj.ru/str/armeducation/284
3-1- نحوه تنظیمات در نرم افزار STM32CubeMX برای وقفه خارجی
https://news.1rj.ru/str/armeducation/287
4-1- نحوه تنظیمات در نرم افزار STM32CubeMX برای پورت سریال و ارسال یک رشته
https://news.1rj.ru/str/armeducation/290
4-2- دریافت یک کاراکتر و رشته از پورت سریال با استفاده از توابع HAL
https://news.1rj.ru/str/armeducation/295
4-3- دریافت یک کاراکتر از پورت سریال با استفاده از وقفه در توابع HAL
https://news.1rj.ru/str/armeducation/301
5-1- راه اندازی تایمر و وقفه آن با تنظیمات در STM32CubeMX
https://news.1rj.ru/str/armeducation/331
5-2- راه اندازی PWM با تنظیمات در STM32CubeMX
https://news.1rj.ru/str/armeducation/334
6-1- راه اندازی ADC با تنظیمات در STM32CubeMX
https://news.1rj.ru/str/armeducation/341
6-2- استفاده از وقفه در راه اندازی ADC با تنظیمات در STM32CubeMX
https://news.1rj.ru/str/armeducation/343
7-1- راه اندازی DAC با تنظیمات در STM32CubeMX
https://news.1rj.ru/str/armeducation/346
8-1- راه اندازی RTC با تنظیمات در STM32CubeMX
https://news.1rj.ru/str/armeducation/353
8-2- وقفه RTC با تنظیمات در STM32CubeMX
https://news.1rj.ru/str/armeducation/358

@armeducation
یک کاربرد اشاره گر :
مواردی وجود دارد که بخواهید از طریق آدرس مقدار دهی انجام دهید که می توانید از این طریق انجام دهید. به عنوان نمونه :
void ّFunction(unsigned int index)
{
*(__IO uint16_t *) (ADDRESS)= index;

}
@armeducation
Forwarded from armeducation (Mahdi Zarkoob)
مشاور چه نقشی ایفا می کند؟
برای یک شرکت یا سازمان یا شخصی، اینکه یک کاری چگونه انجام شود از اهمیت زیادی برخوردار است.زیرا در صورت تشخیص اشتباه وقت و هزینه زیادی تلف خواهد شد.
مثلا در حیطه الکترونیک یک کاری با فلان میکرو قابل انجام است ولی با FPGA انجام می شود! یا وجود یک fpga در کنار یک میکرو باعث بهبود عملکرد دستگاه می شود و ....
ممکن است انجام دهنده کار چنین تشخیصی نداشته باشد و فقط کاری که به او محول شده انجام دهد ولی یک مشاور تعیین جهت کلی را انجام می دهد.
دیده شده که به خاطر صرفه جویی یا بی اعتقاد بودن به این مسئله، کاری انجام شده و در عمل این تجربه حاصل شده. یعنی با صرف زمان و هزینه تجربه حاصل شده ولی از تجربه شخص دیگری به عنوان مشاور استفاده نشده است.
@armeducation
نقل یک خاطره از اولین مشاوره :
سالها قبل فکر کنم سال 91 یا 92 که هنوز بحث میکروکنترلرهای ARM به این شکل فراگیر نبود و دانسته ها از آن کم بود، در یک دوره آموزشی با یک آرم آموز که اکنون یک شرکت فعال در زمینه آسانسور دارند، با توجه به اینکه دید کاملی نسبت به انواع میکروکنترلرهای ARM نداشتند و تفاوتی هم برایشان نمی کرد چه میکرویی از این دسته میکروکنترلرهای ARM یاد بگیرند پیشنهاد شد به جای ARM7 از سری های ARM Cortex m3 استفاده شود.
به این ترتیب در سالهای بعد که بنا به نیاز کاری با مدل های جدیدتر و دیگری از میکروهای ARM مانند STM32 خواستند کار کنند زمان کمتری برای یادگیری آن صرف کردند. زیرا آنها نیز در دسته Cortex m3 قرار داشت .
همچنین پیشنهاد شد با توجه به مشابهت دو میکروی lpc1768 و lpc2368 ، جای میکروی lpc2368 بر روی برد آموزشی موجودی که در اختیار داشتند از lpc1768 استفاده شود. به این ترتیب دیگر نیازی نبود با صرف مبلغ 200 -250 تومان برد آموزشی دیگر تهیه شود.
صرفه جویی در زمان و هزینه، مسلما مطلوب همه ما می باشد.
@armeducation
قابل توجه دانشجویان مخصوصا رشته برق :
در حین تحصیل مهارت و تخصصی را یاد بگیرید که در عمل مفید و درآمدزا باشد. یا خودتان بتوانید از آن استفاده کنید یا دیگران نیاز به آن داشته باشند.
@armeducation
Forwarded from armeducation (Mahdi Zarkoob)
در صورتی که مطالب آموزشی کانال را مفید می دانید شما معرف کانال به سایر دوستان خود باشید. 👇👇👇
با سپاس
@armeducation
لیستی از لینک فیلم های آموزشی قبلی برای دسترسی سریع تر :
- ایجاد یک پروژه اصولی و صحیح در کیل 4.74 با میکرو STM32F103VE :
https://news.1rj.ru/str/armeducation/72
- نصب کیل 5 و ...:
https://news.1rj.ru/str/armeducation/75
- ایجاد پروژه در کیل 5 در 2 دقیقه! :
https://news.1rj.ru/str/armeducation/76
- استفاده از سیمولاتور کیل :
https://news.1rj.ru/str/armeducation/85
- اجرای عملی استفاده از نرم افزار Hyper Terminal :
https://news.1rj.ru/str/armeducation/137
- اجرای عملی استفاده از نرم افزار Terminal :
https://news.1rj.ru/str/armeducation/139
- شرح رجیسترهای systemtick :
https://news.1rj.ru/str/armeducation/200
- شرح مثال systemtick :
https://news.1rj.ru/str/armeducation/201
@armeducation
در مورد استفاده از رجیسترها یک دیدگاه اینست که کار با رجیسترها مشکل است بنابراین بایستی صرفا از توابع cmsis و یا HAL یا ... استفاده نمود. یکی از دلایلی هم که برای دشوار بودن ذکر می شود اینست که بایستی هزاران صفحه منوال میکرو را مطالعه کرد تا بتوان قسمتی را راه اندازی و استفاده کرد. ولی در صورتی که بنا به نیاز یا از سر یادگیری بیشتر و عمیق تر چند پریفرالی را به صورت رجیستری راه اندازی و استفاده کرده باشید متوجه می شود به این گونه که تصور هم می کردید هم نیست.
@armeducation
برای راه اندازی و استفاده از پریفرالی به صورت رجیستری، مانند:
GPIO,EXTI,UART,Timer,ADC,DAC,RTC,
SPI,I2C ,DMA
و ...
ممکن است نیازی نباشد تمام رجیسترهای آن را مطالعه کرد چه برسد هزاران صفحه منوال. همچنین گاها نیازی نیست تمام بیت های رجیسترها را بدانید چه کاری می کند و چه تنظیمی روی آن باید اعمال کنید. تنظیماتی روی تعدادی بیت از یک سری رجیسترهای یک پریفرال که انجام دهید برای پیکربندی و راه اندازی اولیه کافی است. در این حالت بهتر است جلوی هر خط در اینیشیالیز، توضیح مختصری از منوال ذکر شود تا در صورتی که بخواهیم تغییراتی در پیکربندی اعمال کنیم به سادگی این کار انجام شود. همچنین سایر موارد تبادل دیتا با توابعی انجام می شود که در داخل این تابع به صورت مستقیم از رجیستر مربوطه بدون موارد اضافه استفاده شده که فقط کافیست از این تابع استفاده شود.
البته باید به این مسئله دقت داشت که مواردی مانند SD – USB – Ethernet و .. مباحث پیشرفته ای هستند که اجرای عملی آن نیازمند دانش پایه از نحوه اجرای پروتکل های مربوطه می باشد :
https://news.1rj.ru/str/armeducation/151
ابزار آموزش چه کمکی می تواند انجام دهد؟
https://news.1rj.ru/str/armeducation/150
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
تفاوت حجم کد ایجاد شده ناشی از سه پروژه ایجاد شده با استفاده از توابع Hal و کتابخانه های CMSIS و رجیستری
همچنین به غیر از حجم کد فلش به حجم کد حافظه رم نیز در سه مورد توجه داشته باشید.
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
آیا می‌دانید در زمان وقوع زلزله کجا باید پناه بگیرید؟ این پرسش با توجه به آخرین مطالعات پاسخ داده شده است.
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
سرعت رفرش TFT وقتی به جای مد FSMC از GPIO استفاده شود.
مقایسه سرعت با:
https://news.1rj.ru/str/armeducation/52
-> برای رفرش سریع، مد gpio برای ارسال دیتا در این مدل میکروها با کلاک 72MHz کند است.
@armeducation
Forwarded from armeducation (Mahdi Zarkoob)
دو مشکل برای کسانی که می خواهند با میکروکنترلرهای ARM شروع به کار کنند معمولا مشاهده می شود:
اول عدم آشنایی کافی با برنامه نویسی زبان سی است.
دوم عدم توانایی انجام کار است. بدین معنا که نمی توانند پریفرال های مختلف را با هم ترکیب کنند و کار مورد انتظار را پیاده سازی کنند.
ابزار آموزش باعث تسهیل کار می شود ولی چیزی جای تمرین و پشتکار را نمی گیرد.
@armeducation
Forwarded from armeducation (Mahdi Zarkoob)
قبل از کار با میکروکنترلرهای ARM و در راه اندازی پریفرال های میکروکنترلرهای ARM، بایستی به این موضوع توجه شود که :
• پیش نیاز کار با میکروکنترلرهای ARM ، آشنایی با زبان C می باشد.
• پیش نیاز اجرای پروژه میکروکنترلرهای ARM ، تسلط به زبان C و تسلط به خود میکروکنترلر می باشد.
• تسلط به زبان C و تسلط به خود میکروکنترلرهای ARM، نیاز به تمرین و صرف زمان دارد.
در توضیح پیش نیاز بودن آشنایی با زبان برنامه نویسی سی، کارآموز در حین شرح رجیسترها و برنامه ها و کار با توابع با ایراد و سوال برنامه نویسی C مواجه نمی شود و توجه خود را صرف نحوه تنظیمات رجیسترها و نحوه استفاده از آنها و سایر تنظیمات می کند.
(فیلم آموزش کاربردی زبان سی در میکروکنترلرهای ARM :
http://goo.gl/PoYFu1
به منظور پر کردن این خلا می باشد.)
حال سوال اینجاست که صرف یادگیری راه اندازی پریفرال های میکروکنترلرهای ARM، کافیست!؟
@armeducation
در حیطه برنامه نوسی میکروکنترلرهای ARM می توان اطلاعات زیادی از منابع مختلف بدست آورد. چه از منابع آموزشی چه از رفرنس های اصلی مانند رفرنس منوال و ... . مسئله ای که در اینجا مهم به نظر می رسد این است که این همه اطلاعات در کجا بدرد می خورد و چه کارایی دارد؟ بنابراین ابتدا باید در کاری این اطلاعات لازم باشد که شما برای دانستن آن به منابع مراجعه کنید و آن را یاد بگیرید. در غیر این صورت می بینید زمان زیادی گذاشته اید و انبوهی از اطلاعات دارید که بسیاری از آنها را هیچ گاه لازم نمیشود استفاده کنید. چه بسا این زمان صرف کاری میشد نتیجه ای بهتری هم حاصل می شد. بنابراین لازم است هدف گذاری داشته باشید و مطابق آن هدف اطلاعات لازم را کسب کنید.
اجازه بدهید واضح تر بیان کنم. در توضیحات رجیسترها میبینید شرح بیت های مختلفی که از آن در حالت عمومی تر استفاده نکرده اید داده شده است. یا سمپلهایی برای حالت های مختلف یک پریفرال وجود دارد. یا کامپایلرهای دیگری هم وجود دارد... به صورت کلی یک آشنایی با عملکرد داشته باشید بد نیست تا حداقل در جایی نیاز شد بدانید این قابلیت است و به آن مراجعه کنید. ولی اینکه زمان زیادی صرف آن بکنید تا آن را انجام دهید، بدون اینکه کاری با آن داشته باشید یا کارایی داشته باشد جالب به نظر نمی رسد. از این رو خواندن هزاران صفحه منوال و ... برای شروع لازم نیست بلکه بر اساس نیاز به قسمت مربوطه مراجعه و استفاده نمود. به عنوان نمونه در کاری نیاز به استفاده از gpio و وقفه و سریال و ADC و تایمر و ال سی دی کاراکتری و SD کارت و اترنت است. در این بین ممکن است تنظیمات کلاک هم لازم شود. در حین کار ممکن است ببیند DMA هم لازم شده و نمونه گیری را با آن انجام دهد بهتر است، پس به سراغ این پریفرال هم می رود. و ... بنابراین آیا در این حین فرد وقت خود را صرف usb Device می کند!؟ طبیعتا در حیطه کاری مربوطه هر چقدر لازم باشد دانش خود را زیاد می کند.
@armeducation
👍1
به اطلاع می رساند سوالات مربوط به فیلم های مقدماتی آموزش کار با نرم افزار STM32CubeMX و توابع HAL که در کانال :
https://news.1rj.ru/str/armeducation/359
و در وب سایت :
http://www.arm-education.ir/?p=342
لینک آن قرار داده شده است، در فروم ایران میکرو تاپیک مخصوص آن مطرح نمایید:
goo.gl/g3Nvra
با سپاس 🙏
همان طور که مشاهده می شود می توان در یک پروژه البته با اد کردن کتابخانه های لازم و اعمال تغیرات در کانفیگ، از توابع RL برای NAND Flash و SPI Flash نیز همانند SD و USB Flash استفاده نمود.
@armeducation
تفاوت آموزش و پروژه در چیست؟
در آموزش مسئول انجام پروژه های شخصی فرد نمی توان بود و در پروژه مسئول آموزش فرد. مگر آنکه ذکر شود.
این به چه معناست :
- در آموزش به راه اندازی ها و عملکردها وآشنایی با نحوه عملکرد توابع و نحوه تغییرات در آنها پرداخته می شود و خود فرد با فراگیری آن و تمرین بایستی بتواند خود پروژه ای که مد نظر دارد را انجام دهد .
- در پروژه تحویل داده شده، انجام درست کار مهم است و اینکه بتوان با تغییر دیفاین ها و ... طبق نیاز کارهای متفاوتی انجام داد همین طور عملکرد کلی توابع و نحوه بهربرداری از آن، پشتیبانی و خدمات پس از فروش.
@armeducation