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
شماتیک اتصال آی سی ایتوپرام at24c02 به میکرو
ظرفیت : 2 کیلو بیت
• 4 بیت A3 تا A6 یک آدرس 7 ثابت. کد 1010 : EEPROM
• سه بیت A0 تا A2 آدرس دستگاه : هر سه زمین شده
آدرس می شود : 0xa0
@armeducation
STM8S_StdPeriph_Driver.exe
562.7 KB
توابع SPL قابل استفاده در میکروکنترلر STM8S
پسورد :
@armeducation
در قسمت i2c و به عنوان مثال خواندن و نوشتن در ایتوپرام، گستردگی مطلب زیاد است. البته اصل مطلب یکی است که به چند روش قابل انجام است:

1- سمپلی که با توابع cmsis از پریفرال i2c خود میکرو استفاده کرده است.

2- سمپلی که با توابع HAL از پریفرال i2c خود میکرو استفاده کرده است.

3- سمپلی که با رجیستر، از پریفرال i2c استفاده کرده است.

4- سمپلی که با استفاده از پریفرال gpio مد i2c را پیاده سازی کرده است هم با رجیستری هم با توابع cmsis و هم با HAl.
@armeducation
armeducation pinned Deleted message
This media is not supported in your browser
VIEW IN TELEGRAM
پروگرام کردن برد میکروکنترلر ARM در مد SWD
@armeducation
Forwarded from armeducation (Mahdi Zarkoob)
احتراما از دوستان تقاضا میشود فیدبک های خود را از فیلم آموزشی پیشرفته stm32
https://news.1rj.ru/str/armeducation/515
با ذکر جزییات به بنده ارسال فرمایید.
@mzarkoob
با سپاس 🙏
@armeducation
روال دریافت1بایت از ایتوپرام 2Kb :
استارت
ارسال آدرس سخت افزار و تایید
آدرس خواندن دیتا و تایید
استارت
آدرس سخت افزار به منظور خواندن و تایید
خواندن یک بایت دیتا وNO تایید !
استپ
@armeducation
1
شبیه سازی مد i2c با استفاده از پریفرال gpio :
در نظر بگیرید به جای استفاده از پریفرال i2c مجبور باشید این پروتکل را با پایه های gpio شبیه سازی کنید. در این حالت تمام ست و ریست شدن پایه های دیتا و کلاک را باید خودمان انجام دهیم. مثلا برای ارسال یک دیتا :
while(i--)
{
SCL_L;
I2C_delay();
if( SendByte & 0x80 )
{
SDA_H;
}
else
{
SDA_L;
}
SendByte <<= 1;
I2C_delay();
SCL_H;
I2C_delay();
}
در حالی که در پریفرال i2c این کار خود به خود انجام می شد :
I2C1->DR = c;
شبیه سازی UART و SPI با GPIO نیز شبیه به همین عملکرد است.
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
تست اولیه ارسال عکس 480*480 از یک برد به برد دیگر به صورت دو بایتی، پروتکل UDP با توابع RL کیل در اترنت و نمایش روی tft lcd در میکروی lpc1788
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
تست اولیه ارسال عکس 480*480 از یک برد به برد دیگر دو بایت دو بایت پروتکل TCP با rl کیل در اترنت و نمایش روی tft lcd در میکروی lpc1788
کاهش سرعت نسبت به UDP مشهود است.
@armeducation
مشاهده بسته دریافتی تحت پروتکل TCPدر Wireshark .
در اینجا کاراکتر 1 از برد میکروکنترلر به PC ارسال شده است.
ارسال این همه بایت برای فرستادن 1بایت دیتا نمی صرفه! 😁
@armeducation
Forwarded from armeducation (Mahdi Zarkoob)
Wireshark-win32-1.10.5.sfx.exe
21.1 MB
نرم افزار Wireshark برای ویندوز 32 بیتی برای مانیتورینگ شبکه اترنت استفاده می شود.
پسورد :
@armeducation
Forwarded from armeducation (Mahdi Zarkoob)
آموزش مقدماتی میکروکنترلر LPC1788:
https://goo.gl/l4MmGP
تاپیک در فروم :
https://goo.gl/JEo7f9

آموزش پیشرفته میکروکنترلر LPC1788:
https://goo.gl/kKt72J
تاپیک:
https://goo.gl/qccMOi

@armeducation
اندر احوالات کلاک!
به نظر شما چه موقع وجود کلاک در یک میکرو را احساس می کنید؟ این همان موقعی است که بایستی یک سرکی در واحد کلاک بکشید.
قسمت GPIO و EXTI را راه اندازی کرده اید و می خواهید پورت سریال را راه اندازی کنید. اگر کلاک اعمالی همان چیزی باشد که بایستی اعمال شود(48 یا 72 یا 100 یا 120 یا 168 یا 216 مگاهرتز) محاسبات باودریت هم صحیح خواهد بود و متن ارسالی از میکرو را می توانید در کامپیوتر مشاهده کنید. در غیر این صورت به جز کاراکترهای نامربوط چیزی نمی بینید.
در میکروهای ARM-Cortex کلاک در تابع SystemInit تنظیم می شود. این تابع در startup_***.s قرار دارد. کلاک به صورت معمول از اسیلاتور خارجی و در حالت ماکزیمم خود قرار می گیرد. در این حالت مشکلی نیست و به این زودیها نیازی به سرک کشیدن در این واحد وجود ندارد. ولی در بعضی مدل میکروها این تابع، این عمل را انجام نمی دهد. در این حالت است که اگر ندانید، مدتی سر کار خواهید رفت! چرا که مثلا فرض می کنید کلاک میکرو 48 مگ است و تنظیم رجیستر باودریت را بر این اساس انجام می دهید ولی در عملی جوابی نمی گیرید. در میکروهای stm32 یک سری تنظیمات در این رابطه، به صورت اتوماتیک در نرم افزار STM32CubeMX انجام می شود.
@armeducation
هر چند تابع
SystemInit()
در همان ابتدا در
startup_***.s
فراخوانی می شود ولی بهتر است در ابتدای برنامه هم نوشته شود.
@armeducation
بلوک دیاگرام واحد کلاک در رفرنس منوال قرار دارد.
در نگاه اول کمی سردرآوردن از آن مشکل به نظر می رسد. البته خیلی جای نگرانی نیست! ☺️
@armeducation
کانال کاملا تخصصی میکروکنترلرهای ARM
شما معرف کانال به سایر دوستان خود باشید.
👇👇👇👇👇👇
@armeducation
با سپاس
@armeducation
بلوک دیاگرام ساده تری از واحد کلاک در
STM32CubeMX
برای سری های STM32
برای هر قسمت در رفرنس منوال یک رجیستر در نظر گرفته شده که می توان تنظیمی در آن اعمال کرد.
@armeducation
بلوک دیاگرام کلاک LPC1768
کاملا مختصر!
کلاک در واحد pll این میکرو بین 275 تا 550 مگاهرتز است.
بعضی محدودیت های تعیین ضرایب مثل stm32 در این میکرو وجود ندارد.
@armeducation
اگر در حین اجرای برنامه اسیلاتور خارجی میکرو قطع یا خراب شود، آیا میکرو قادر به ادامه کار خود می باشد؟
آیا راه حلی وجود دارد که در عملکرد دستگاه موقتا مشکلی پیش نیاید؟
@armeducation