مقاله های سیسوگ, ARM, STM32, توصیه شده

مقایسه میکروکنترلر STM32 و LPC17xx

مقایسه میکروکنترلر STM و LPC

مقایسه میکروکنترلر ها همیشه یک جنگ خونین بوده  و هست ؛ متاسفانه افراد تعصبات زیادی روی ابزار هایی که استفاده می کنند دارند و در اغلب موارد معتقدند که ابزار و لوازم مورد استفاده خودشون بهترین ابزار موجود در جهان که نه، بلکه در کهکشان است؛ بنا بر همین استدلال، حاظر نیستند حتی اپسیلونی از مواضع خودشون کوتاه بیان و یک بحث منطقی رو شکل بدهند ؛ نمونه زیاده مثلا “لینوکس بهتر است یا ویندوز” یا “کامپایلر Keil بهتر است یا IAR ” و…

معمولا چنین بحث هایی بی نتیجه و بی سرانجام میمونه و تهش هم افراد از هم رنجیده خاطر می‌شوند، ما در این مقاله قصد نداریم که به این دعوا دامن بزنیم یا بهش بپردازیم ؛ همیشه معتقد بودم ابزاری که کارم رو ساده تر کنه ؛ پس بهترینه (البته به شرطی که ندزدیده باشم ؛ یا خریده باشم یا رایگان بوده باشه) پس در این مقاله همین رویکرد رو خواهیم داشت و از برخورد احساسی در مورد این مقوله دوری خواهیم کرد. با سیسوگ همراه باشید.

ما در این مقاله قصد نداریم پرفال به پرفال میکروکنترلرهای مورد بحث را بررسی کنیم ؛ بلکه قصد داریم نکات کلیدی را مطرح کنیم که در تصمیم گیری حائر اهمیت است.

میکروکنترلر و کمی از تاریخچه آن در ایران

راه اندازی میکروکنترلر AT91Sam7s

سالها پیش ؛ شاید بشه گفت سال های بسیار دور ؛ سال هایی که هنوز میکروکنترلر های هشت بیتی مثل AVR پادشاهی داشتند ؛ زمانی که تازه میکروکنترلر های ARM وارد عرصه رقابت شده بودند ؛ اون موقع مثل الان شروع ساده نبود ؛ منابع خیلی محدود بود و آموزش ها همه به زبان انگلیسی و محدود ؛ اول سال ها برای راه اندازی یه میکروکنترلر ARM باید چند تا ولتاژ درست میکردی ؛ باید شبکه RC برای بخش PLL درست می‌کردی ؛ پروگرامر و دیباگر در دسترس نبود و همه از طریق بوت لودر های تعبیه شده روی آیسی اقدام به برنامه ریزی اون می کردند ؛ فکر کنید توی چنین شرایطی اول سر و کله LPC1768 (البته اگر از سری LPC2368 بگذریم) پیدا شد ؛

اگر در اون دوره زندگی کرده باشید حتما به یاد دارید ؛ اغلب از میکروکنترلر های Atmel استفاده می کردند با شماره At91Sam7 که تمام این دنگ و فنگ هایی که توضیح دادم (توی عکس فوق می‌تونید تنها برد راه اندازش رو ببینید ) رو داشت. حالا فکر کنید بهتون میگن میکروکنترلری اومده که برای راه اندازی فقط ولتاژ 3.3 لازم داره ؛ هیچ کدوم از این خازن مقاومت ها رو هم نمیخواد ؛ تازه بوت لودرشم از طریق پورت سریال هست ؛ واقعا باور نکردنی بود.

اینطور شد که شاید حدود 1 سال با میکروکنترلر LPC1768 کار کردیم و بعد میکروکنترلرهای STM32 وارد بازار شدند و کم کم جای خودشون رو باز کردند. اون اوایل علاقه زیادی بهشون نداشتم (نه به خاطر LPC1768 بلکه بخاطر دلایل منطقی که در ادامه بیان میکنم) ولی کم کم گذشت و گذشت جوری که الان شاید حدود 5 سالی میشه که سراغ LPC1768 نرفتم البته به تازگی با LPC1788 دارم کار می‌کنم.

