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
روال دریافت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
کاربرد واحد کلاک و پاور برای مباحث مقدماتی :
سوالی که در اینجا پیش می آید این است که کاربرد این واحد چیست و چه فایده ای دارد؟
برای مباحث مقدماتی مطرح کردن کلاک و پاور ضرورتی چندانی ندارد زیرا کاربرد آن برای آرم آموزان 😀 ملموس نیست.
- به صورت پیش فرض پاور تعدادی از پریفرالهای LPC1768 فعال است و نیازی به فعال کردن آن برای شروع نیست. اولین جایی که لازم می شود واحد ADC است :
LPC_SC->PCONP |= (1 << 12); // Enable power to AD block
همچنین یک کلاک پیش فرض به تمام پریفرالها اعمال می شود.
- برای stm32 کلاک هر پریفرال که بخواهیم استفاده کنیم را بایستی فعال کنیم :
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN ;
بنابراین با همین خط کارمان راه می افتد مگر چیزهای دیگری نیاز شود.
@armeducation
قسمت PLL در واحد کلاک چیست؟
افزایش دهنده مقدار کلاک اعمالی از اسیلاتور خارجی یا داخلی به حداکثر مقدار مشخص شده.
@armeducation
ضرورت آشنایی با توابع آماده :
برای پیکربندی اولیه یک پریفرال، مثال های مختلفی قرار داده شده است که هم بایستی خودمان بتوانیم یک پروژه با این توابع ایجاد کنیم و هم با دستورات آن آشنا باشیم.
@armeducatin
خواندن از ADC با DMA :
به صورت معمول خواندن از یک کانال ADC به این صورت انجام می شود :
1- دستور آغاز تبدیل
2- منتظر شدن برای تبدیل ولتاژ ورودی به مقدار دیجیتال خواندن این مقدار
3- پایان تبدیل
(https://news.1rj.ru/str/armeducation/216)
در صورتی که بخواهیم از DMA استفاده کنیم به صورتی که برای تبدیل مقدار آنالوگ به دیجیتال و انتقال دیتا به رم، CPU درگیر نشود می توان به صورت های زیر عمل کرد:
- تا یک انتقال از یک کانال ADC به رم میکرو انجام شد برنامه وارد زیروال وقفه DMA شود. این کار تفاوتی با وارد شدن به زیروال وقفه ADC وقتی بخواهیم از وقفه ADC استفاده کنیم، ندارد!
- وقتی به تعداد مورد نظر از یک کانال ADC به آرایه ای مقدار قرائت شده منتقل شد یک وقفه در DMA داده می شود.
- به صورت متوالی از چند کانال ADC به یک آرایه مقدار آنالوگ به دیجیتال ریخته می شود و هر موقع نیاز شد از دیتای داخل این آرایه استفاده می کنیم.
@armeducation
بنا به نیاز می توان به منابع مختلفی که سایت st برای STM8 قرار داده مراجعه نمود. به عنوان نمونه برای STM8S003F3 :
https://www.st.com/en/microcontrollers/stm8s003f3.html
- Product Specifications
- Application Notes
- Technical Notes & Articles
- User Manuals
- Reference Manuals
- Programming Manuals
- Errata Sheets
- Design Notes & Tips
- HW Model, CAD Libraries & SVD
- Presentations
- TOOLS AND SOFTWARE
@armeducation
Forwarded from armeducation (Mahdi Zarkoob)
آموزش مقدماتی میکروکنترلر LPC1768 ورژن 2 :
http://goo.gl/vBlK6N
تاپیک :
http://goo.gl/FVaEnI
آموزش پیشرفته میکروکنترلر LPC1768 :
http://goo.gl/YHLD0J
تاپیک :
http://goo.gl/HnLQAH
@armeducation
armeducation pinned Deleted message