chilaboard چیلابرد
5.77K subscribers
655 photos
114 videos
201 files
1.07K links
آموزشهای متنوع و کاربردی طراحی سخت افزار الکترونیک
📚 کتابخانه جامع و رایگان آلتیوم
📌 پست مهم کانال 👇
https://t.me/chilaboard/2125
Download Telegram
#آموزش
#YOCTO
#SOC
قسمت اول:
وقتی طرحتون کاستوم شده باشده نیاز است که یکسری پکیج ها و درایورها رو صورت اختصاصی برای بردتون در کرنل پیاده سازی کنید، که توسط لایه ها و BSP ها در YOCTO قابل انجام است.
اگر تو ضمینه امبدد هستید حتما وقت بگذارید و یاکتو رو یاد بگیرید. یک آموزش خوب اینجا هست:
https://www.youtube.com/user/TheYoctoProject/videos

همونطور که مهندس گفتند توی روترها خیلی استفاده دارن. آخرین طرح ما برای روتر 5 جی از برادکام BCM58712 استفاده کردیم. شرکت برادکام یکسری سخت افزارهای شبکه رو مستقیما کنار SoC پیاده سازی کرده و نیاز به قطعه جانبی نداره.
شاید از همه مهمتر این باشه که برای شبکه ما نیاز به یکسری کارهای امنیتی داریم و این آی سی دارای واحد تراست زون است.

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

شرکت برادکام معمولا دیتاشیت برای این قطعات رو به صورت مجزا میفروشه و هزینه اضافی میگیره. میتونید درخواست advanced datasheet رو بهشون بدید.
ولی شرکت های دیگه ای مثل NXP یا Atmel یا Allwinners معمولا دیتاشیت های خوبی دارند.
در مقایسه میتونم بگم NXP بهترین رفرنس ها رو داره ولی در نهایت امکانات جانبی و قیمت هست که تعیین کننده است.

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

برای سخت افزار:
در قدم اول نیاز نیست که فرکانس بالا طراحی کنید.
V3s: یه مقدار کمی اس رم داخلی داره و پس نیاز نیست کامپوننت خارجی بگذارید. تنها اینترفیس های پرسرعت شما usb , ethernet است. که با توجه ورژن 2 یو اس بی و اترتنت 10 100 برای کاربردهای معمول به سادگی در 2 لایه میتونید رسم کنید
A13: ببخشید آی سی های آلوینری که استفاده کردم یکم قدیمی شدن ولی شما میتونید مشابه اون رو بزنید. این آی سی باید رم خارجی بگذارید و اولین جایی هست که طراحی فرکانس بالا خودشو نشون میده. حتما حتما از 4 لایه به بالا بزنید. دفعه اول فکر میکردم کنترل امپدانس مهم نیست و 2 لایه طراحی کردم ولی در هنگام بوت شدن رم رو نمیشناخت. برد بعدی 4 لایه بود که تمام خطوط زمین رو مرجع میدیدند و درست شد.
H3, H5: یادمه شش لایه طراحی کردم. به نظرم اون موقع بهتر از این نمیشد. اون سری که گرفته بودم دفعه اول آی سیش رو از برد بنانا پای دمونتاژ کردم.
f1c100s, f1c200s: اون سری هایی که اس آخرشون دارن یعنی رم داخلی دارن یعنی نیاز به اس رم خارجی و بردهای چند لایه فرکانس بالا به حداقل میرسه. ایی سی پی یو ها جای v3s که خیلی قدیمی شده رو پر کردند. توصیه ام اینه که برای یوزر اینترفیس و شروع به کار خیلی خوب هستند.
Imx233: این هم از nxp هست و خیلی کم مصرف نیاز به رم خارجی داره ولی روی برد 2 لایه زدم و کار میکنه. شاید تنها مشکلش این باشه که هر هفته یکبار که چکش میکردم، ریست شده بود ولی کم مصرف بودنش و هزینه بردش برام مهم بود. داکیومنت کاملی هم داره.
RK3188: محصولات شرکت راک چیپ هم داکیومنت های بسیار خوبی دارن،
BCM5871X: به نظرم برای شروع به کار در ابتدا توضیح داردم.
آی سی SoC زیاد هست

نرم افزار:
کلا دو کلمه بیشتر ندارم بگم، اول لینوکس یاد بگیرید. بردهای رسپری کمک زیادی میکنن تو یادگیری و آموزش
بعد هم که وارد کار تجاری شدید و خودتون برد رو طراحی میکنید باید لینوکس اختصاصی خودتون رو کامپایل کنید و به شدت توصیه میکنم یاکتو یادبگیرید.

https://www.youtube.com/user/TheYoctoProject/videos

مطلب آموزشی از @ShahiM_V

#چیلابرد راهی به سوی حرفه ای شدن در دنیای بی انتهای الکترونیک 😎

https://t.me/joinchat/AAAAADvy-3DsiuPiTAguNw
👍1👎1
#آموزش
#YOCTO
#SOC
قسمت دوم:
اول به سایت یاکتو برید، در سایت قسمت داکیومنت ها رو کامل بخونید
https://www.yoctoproject.org

اول باید نرم افزار poky رو نصب کنید که شامل bitbake و متادینا هست

فایل رو اکسترکت کنید و برید داخلش
سپس دستور زیر رو اجرا کنید
source oe-init-build-env

سپس یکسری فایل و فولدر ایجاد میشود
بنویسید
vim conf/local.conf
این vim نرم افزار ادیتور هست
سپس اسم ماشینتون رو مثلا بگذارید
MACHINE=qemux86
و سیو کنید. دستور سیو ویم رو از پایین ترمینال ببینید
اسم ماشین باید بر اساس bsp باشه، که بعدا توضیح داده خواهد شد


سپس بیت بیک رو اجرا کنید تا فرایند اجرا بشود
bitbake core-image-minimal


توضیحات:
بیت بیک یک task scheduler و executer هست
که میاد metadata رو میخونه
حالا متا دیتا اطلاعات مربوط به طریقه و نحوه کامپایل کرنل هست

متا دیتا شامل
Configuration(.conf)
Bb classes (.bbclass)
Recipes (.bb)
هست، که توسط یوزر که شمایی باید بازنویسی بشن تا کارهایی که میخوایید رو انجام بدن

که البته کمپانی های مختلف یک سری آماده کرده اند تا کاربردهای سی پی یو خودشون رو از پیش تعیین شده برای شما آماده کردند
همان امکاناتی که تو پست قبلی توضیح دادم
این فایل ها رو تحت عنوان BSP یا board support package در اختیار شما قرار میدن
مثلا برد بیگل بون بلک سازنده هاش این bsp رو متناسب با تمام آی سی ها و درایورهاشون برای شما گذاشتن
فقط کافیه دانلود کنید و متاسب با برد خودتون تغییر بدهید
به این صورت که receipes های جدید رو اضافه میکنید

توجه
حالا همین تغییر و ایجاد متا دیتاها کار اصلی شماست، که حداقل در لینک پست قبل ۳۰ ساعت آموزشش هست

مطلب آموزشی از @ShahiM_V

#چیلابرد راهی به سوی حرفه ای شدن در دنیای بی انتهای الکترونیک 😎

https://t.me/joinchat/AAAAADvy-3DsiuPiTAguNw
👎1