همین شد جرقه نوشتن این پست که بپردازیم به این که کدام میکروکنترلر ها چه قابلیت هایی دارند و استفاده از کدوم میکروکنترلر منطقی تر است و کجا نمیشه از کدوم میکروکنترلر استفاده کرد.

انتخاب منصفانه رقبا برای مقایسه

میکروکنترلر با هسته CortexM

در مقایسه انصاف رو باید رعایت کرد ؛ برای همین انتخاب کاندید مناسب یکی از جنبه های انصاف است ، ملاک هایی که مد نظر قرار میدهیم برای انتخاب ؛ اول رایج بودن شماره مذکور هست و دوم هم داشتن هسته پردازشی یکسان است.

برای هسته پردازشی سراغ هسته های Cortex خواهیم رفت ؛ مخصوصا هسته Cortex-M3 ؛ چرا که این هسته در بیشتر میکروکنترلر ها مورد استفاده قرار می گیرد ؛ البته هسته سری M خاص میکروکنترلر طراحی شده برای این سراغ هسته Cortex-M3 میرویم چون رایج تر هست.

در خانواده NXP میکروکنترلر رایج این هسته LPC1768 است و در خانواده ST هم سراغ سری STM32F10X میرویم چرا که رایج ترین شماره ممکن این خانواده هست.

بررسی ساختار میکروکنترلر ها

ساختار داخلی LPC1768

وقتی از میکروکنترلر LPC17xx استفاده می‌کنید ؛ دقیقا این حس رو داره که دارید از یک میکروکنترلر 32 بیتی استفاده می‌کنید ؛ چرا که تمام رجیستر ها 32 بیتی هستند ، ولی این حس رو در کار کردن با ST ندارید! دقیقا به این دلیل که در

میکروکنترلر های شرکت ST اغلب رجیستر های به صورت 16 بیتی هستند

انگار که هسته 32 بیتی رو روی بدنه یه میکروکنترلر 16 بیتی سوار کرده باشند ! البته نمیشه گفت این بده ولی وقتی بخواید یه پورت 32 بیتی داشته باشید که اطلاعات رو به صورت مستفیم بریزید روش بدون دخالت CPU شما رو دچار مشکل خواهد کرد.

همپوشانی ناخوشایند

میکروکنترلر STM32

همه اطلاع داریم که میکروکنترلر های ST از قیمت های خیلی مناسبی نسبت به NXP برخوردار هستند ؛ و فکر میکنم یکی از دلایل اصلی فراگیر شدن این میکروکنترلر ها همین مساله می باشد ؛ اما چطور این قیمت مناسب ممکن می شود ؟

اگر بخواهیم در سطح سلیکون به این مساله بپردازیم ؛ کاهش حجم سلیکون میتونه دلیل عمده این مساله باشه ؛ به عنوان نمونه شما در خانواده F1 قادر نیستید که هم زمان هم از رابط USB و هم از رابط Can استفاده کنید ؛ چون این دو از یک RAM یکسان استفاده می‌کنند این در حالی است که چنین محدودیتی در میکروکنترلر های NXP وجود ندارد.

از دیگر موارد آزار دهنده این همپوشانی ها بحث Remap است ، منظور از Remap  تغییر پایه های مورد استفاده یک پرفال است. در میکروکنترلر LPC17xx این بحث به صورت بیت به بیت پیاده سازی شده است در حالی که در میکروکنترلرهای STM32 این بحث به صورت پرفالی دیده شده است که چندان جالب نیست !

بگذارید برای روشن تر شدن مساله با مثالی این موضوع را بررسی کنیم ؛ در حالت عادی Uart1 در میکروکنترلر STM32 بر روی پایه های PA9 و PA10 است ؛ اگر پایه PA9 را به عنوان ورودی تایمر استفاده کرده باشید ؛ و قصد داشته باشید از Uart1 استفاده کنید حتما باید از پایه های PB6 و PB7 استفاده کنید و امکان استفاده از PA10 را نخواهید داشت. یعنی مجبور به جابجایی هر دو پایه هستید در حالی که میکروکنترلر LPC17xx این امکان را به شما می دهد.

گاهی در طراحی PCB امکان مپ کردن به صورت بیتی موجب ساده شدن طرح خواهد شد.

