حل یک معادله دو مجهول !
ایراد از برد است یا از برنامه!؟
در مواردی یک برنامه روی برد شما کار نمی کند. یا خود برد زده این یا از برد آماده استفاده می کنید. یا خود برنامه نوشته اید یا از سمپل آماده استفاده کرده اید.
ایراد از کجاست؟ یک مقدار وقت صرف برنامه می کنید و کمی صرف سخت افزار. همه چیز هم درست می بینید.
در اینجا به شکلی باید از یک طرف اطمینان حاصل کنید. یا از برنامه یا از برد.
یک برنامه ای که بر روی یک برد کار می کند روی برد شما هم باید درست کار کند مگر آنکه سخت افزار شما مشکل داشته باشد(موارد عجیبه و استثناها بماند)
@armeducation
ایراد از برد است یا از برنامه!؟
در مواردی یک برنامه روی برد شما کار نمی کند. یا خود برد زده این یا از برد آماده استفاده می کنید. یا خود برنامه نوشته اید یا از سمپل آماده استفاده کرده اید.
ایراد از کجاست؟ یک مقدار وقت صرف برنامه می کنید و کمی صرف سخت افزار. همه چیز هم درست می بینید.
در اینجا به شکلی باید از یک طرف اطمینان حاصل کنید. یا از برنامه یا از برد.
یک برنامه ای که بر روی یک برد کار می کند روی برد شما هم باید درست کار کند مگر آنکه سخت افزار شما مشکل داشته باشد(موارد عجیبه و استثناها بماند)
@armeducation
شماتیک اتصال آی سی ایتوپرام at24c02 به میکرو
ظرفیت : 2 کیلو بیت
• 4 بیت A3 تا A6 یک آدرس 7 ثابت. کد 1010 : EEPROM
• سه بیت A0 تا A2 آدرس دستگاه : هر سه زمین شده
آدرس می شود : 0xa0
@armeducation
ظرفیت : 2 کیلو بیت
• 4 بیت A3 تا A6 یک آدرس 7 ثابت. کد 1010 : EEPROM
• سه بیت A0 تا A2 آدرس دستگاه : هر سه زمین شده
آدرس می شود : 0xa0
@armeducation
در قسمت i2c و به عنوان مثال خواندن و نوشتن در ایتوپرام، گستردگی مطلب زیاد است. البته اصل مطلب یکی است که به چند روش قابل انجام است:
1- سمپلی که با توابع cmsis از پریفرال i2c خود میکرو استفاده کرده است.
2- سمپلی که با توابع HAL از پریفرال i2c خود میکرو استفاده کرده است.
3- سمپلی که با رجیستر، از پریفرال i2c استفاده کرده است.
4- سمپلی که با استفاده از پریفرال gpio مد i2c را پیاده سازی کرده است هم با رجیستری هم با توابع cmsis و هم با HAl.
@armeducation
1- سمپلی که با توابع cmsis از پریفرال i2c خود میکرو استفاده کرده است.
2- سمپلی که با توابع HAL از پریفرال i2c خود میکرو استفاده کرده است.
3- سمپلی که با رجیستر، از پریفرال i2c استفاده کرده است.
4- سمپلی که با استفاده از پریفرال gpio مد i2c را پیاده سازی کرده است هم با رجیستری هم با توابع cmsis و هم با HAl.
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
پروگرام کردن برد میکروکنترلر ARM در مد SWD
@armeducation
@armeducation
Forwarded from armeducation (Mahdi Zarkoob)
احتراما از دوستان تقاضا میشود فیدبک های خود را از فیلم آموزشی پیشرفته stm32
https://news.1rj.ru/str/armeducation/515
با ذکر جزییات به بنده ارسال فرمایید.
@mzarkoob
با سپاس 🙏
@armeducation
https://news.1rj.ru/str/armeducation/515
با ذکر جزییات به بنده ارسال فرمایید.
@mzarkoob
با سپاس 🙏
@armeducation
Telegram
arm-education.ir
فیلم آموزش پیشرفته STM32F10x
لینک فروشگاه :
https://goo.gl/JBvEZg
انجمن ایران میکرو جهت پاسخ گویی به سوالات :
https://goo.gl/XVsMBf
@armeducation
لینک فروشگاه :
https://goo.gl/JBvEZg
انجمن ایران میکرو جهت پاسخ گویی به سوالات :
https://goo.gl/XVsMBf
@armeducation
روال دریافت1بایت از ایتوپرام 2Kb :
استارت
ارسال آدرس سخت افزار و تایید
آدرس خواندن دیتا و تایید
استارت
آدرس سخت افزار به منظور خواندن و تایید
خواندن یک بایت دیتا وNO تایید !
استپ
@armeducation
استارت
ارسال آدرس سخت افزار و تایید
آدرس خواندن دیتا و تایید
استارت
آدرس سخت افزار به منظور خواندن و تایید
خواندن یک بایت دیتا و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
در نظر بگیرید به جای استفاده از پریفرال 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
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
تست اولیه ارسال عکس 480*480 از یک برد به برد دیگر دو بایت دو بایت پروتکل TCP با rl کیل در اترنت و نمایش روی tft lcd در میکروی lpc1788
کاهش سرعت نسبت به UDP مشهود است.
@armeducation
کاهش سرعت نسبت به UDP مشهود است.
@armeducation
مشاهده بسته دریافتی تحت پروتکل TCPدر Wireshark .
در اینجا کاراکتر 1 از برد میکروکنترلر به PC ارسال شده است.
ارسال این همه بایت برای فرستادن 1بایت دیتا نمی صرفه! 😁
@armeducation
در اینجا کاراکتر 1 از برد میکروکنترلر به PC ارسال شده است.
ارسال این همه بایت برای فرستادن 1بایت دیتا نمی صرفه! 😁
@armeducation
Forwarded from armeducation (Mahdi Zarkoob)
Wireshark-win32-1.10.5.sfx.exe
21.1 MB
نرم افزار Wireshark برای ویندوز 32 بیتی برای مانیتورینگ شبکه اترنت استفاده می شود.
پسورد :
@armeducation
پسورد :
@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
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
به نظر شما چه موقع وجود کلاک در یک میکرو را احساس می کنید؟ این همان موقعی است که بایستی یک سرکی در واحد کلاک بکشید.
قسمت GPIO و EXTI را راه اندازی کرده اید و می خواهید پورت سریال را راه اندازی کنید. اگر کلاک اعمالی همان چیزی باشد که بایستی اعمال شود(48 یا 72 یا 100 یا 120 یا 168 یا 216 مگاهرتز) محاسبات باودریت هم صحیح خواهد بود و متن ارسالی از میکرو را می توانید در کامپیوتر مشاهده کنید. در غیر این صورت به جز کاراکترهای نامربوط چیزی نمی بینید.
در میکروهای ARM-Cortex کلاک در تابع SystemInit تنظیم می شود. این تابع در startup_***.s قرار دارد. کلاک به صورت معمول از اسیلاتور خارجی و در حالت ماکزیمم خود قرار می گیرد. در این حالت مشکلی نیست و به این زودیها نیازی به سرک کشیدن در این واحد وجود ندارد. ولی در بعضی مدل میکروها این تابع، این عمل را انجام نمی دهد. در این حالت است که اگر ندانید، مدتی سر کار خواهید رفت! چرا که مثلا فرض می کنید کلاک میکرو 48 مگ است و تنظیم رجیستر باودریت را بر این اساس انجام می دهید ولی در عملی جوابی نمی گیرید. در میکروهای stm32 یک سری تنظیمات در این رابطه، به صورت اتوماتیک در نرم افزار STM32CubeMX انجام می شود.
@armeducation
هر چند تابع
SystemInit()
در همان ابتدا در
startup_***.s
فراخوانی می شود ولی بهتر است در ابتدای برنامه هم نوشته شود.
@armeducation
SystemInit()
در همان ابتدا در
startup_***.s
فراخوانی می شود ولی بهتر است در ابتدای برنامه هم نوشته شود.
@armeducation
بلوک دیاگرام واحد کلاک در رفرنس منوال قرار دارد.
در نگاه اول کمی سردرآوردن از آن مشکل به نظر می رسد. البته خیلی جای نگرانی نیست! ☺️
@armeducation
در نگاه اول کمی سردرآوردن از آن مشکل به نظر می رسد. البته خیلی جای نگرانی نیست! ☺️
@armeducation
کانال کاملا تخصصی میکروکنترلرهای ARM
شما معرف کانال به سایر دوستان خود باشید.
👇👇👇👇👇👇
@armeducation
با سپاس
@armeducation
شما معرف کانال به سایر دوستان خود باشید.
👇👇👇👇👇👇
@armeducation
با سپاس
@armeducation
بلوک دیاگرام ساده تری از واحد کلاک در
STM32CubeMX
برای سری های STM32
برای هر قسمت در رفرنس منوال یک رجیستر در نظر گرفته شده که می توان تنظیمی در آن اعمال کرد.
@armeducation
STM32CubeMX
برای سری های STM32
برای هر قسمت در رفرنس منوال یک رجیستر در نظر گرفته شده که می توان تنظیمی در آن اعمال کرد.
@armeducation
بلوک دیاگرام کلاک LPC1768
کاملا مختصر!
کلاک در واحد pll این میکرو بین 275 تا 550 مگاهرتز است.
بعضی محدودیت های تعیین ضرایب مثل stm32 در این میکرو وجود ندارد.
@armeducation
کاملا مختصر!
کلاک در واحد pll این میکرو بین 275 تا 550 مگاهرتز است.
بعضی محدودیت های تعیین ضرایب مثل stm32 در این میکرو وجود ندارد.
@armeducation
اگر در حین اجرای برنامه اسیلاتور خارجی میکرو قطع یا خراب شود، آیا میکرو قادر به ادامه کار خود می باشد؟
آیا راه حلی وجود دارد که در عملکرد دستگاه موقتا مشکلی پیش نیاید؟
@armeducation
آیا راه حلی وجود دارد که در عملکرد دستگاه موقتا مشکلی پیش نیاید؟
@armeducation