آموزش برنامه نویسی ماژول MC60, پروژه, توصیه شده, کویکتل

کار با ماژول تمام عیار mc60 – قسمت ششم – نمایشگر oled

در قسمت‌ قبل سراغ ساخت یک mp3 player رفتیم با ماژول mc60، توی این قسمت میخوایم سراغ به بخش جدایی ناپذیر از پروژه هامون بریم و اون چیزی نیست جز نمایشگر، توی این قسمت سراغ راه اندازی نمایشگر oled با ماژول mc60 میریم، پس با سیسوگ همراه باشید…

 

برای کار با ماژول mc60 بیشترین چیزی که کمکمون میکنه داکیومنت و example های کاملی هست که شرکت quectel در اختیارمون گذاشته، اما برای بحث نمایشگر oled متأسفانه کد آماده‌ای موجود نیست، به همین دلیل من کتابخونه ای رو برای کار با نمایشگرهای oled آماده کردم که میتونید برای mc60 از اون استفاده کنید.

اول از همه لازم هست که فایل هدر و سورس رو به پروژتون اضافه کنید، برای این کار فایل oled.h و Adafruit5x7.h رو به پوشه include و فایل oled.c رو به پوشه custom اضافه می‌کنیم (فایل‌ها میتونید از گیت هاب من دریافت کنید).

 

کد ما برای دو سایز 128*32 و 128*64 آماده شده که باید نوع مورد نظرتون رو با define کردن توی خط 17 و 18 فایل oled.h مشخص کنید:

 

کد زیر هم برای تست کتابخانه آماده شده که میتونید استفاده کنید:

 

اینجا هم میتونید توابع و عملکرد هر کدوم از توابع کتابخونه رو مشاهده کنید

 

سخت افزار mc60 oled

برای اتصال سخت افزاری به دلیل این که سطح ولتاژ ماژول mc60 ما 2.8 ولت هست و نمایشگر oled 5 ولت ، باید از level shifter استفاده کنیم.

در تصویر پایین میتونید اتصال سخت افزار من رو به همراه خروجی کدی که در بالا قرار دادم مشاهده کنید:

 

 

خرید برد و ماژول MC60 از فروشگاه سیسوگ:

https://shop.sisoog.com/wp-content/uploads/2022/05/EB_MC60_1-2.png

 

 

 

 

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

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

بازگشت به لیست

نوشته های مشابه

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

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