ضرایب دردسر ساز

مقایسه واحد PLL

PLL از اجزاء جدانشدنی مدارات میکروکنترلر جدید است ؛ در واقع کار PLL افزایش فرکانس ورودی است ، وجود PLL باعث می‌شود که میکروکنترلر با یک کریستال 12 مگاهرتزی قادر باشد با 100 مگاهرتز کار کند.

در میکروکنترلر های LPC17xx بخش PLL به نحوی طراحی شده است که تقریبا شما را قادر می سازد با اکثر فرکانس های ورودی فرکانس مورد نیاز خودتان را ایجاد کنید ؛ چرا که یک عدد 14 بیتی به عنوان ضرب کننده دریافت می کنید و یک عدد 8 بیتی به عنوان تفسیم کننده !

اما در میکروکنترلر های STM32 مقداری قضیه متفاوت است و شما تنها قادر به انتخاب بین ضرایب هستند و نمی توانید هر عدد دلخواهی را ضرب و تقسیم کنید. همین مساله برای کلاک ورودی تایمر ها و باس های داخلی نیز صادق است.

پارالل کردن سخت افزاری

فرض کنید در پروژه ای لازم دارید که یک تایمر 32 بیتی داشته باشید ؛ با میکروکنترلر LPC17xx نیاز نیست نگران چیزی باشید چرا که تایمر ها به صورت پیش فرض 32 بیتی هستند ؛ اما وقتی که از میکروکنترلر های STM32 استفاده می کنید ؛ واقعا جای نگرانی وجود دارد ؛ چرا که تمام تایمر های 16 بیتی هستند همین دلیل باعث ایجاد چالش های زیادی در طراحی و پیاده سازی خواهد شد.

خوشبختانه STM32 قابلیتی دارد که می توانید چند سخت افزار را به هم متصل کنید و از حداکثر راندمان آن استفاده کنید.

این قابلیتی است که اجازه می دهد قادر باشید دو یا حتی سه تایمر 16 بیتی را با هم لینک کنید و بتوانید یک تایمر 32 بیتی یا 48 بیتی داشته باشید. اما قابلیت لینک کردن به همین جا محدود نمی شود ؛ تا حالا فکر کرده اید چرا میکروکنترلر های STM32 در برخی موارد 2 یا 3 واحد ADC مجزا دارند ؟ ؛ دقیقا شما قادر هستید این دو یا سه واحد مجزا را با هم به نحوی ترکیب کنید تا سمپل ریت را دو یا سه برابر افزایش دهید. این قابلیتی است که در میکروکنترلر های LPC17xx وجود ندارد.

کلیدی ترین موضوع

جامعه استفاده کننده

همیشه مقایسه میان میکروکنترلر ها با سنجش میزان فرکانس کاری CPU ؛ میزان حافظه RAM و Flash و… انجام میشه ؛ که مقایسه صحیحی نیست ؛ مهمترین و اساسی ترین مساله جامعه استفاده کننده و پشتیبانی کننده است ؛ بذارید با مثالی موضوع رو روشن کنم ؛ فرض کنید میکروکنترلری به اسم XVR وجود داره که یک دلار قیمت داره ؛ با 1 گیگاهرتز فرکانس CPU و 64 مگابایت رم و 1 گیگابیت حافظه Flash ؛ از اون طرف هم میکروکنترلر AVR همین قیمت رو داره ؛ شما کدوم میکروکنترلر رو انتخاب خواهید کرد ؟

تا اینجا فکر نمیکنم شک داشته باشید بین XVR و AVR ! ولی شما مساله اصلی رو فراموش کردید، میکروکنترلر XVR تنها یک دیتاشیت داره که قابلیت ها و پایه های میکروکنترلر داخلش توضیح داده نه انجمن و نه سایتی برای پشتیبانی نداره ؛ ولی در مقابل AVR انجمن فعال و کاربرهای فعالی داره که در صورت به وجود آمدن مشکل یا خطا میتونید مساله رو مطرح کنید و در کوتاه ترین زمان ممکن به جواب دلخواه برسید !

