امبدد لینوکس! مبحث شیرینی که کاربردش توی زندگی ما خیلی زیاد هست،خیلی از دستگاههایی که روزانه از اونها استفاده میکنیم به کمک امبدد لینوکس راهاندازی شدهاند. اما متأسفانه هنوز هم برای ما فارسیزبانان منابع زیادی برای کار با اون وجود نداره، البته که از چند وقت پیش مبحث امبدد لینوکس در سایت سیسوگ باز شد و چندین مطلب هم تا کنون برای اون نوشته شده. اما ما توی این سری آموزش چند قسمتی میخوایم برد اوپن سورسی رو منتشر کنیم که از سخت افزار و چیپ F1C100S در اون استفاده شده، بعد از اون هم نحوه راه اندازی برد به کمک امبدد لینوکس آموزش داده میشه و چند پروژه هم با اون انجام میشه تا دیگه مشکلی برای استفاده از اون نداشته باشید.
شاید برای شما مفید باشد: آموزش امبدد لینوکس از 0 تا 100
بلوک دیاگرام سخت افزار F1C100S
در ابتدا بلوک دیاگرام این تراشه رو میبینید که رابط های سخت افزاری و اطلاعات پردازنده رو نشون میده:
فرکانس کاری هسته ARM ARM926EJ-S این تراشه 533MHz هست. با این مشخصات سخت افزاری یکی از محصولاتی که میشه باهاش ساخت HMI هست که همه مشخصات مورد نیازش رو داره ، البته توی محصولات زیادی هم به کار برده شده که نمونه هاش دستگاه های پخش تصویری و کنسول های بازی کوچیک هستند.
توضیح شماتیک سخت افزار F1C100S
بخش اول – تغذیه
این ماژول نیاز به چند ولتاژ ورودی برای بخش های مختلف هست. به طور معمول برای تامین تغذیه اونها از چیپ های تغذیه استفاده میشه که ما در اینجا از EA3036 استفاده کردیم و سه ولتاژ 3.3 ، 2.5 و 1.1 رو از اون گرفتیم.
بخش دوم – حافظه
بخش اول شماتیک اتصال کارت حافظه هست و قسمت دوم هم اتصال حافظه فلش خارجی با پروتکل spi . یک کلید هم برای 1 کردن پایه chip select قرار داده شده تا در صورت نیاز هنگام بوت شدن از بررسی حافظه فلش رد بشه (برای بوت شدن با USB).
با این حساب ما هم میتونیم از روی کارت sd بوت بشیم و هم از روی حافظه فلش اما نکته اینجاست که توی دستگاه هایی که وارد بازار میشند هیچکدوم از روی کارت sd بوت نمیشند و از روی حافظه فلش بوت میشند و این به دلیل پایداری و قابلیت اطمینان بالاتر هست.
بخش سوم – تاچ و ال سی دی
توی این برد هم از تاچ خازنی و هم مقاومتی پشتیبانی میشه ، برای تاچ مقاومتی از چیپ ns2009 استفاده شده و یک کانکتور FPC هم برای ارتباط با تاچ خازنی در نظر گرفته شده.
همچنین توسط چیپ mp3202 بک لایت ال سی دی تامین میشه و ال سی دی توسط یک کانکتور fpc 40 pin به برد متصل میشه.
اینحا هم میتونید رزولویشن هایی که میتونید خروجی بگیرید رو مشاهده کنید:
بخش چهارم – USB و WIFI
طراحی بخش usb به خاطر محدودیت چیپ در مورد usb و نیاز ما باعث یکسری پیچیدگی شد! F1C100S دارای یک پورت usb هست که تعداد کمی اندپوینت رو پشتیبانی میکنه ، ماژول wifi که ما استفاده کردیم توسط usb راه اندازی شده به همین دلیل روی برد یک چیپ هاب usb قرار داده شده تا بتونیم غیر از wifi یو اس بی دیگری هم استفاده کنیم. علاوه بعد از خروجی usb ماژول یک کلید قرار داده شده تا خروجی usb را بین هاب و پورت میکرو usb جابجا کند. در پایین دیاگرام اتصال usb رو مشاهده میکنید:
در صورت عدم نیاز به ماژول wifi وجود هاب هم اضافی هست ، به همین دلیل برای اتصال هاب چند جامپر قرار داده شده که میتوان usb رو به هاب فرستاد یا مستقیم به usb a:
بخش پنجم – IO های خارجی
برای ارتباط برد با خارج هم پروتکل های مختلفی بیرون کشیده شده اند که شامل I2C , UART*2 , SPI , ADC میشوند. البته این پین ها میتونند کاربری های مختلفی داشته باشند و نوع اونها تغییر کنه که توی Device tree مشخص میشه (در قسمت های بعد توضیح داده میشه).
دانلود رایگان شماتیک و PCB برد توسعه SINUX F1
فایل های طراحی رو میتونید به صورت رایگان از گیت هاب من دریافت کنید!
در این بخش میتونید به همه قسمتهای سری آموزش کار با تراشه F1C100S دسترسی پیدا کنید:
سلام و عرض خسته نباشید…
سوالی داشتم جناب مهدی
اول اینکه آیا برای این \ردازشگر داریور کامل سراغ دارین.. چون I2C , I2S , SPI خیلی لازم میشه
واینکه وقتی touch_init_lvgl رو فعال میکنم خطا میده میگه این تابع تعریف نشده میشه لطفا راهنمایی کنید
خیلی مهمه. سباسگذارم
سلام
درایور های لازم برای این بخش هایی که شما گفتید توی لینوکس موجود هست
در مورد تاچ هم اولا این تابع باید تفریف بشه و جزو توابع استاندارد lvgl نیست و دوم اینکه برای فعال کردن تاچ در فایل های کانفیگ lvgl هم باید تغییراتی انجام بدید
سلام. ممنون از مطلب خوبتون. آیا کتابخانه کار با تراشه NS2009 وجود داره؟ من هر چی گشتم چیزی نصیبم نشد. بدون کتابخانه تاچ فقط السیدی راه اندازی میشه. امکان داره کتابخانش را هم قرار بدید.
سلام خواهش میکنم. شما برای استفاده از ns2009 نیاز به درایور دارید . داخل ایمیجی که توی قسمت 3 این سری آموزش نحوه ساختش توضیح داده شده ، این درایور هم موجود هست و میتونید استفاده کنید.
سلام جناب مهندس
تشکر بابت مطالب مفیدی که منتشر میکنید
ما به تجربه شما در توسعه برد با تراشه F1C100S نیاز داریم. در صورتی که همکاری به صورت پروژه برای شما مقدور هست، شماره تماس خودتون رو ارسال کنید.
با تشکر
سلام.
خواهش میکنم 🙂
میتونید با این اکانت در ارتباط باشید
https://t.me/mahdi2001h1
عالی!
ممنون از شما ??
بسیار عالی، واقعا تشکر
بی صبرانه منتظر ادامه اموزش هستم
سلامت باشید
قسمت بعدی این چندروزه منتشر میشه
تشکر از شما
تلگرام مدتی بود پیام دادم ظاهراً تشریف نمیارید؟
مشتاقانه منتظر آموزش کد نویسیش هستیم
از این که اینقدر لطف کردین وقت گذاشتین و پروژه ای به این خوبی رو تهیه کردین واقعا تشکر میکنم.. عالی بود…
در باره allwinner a13 هم یه تحقیقی بکنید تبلت هاش الان تو بازار هست..
فکر کنم بحث خوبی بشه…
این تراشه خوبه فقط شاید با برد دو لایه نشه در اورد کار رو و یه مقداری محدودیت زمانی هست و سعی میکنیم برای تراشه های دیگه هم وقت بذاریم
عالی و جذاب…
نظر لطفتون هست?
لذت بخش بود.خدا قوت
نظر لطفتون هست?
بسیار عالی ….
سلامت باشید ??
کارتون حرف نداره????
ممنون از شما?
عااااااااالی
دمتون گرم
خواهش میکنم?
سلام.
خیلی خوبه دوباره این نمونه مطالبو منتشر میکنید.
به امید پیوسته بودن مقالات.
♥️
سلام. با حمایت های شما انشالله که ادامه دار هست?