26 دیدگاه در “کار با ماژول تمام عیار mc60 – قسمت ششم – نمایشگر oled

  1. احمدرضا گفت:

    سلام و خسته نباید
    کارتون عالیه، اینکه این همه وقت میگذارید و برای همه مطلب مفید منتشر میکنید خیلی جای تحسین داره
    آیا امکاشن هست این کتابخونه رو با درایور SH1106 هم سازگار کنید؟

    1. احمدرضا حدیدی گفت:

      امروز خودم تونستم کل کتابخونه Adafruit GFX رو برای MC60 و نمایشگر SH1106 (نمایشگر 1.3 اینچ) پورت کنم
      انشاالله کتابخونشو برای SSD1306 هم آماده میکنم و روی Github میگذارم که همه عزیزان استفاده کنند

      1. Sisoog Os گفت:

        بسیار عالی دوست عزیز
        حتما لینک گیت هاب را هم اینجا قرار بدید که بقیه هم ببینن و استفاده کنند

  2. فاضل گفت:

    سلام برای شیفت لول که استفاده کردید ، قسمت LV را به VDD_EXT وصل کردید؟

  3. فاضل گفت:

    سلام
    در فرمان کانفیگ همان ابتدا آدرس slave ست میشود. برای ارتباط با دیوایس باید به تعداد دیوایس ها کانال تعریف و کانفیگ کنم ؟تشکر

    1. Zeus ‌ گفت:

      سلام دوست عزیز
      هر کانال قادر به آدرس دهی ۱۲۸ دستگاه هست، در واقع این ماژول دو کانال متفاوت برای i2cدارد یکی به شکل سخت افزاری و دیگری به شکل نرم افزاری کار میکند
      کانال صفر که به شکل سخت افزاری کار میکیند انتخاب بهتری برای شما خواهد بود.

      1. فاضل گفت:

        ببخشید من متوجه نشدم. اگر امکان هست دستور برای ارتباط با دو دیوایس با آدرس متفاوت با استفاده از کانال صفر را بگذارید. خیلی ممنون بابت راهنمایی

        1. Zeus ‌ گفت:

          خوب – ساده است
          اینجا باگ داره کتابخانه کوکیتل من که از اول خودم نوشتم کتابخانه رو برای استفاده
          ولی شما هر بار قبل از استفاده از دیواس با آدرس متفاوت یک بار اینیت کنید i2c رو مشکلتون حل میشه

          1. فاضل گفت:

            ممنون که راهنمایی کردید.
            نکته جالبی گفتید که کتابخانه را دوباره نوشتید. سورس اصلی کتابخانه ها کجاست . من هم تا حدی که بتونم تغییر بدهم و استفاده کنم.
            تشکر

          2. Zeus ‌ گفت:

            دوست عزیز کتایخانه های کویکتل کلوز سورس هستند و سورس اونها در دسترس نیست
            من به شکل مستقیم با رجیسترهای SOC کار کردم
            شما اول باید دیتاشیت و منوال آیسی mt2503 رو پیدا کنید بر اساس اون برای قسمت مورد نظرتون کتابخانه بنویسید.
            ولی این راه سختی است، همونطور که توضیح دادم قبلا به سادگی میتونید از کتابخانه خود کویکتل استفاده کنید.

  4. فاضل گفت:

    سلام. اگر سطح ولتاژ 3.3 ولت باشد باز هم به level shifter نیاز هست؟
    برای قرار دادن چند دیوایس روی باس iic مشکلی ندارد؟
    تشکر

    1. Mahdi.h   گفت:

      برای جواب دادن به این سوال لازم هست که دیتاشیت هر دو طرف ارتباط رو بررسی کنیم. توی فایل hardware design ماژول mc60 پارامتر های ولتاژی پایه ها RI و DCD که ما استفاده کردیم رو به این صورت مشخص کرده:
      VILmin=0V
      VILmax=0.25×VDD_EXT
      VIHmin=0.75×VDD_EXT
      VIHmax=VDD_EXT+0.2
      VOHmin=0.85×VDD_EXT
      VOLmax=0.15×VDD_EXT
      که ولتاژ VDD_EXT هم برابر 2.8 هست. حالا باید پارامتر های ولتاژی پایه های دیتای ماژول رو در طرف دیگه هم به طور کامل بررسی کنیم و ببینیم که همخوانی دارند یا نه.
      البته یه راه دیگه هم هست و اونم این که ماژول رو وصل کنید و ببینید کار میده یا نه ?
      این نمایشگر oled خودش ولتاژ 3.3 رو هم پشتیبانی میکنه اما من نتونستم مستقیم به mc60 متصلش کنم ، اما مثلا چیپ pcf8574 رو با ولتاژ تغذیه 3.3 تونستم با mc60 ارتباط بدم.

      چند دیوایس رو هم میتونید استفاده کنید.

  5. فاضل گفت:

    سلام
    i2c بصورت نرم افزاری پیاده سازی شده؟

    1. Mahdi.h   گفت:

      سلام
      خیر، به صورت سخت افزاری
      البته خود sdk از i2c نرم افزاری هم پشتیبانی میکنه

  6. کوک گفت:

    سلام
    با mc60 به یه مشکل عجیب برخوردم:
    سیم کارت ایرانسل هیچ مشکلی نداره اما همراه اول میزارم مینویسه:
    CPIN Not INSERTED
    برد رو از نویسنده همین پست گرفتم که کیفیت خوبی داره و روی هر دو اسلات سیم کارت گذاشتم اما همراه اول جواب نمیده
    هم ایرانسل و هم همراه اول هردو usim و اعتباری هستن و هر دو روی گوشی های دیگه هیچ مشکلی ندارن و همین سیم کارت همراه اول رو روی ماژول m66 میزارم بدون مشکل کار میکنه
    لطفا کمکم کنید…

    1. کوک گفت:

      مشکل حل شد
      مشکل ضخامت سیم کارت بود!

      ضخامت سیم کارت ها معمولاً 0.63 میلی متر است.

      اما ضخامت سیم کارت های همراه اول که این مشکل را ایجاد کرده حدود 75/0 میلی متر بود.

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

      وقتی ضخامت سیم کارت اپراتور را با کاغذ سنباده کاهش دادم (حدود 0.62 میلی متر) به درستی کار می کرد.

      1. Sisoog Os گفت:

        ممنون بابت به اشتراک گذاشتن راه حل

  7. مهدی رهی گفت:

    سلام
    یه فایل راهنمای برای استفاده از دستورات at-command نوشتم (البته بیشتر جهت استفاده شخصی بوده) برای mc60 و m66 آدرس دانلود فایل رو میزارم اینجا اگر از بچه های سیسوگ هم کسی دید بدرد میخورده زحمت پست کردنش به عنوان یه راهنما با سیسوگ

    فرمت libre office:
    https://s18.picofile.com/file/8434085784/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C_%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA_at_Command_%D9%85%D8%A7%DA%98%D9%88%D9%84_%D9%87%D8%A7%DB%8C_GSM.odt.html

    فرمت pdf:
    https://s19.picofile.com/file/8434085792/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C_%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA_at_Command_%D9%85%D8%A7%DA%98%D9%88%D9%84_%D9%87%D8%A7%DB%8C_GSM.pdf.html

    فرمت microsoft world:
    https://s19.picofile.com/file/8434085768/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C_%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA_at_Command_%D9%85%D8%A7%DA%98%D9%88%D9%84_%D9%87%D8%A7%DB%8C_GSM.docx.html

    1. Sisoog Os گفت:

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

    2. sina گفت:

      سلام
      میخواستم بدونم برای راه اندازی lcd کاراکتری هم میشه از این کتابخونه استفاده کرد؟

  8. سید امیر گفت:

    سلام
    آیا با mc60 میشه با پروتکل can bus کار کرد؟

    1. Sisoog Os گفت:

      سلام
      mc60 CAN Interface نداره و اگر چنین قسمتی را بصورت خارجی درایو کنید میتونید از این پروتکل هم استفاده کنید