حالا کدام را انتخاب می‌کنید ؟ من که باشم قطعا به سراغ AVR خواهم رفت ؛ در واقع مساله مهم تر از قابلیت های فنی ؛ گستردگی جامعه استفاده کننده است همین باعث میشه که شما بتونید به سادگی پروژه خودتون رو پیش ببرید و در صورت بروز مشکل ؛ هرچه سریعتر مشکلتون رو برطرف کند.

اگر بخوام مقایسه رو بین میکروکنترلر های NXP و ST انجام بدم ؛ به جرات میتونم بگم که ST جامعه بزرگتری از استفاده کننده ها رو داره و فروم فعالی داره که به سادگی مشکلاتتون رو برطرف کنید ؛ در مقابل شرکت NXP در این زمینه چندان موفق عمل نکرده و جامعه استفاده کنندگان چندان بزرگی هم نداره و همین مساله قطعا در آینده شما رو با مشکل مواجه خواهد کرد.

از طرف دیگر شرکت NXP ایران رو تحریم کرده و سایتش برای دوستان مقیم ایران در دسترس نیست که شرایط استفاده از مستنداتش رو دو چندان سخت تر خواهد کرد!

 

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

35 دیدگاه در “مقایسه میکروکنترلر STM32 و LPC17xx

  1. Avatar for HOSI HOSI گفت:

    سلام . آیا کسی با میکروکنترولر های 32 بیتی اتمل کار میکنه ؟؟؟ توی نت هر چی سرچ میکنم کمتر کسی دیدم که باهاش پروژه انجام بده. قیمتشون هم که فضاییه . اصلا چرا سایت میکروچیپ هنوز ARM یا DSPIC32 تولید میکنه ؟؟؟

    1. Avatar for Zeus ‌ Zeus ‌ گفت:

      Microchip هنوز ARM و dsPIC تولید می‌کنه چون مشتری‌های صنعتی و حرفه‌ای داره که نیازهای خاصی دارند. ولی برای پروژه‌های عمومی یا شخصی، استفاده از گزینه‌های اقتصادی‌تر و محبوب‌تر مثل STM32 یا ESP32 منطقی‌تره.

      اگر پروژه خاصی مد نظرت هست یا سوال بیشتری داری، خوشحال می‌شم راهنمایی کنم! 😊

  2. Avatar for امیر امیر گفت:

    من stm خیلی کار نکردم.
    ولی تو خونه حول و حوش ۱۰ تا avr دارم که دیگه پروگرام نمیشن ولی تو lpc اصلا همچین موردی ندیدم.
    خیلی میکروی جون سختی دیدمش.

    1. Avatar for Zeus ‌ Zeus ‌ گفت:

      اون avr اگر نسوخته باشه با فیوز ریکاوری مشکلشون حل میشه 🙂

  3. Avatar for امیر امیر گفت:

    قبلا زیاد با lpc کار کرده بودم یه سری اومدم stm کار کنم دیدم موقع دیباگ پروژه اونقدر که تو lpc به رجیسترهای پیش فرض تو کیل دسترسی داشتم و تقریبا هر چیزی که میخواستم که ببینم رو میدیدم ولی تو stm این طور ندیدم.
    ولی stm هم قیمت پایین و سمپل بیشتر داره.
    ولی دیباگ برا خود من خیلی مهمه.

  4. Avatar for Amir Amir گفت:

    دوست عزیز شما به چند مورد ایراد نسبی در میکروهای stm اشاره کردید که فکر میکنم دلیلش عدم شناخت کافی از رفرنس منوال میکرو هست ( صرف نگاه کردن به دیتاشیت فقط یک نمای کلی از سیستم به شما میده و نه بیشتر )

    مثلا فرمودید میکروهای st برای ریمپ پریفرالی کار میکنن و در ثورت ریمپ پریفال روی پورت دیگه پایه های استفاده نشده از دست میره .
    قضیه کاملا اشتباهه ، تمام پروتکلهای سریال st از usart ( و چند زیر مجموعه اش ) تا spi مودهای مختلف دارن ، طبق مود انتخابی پایه های بلا استفاده به شکل gpio یا پریفرال دیگر روی همون پین در دسترسه ( مثلا شما پورت سریال رو half duplex ببندی یا spi رو سیمپلکس ببندی پایه های دوم و سوم و چهارم آزاد هست هر جور میخوای استفاده کن … پورت سریال رو با flow control سخت افزاری ببندید ۴ پایه لازمتون میشه و خیلی موارد دیگه که به شناخت طراح از پروتکلها و زیر ساخت سخت افزار بر میگرده … ایراد نیست ) .

    یا موضوع اشتراک ram یو اس بی و رابط can در صورتی هست که طراح بخواد از بافر سخت افزاری استفاده کنه ، شما میتونی can رو با بافر دلخواه خودت به فرم استاندارد ۸ بایتی که تقریبا استاندارد همه جا هستش بدون استفاده از کل ۳ تا mailbox و 14 تا 28 identifire descriptor استفاده کنی مشکلی هم برای جایی پیش نمیاد .

    موردی داریم در تجهیزات st اونم آپشنهای سخت افزاری و پریفرال های زیاد و منعطف با امکانات اضافه است که این امکانات برای تازه کارها باعث سوء تفاهم میشه ، فکر میکنن چون مثلا rtc در ای تی قابلیت کالیبراسیون هم داره این یک ایراد بوده ، پریفرالهای بقیه یا اکسترنال که کالیبراسیون ندارن حتما در کارخانه کالیبره شدن پس کیفیتشون بالاتر بوده !!!

    کالیبراسیون فوق کالیبراسیون کریستال rtc هست یعنی یک آپشن اضافه به شمای کاربر دادن دریفتهای مرجع کلاک خارجی رو بتونی پیدا و کالیبره کنی . بقیه که این قابلیت رو ندارن در واقع ضعف دارن نه اینکه st مشکل داشته .

    در مورد پورت ۳۲ بیتی مجدد قضیه بر میگرده به عدم تجربه نویسنده با نحوه اجرا و استفاده از سیستمها …

    نویسنده اومده دو تا عدد رو باهم مقایسه کرده نتیجه گرفته ۳۲ از ۱۶ بزرگتره پس این بهتره .

    ایشون تشریف ببرن یکبار یک پروژه عملی با psram اکسترنال اجرا کنن متوجه میشن باس این قطعات ۱۶ بیت و پایه های کنترل رم و فلش حدود همون ۱۶ هست .

    پریفرالی مثل fsmc کتترلر و مشابهاتش که سنگین ترین و سریع ترین جابجایی های دیتا رو در سیستمهای میکروپروسسوری انجام میدن با باسهای ماکزیمم ۱۶ بیتی کار میکنن .
    .در عالم application processor های موبایلی باس رم و فلش دوران ارایه این سخت افزارها ۱۶ بیتی بوده .
    ضمن اینکه مموری کنترلر و dma یک میکرو اینقدر پهنای باند نداره که شما فرض کنی باس ۳۲ بیتی روی میکرو عملا قابل استفاده هم هست ! در ازای هر سیکل کلاک چند تا wait به سیستم میخوره که بماند …

    این مقایسه همونقدر نامرتبط بود که فرضا کسی بره پورت pci express و تاندربولت رو ببینه بعد نتیجه گیری کنه باس ata بهتر بود و پهنای باند بالاتری میده اون پارالل بود sata و pci سریاله !

    در حوزه تکنولوژی و علم نیازی به دعوا و مجادله نیست پارامترها و زیرساخت سیستمها معلومه میشه در شرایط مشابه تست گرفت نشون داد عملکرد هر تجهیزی چقدره و در مقام مقایسه برتری داره یا ضعف ( اکثر اینایی که سر نوع میکرو جنگ و دعوا دارن دلیلش تعصب نیست دلیلش اینه وقتی سمای نوعی شناخت کافی از زیرساخت سیستم نداشته باشی متوسل به تعصب و اطهارنظر بی اساس و توجیهات بی بنیاد میشی )

    خیلی از کاربرهای میکرو اگر اطلاعات کافی از سخت افزار و ساختار و وضعیت بازار تجاری داشتن و در عین حال تجربه کار اجرایی هم داشتن با مثلا ۱ دلار مورد مثال نویسنده نه سراغ avr میرفتن نه سراغ xvr یا st و lpc و Stellaris و kinetis و غیره .

    برای ۹۵ درصد نیازهای عمومی یک soc RTK که اکثرا بعنوان مازول بلوتوث کنار مبکرو استفاده کردن ۲۰ برابر اصل میکرو قابلیت و امکانات و سرعت و غیره داشته ، کسی شناخت داشته باشه کل سیستمش رو روی همون soc کنترلر بلوتوث پیاده میکنه .
    یا یک esp32 زیر ۳ دلاری یک سوم یک هسته اش کل میکروهای موضوع این مقاله رو میگذاره توی جیب ساعتی اش .
    از حیث جامعه آماری استفاده کنندگان ، این قطعات هستن که دارن دنیای امروز رو با فاصله مطلق میگردونن ، ولی پلتفورمهای توسعه اشون عموما خاص و برای استفاده تجاری و oem هست نه کاربرد آماتوری .

    و خدا رو شکر که جامعه آماتور نسبت به این تجهیزات و پلتفورمهای توسعه اشون آشنایی نداره وگرنه سطح ابتذال علمی و فنی رو چند صد برابر قبل میکرد …

    1. Avatar for Zeus ‌ Zeus ‌ گفت:

      ممنونم برای توضیحاتتون 🙂

  5. Avatar for رادمهر مرادخانی رادمهر مرادخانی گفت:

    سلام امکانش هست در رابطه با لینک کردن پریفرال های stm32 بیشتر توضیح بدید؟
    چطوری میشه 24 کرد adc رو؟

    1. Avatar for Zeus Zeus گفت:

      منظورتون از لینک کردن پرفرال ها دقیقا چی هست از طریق DMA یا چیزی مثل تایمرها که میشه تایمرهایی بیش از ۱۶ بیت ساخت ؟
      این امکان برای adc هست ولی نه این معنی که دقتش زیاد بشه – به این معنی که سرعت سمپلینگ بیشتر بشه
      البته با تکنیک آور سمپل میتونید دقت رو بالا ببرید 🙂

  6. Avatar for علی علی گفت:

    عالی بود ???

    1. Avatar for Sisoog Os Sisoog Os گفت:

      خواهش میکنم دوست عزیز

  7. Avatar for علی ترابی علی ترابی گفت:

    با سلام
    من تازه کا با arm رو شروع کردم .برای شروع هم یه برد bluepill خریدم. چند سه ماه پیش دیدم یه بنده خدایی تو یه کانال انبار مازاد یه برد lpc1768 گزاشته به قیمت ارزان !!! منم گفت خوب بخریم که گرون تر نشه .. حالا بعدا با اینم کار کنیم بد نیست!!
    طرف خودش رشته اش الکترونیک بود ازش می پرسیدم چرا داری اینو می فروشی هیچی نمی گفت. حالا می فهمم چرا هیچی نمی گفت???
    چون دیگه به کارش نمیومده ???
    واقعا هیچ ارزشی نداره بخوام بعد stm32 با lpc1768 هم کار کنم تو پروژه ها استفاده نمی شه؟؟؟

    1. Avatar for علی ترابی علی ترابی گفت:

      با سلام خدمت جناب زئوس
      من پس از کلی گشت و گزار در صفحات مختلف متوجه شدم که nxp یه کامپایلر بر مبنای الکلیپس برای خودش عرضه کرده (MCUXpressoIDE)من اونو دانلود کردم بعد به خودم هم گفتم شاید محیطی مثل cubemx داشته باشه .بعد نصب:
      http://s11.picofile.com/file/8405237550/Screenshot_6_.png
      متوجه شدم که اون محیط برای میکرو ها و برد ها جدید nxp هست مثل این برد:
      http://esys.ir/Product_Detail.aspx?Type=1&Id=1642
      از اون گذشتم . گشتم که ببینم دیگه چی داره دیدم چند تا پروژه مثال داره تو سری LPC17XX فقط برای 1788 داشت.
      این طور شد که کم کم دارم احساس می کنم اون برد LPC1768 eca رو کلا الکی خریدم???
      می خواستم از شما بپرسم به نظرتون نگه دارم یا بفروشمش
      البته تو این شک که stm32 ها به خاطر میحط توسعه سریع و توابع hal تا چند سال آینده که من به خوام تو یک پروژه از lpc1768 استفاده کنم کسی قبول نکنه
      البته خودتون گفتید دارید با 1788 کار میکنید ایا مثلا قابلیتی که این میکرو داره میکرو های Stm32 هم رده ندارند؟
      و سوال آخر اینکه من خودم اعتقاد دارم وقتی کار کردن با stm32 رو در سطح خوبی یاد بگیرم دیگه اون قدر میکروی با هسته مشابه کار باهش سخت نیست فقط شک دارم تو اینکه تا چند سال آینده استفاده ای داره چیزی از اون شبیه 1788 هست؟؟؟
      فکر کنم خیلی سوال پرسیدم??
      با تشکر

      1. Avatar for زئوس Zeus زئوس Zeus گفت:

        میکروکنترلر های nxp قدیمی تر از stm هستند و ساختار خوبی دارند، البته خوب ابزارهای موجود براش یکم سخت تر هست کار کردن براش ولی خوب میکروهای بدی نیستند مثلا شما ببین فرکانس پایه همین میکروکنترلر ۱۰۰ مگ هست در حالی که معادل اس تی اون ۷۲ مگه !
        وجود پورت های ۳۲ بیتی توی این میکروکنترلرها مزیت حساب میشه به نظر من 🙂
        حالا این که اقبال باهاش یار نبوده و بیشتر کاربرهای ایرانی سراغ خانواده st رفتن این بحث دیگه ای است. و به دلیل جامعه کوچکی که استفاده میکنند منطقا پیدا کردن جواب سوال سخت تر خواهد بود.
        آها یه چیز دیگه مثال های lpc1788 به lpc1768 میشه بست داد ! البته نه اون مثال هایی که پرفرالش رو توی 1768 نداریم
        من پروژه ای داشتم که با st نمی شد هندلش کرد و به سادگی با 1768 اوکی شد 🙂 یه پروژه ای بود که باس دیتای هم زمان ۲۴ بیت میخواست که خوب توی st باید از ترکیب چند پورت استفاده میشد و تاخیر توی دیتاگذاری روی پورت مشکل ایجاد میکرد در حالی که با این میکرو مشکلی نبود.

    2. Avatar for زئوس Zeus زئوس Zeus گفت:

      🙂 اتفاقا lpc ها میکروکنترلرهای خوبی هستن – تا قبل از این که st حتی وارد ایران بشه ما داشتیم با همین lpc ها کار میکردیم بعد که st اومد بخاطر قیمت یه سری پارامتر بیشتر از اون استفاده کردند ولی همچنان این میکروکنتر طرف دارهای خودش رو داره نمیشه گفت بدرد نمی خوره. اتفاقا مثلا شما ببین با یک مدل هسته ولی lpc1768 فرکانس کاریش ۱۰۰ مگ هست در حالی که st همونطور که میدونیم 72 مگ است.
      مثالا تایمر های ۳۲ بیتی داره که توی st به شکل عادی نداریمشون !!!

  8. Avatar for stackprogramer stackprogramer گفت:

    ولی انصافا اس تی از لحاظ قیمتی رقیب نداره

    1. Avatar for Sisoog OS Sisoog OS گفت:

      و حیث تنوع 🙂

  9. Avatar for سید روح اله سید روح اله گفت:

    سلام
    ممنون از سایت پرمحتواتون (stm8،stm32 و…)
    موفق باشید/خدا قوت/ و دمتون گرم 🙂 🙂

    1. Avatar photo electronic girl گفت:

      سلام
      ممنون از لطف شما دوست عزیز

  10. Avatar for Amir Amir گفت:

    سلام
    خسته نباشید
    پست خوب و جالبی بود …
    اگه امکان داره یه پست بزارین با همین عنوان فقط بین AVR باشه و PIC
    امکانات – هزینه – دسترسی – طراحی …
    من پروژه های صنعتی دیدم که با PIC انجام شده و یا برعکس با AVR
    ممنون

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام
      متشکرم ؛ بحث پشنهادی شما جنجالی تر خواهد بود ؛ ولی انشالله سعی خواهیم کرد چنین مقاله ای را نیز منتشر کنیم.

  11. Avatar for علی علی گفت:

    درود بر شما مهندس
    بسیار عالی بود قبلا خواندن مطالب جذاب سایت برایم بدلیل کم رنگ بودن نوشته ها سخت بود الان خیلی عالی شده ممنون از شما

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام و درود دوست عزیز؛ خواهش میکنم ؛ واقعا خوشحالیم که مخاطب هایی داریم که ایراداتمون رو بهمون گوشزد میکنند ؛ همین مساله باعث میشه که بتونیم خودمون رو اصلاح کنیم.

  12. Avatar for مهدی مهدی گفت:

    سلام .
    در مورد ریمپ کردن میکرو های St باید خدمتتون عرض کنم که این امکان وجود داره که شما هر پایه ای که نیاز دارید رو جا به جا کنید و نیاز به جا به جایی همه ی پایه ها نیست و گفته شما در این مورد درست نیست .

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      تا اونجایی که میدونم تقریبا مطمئنم این قضیه رو میکروی stm32f103 پشتیبانی نمیکنه ! قبلا باهاش مواجه شده بودم ؛ اگر شما فکر میکنید این قضیه موجود هست ؛ لطفا مستندی ارائه کنید که تا هم ما خوشحال بشیم و هم این که پست رو اصلاح کنیم.
      متشکرم

  13. Avatar for مجید مجید گفت:

    سلام امروز با وب سایت عالی شما آشنا شدم . کاری بینهایت جالب.
    من مدت هاست که با STM32 کارهایم را انجام می دهم . امروز پشت سرهم همه 15 قسمت آموزش cube را خواندم نکاتی بود که نمی دانستم و یاد گرفتم . دستان درد نکند مشتاقانه منتظر قسمت های بعدی هستم .
    موفق و پایدار باشید.

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام خواهش میکنم دوست من ؛ خوشحالم که مطالب سیسوگ مورد توجه شما قرار گرفته
      بله خواهش میکنم ، انشالله سری جدید به زودی روی سایت قرار خواهد گرفت

  14. Avatar for سعید سعید گفت:

    سلام خیلی خوب بود حیف که زود تموم شد.
    من با avr برای کنترل موتور استپر و 3فاز و موقعیت کار می کنم اطلاعی در مورد stm32 ندارم به نظرتون باید arm رو هم یاد بگیرم. اگر آره باتوجه به آشنایی با میکرو 8 بیتی اسمبلی و سی با روزی دو ساعت چقدر زمان میبره با 32 بیتی بتونم کار کنم و کدوم گروه m0 یا m3 بهتره برای من بهتره ؟
    https://m.dw.com/fa-ir/culture/a-46383818

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز ؛
      اوپس تازه من فکر میکردم شاید خیلی طولانی شده و حوصله سر بر ؛ ممنون برای نظرتون
      ببینید هر کدوم از این هسته ها جای خاص خودشون کاربرد دارند و واقعا نمیشه گفت کدوم بهتره ؛ چون اینام به هر حال با توجه به نیازی به وجود اومدن ؛ ولی فکر میکنم شاید با توجه به نوع کار شما سری m3 بهتر باشه
      البته شاید در مقاله ای به مقایسه این دو بپردازیم
      متشکرم برای لینک – جالب بود 🙂

  15. Avatar for Afshin Afshin گفت:

    عالی بود ممنون

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      خواهش میکنم دوست عزیز 🙂

  16. Avatar for navid navid گفت:

    جالب بود.ممنون
    فقط ایکاش در حین تعریف داستان گذشته سال مورد نظر رو هم ذکر میکردین تا بیشتر متوجه ی اوضاع کلی بشیم

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام ؛ خواهش میکنم دوست عزیز
      فکر میکنم حوالی سال های 83 بود

  17. Avatar for Michel Michel گفت:

    سلام ممنون بابت همه زحمت هاتون
    چنتا نکته میخواستم عرض کنم
    اولا لطفا سرعت آموزش های stm32 رو افزایش بدید
    دوما لطفا لینک فروم شرکت st و nxp رو هم بذارید ممنون??

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام خواهش میکنم دوست عزیز
      در حال آماده سازی آموزش های جدید هستیم که به زودی منتشر خواهند شد .
      فروم stm32 که میتونید به این لینک مراجعه کنید
      و برای NXP که به این لینک مراجعه کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *