کویکتل

کار با QuecOpen در ماژول EC200U

quecOpen quectel banner

قبلا در مطلب “معرفی قابلیت QuecOpen در ماژول های کویکتل” در مورد QuecOpen صحبت کردیم و اشاره کردیم که به کمک این قابلیت میتونیم کدنویسی خودمون رو روی ماژول انجام بدیم و نیازی به کنترلر خارجی نداشته باشیم ، حالا در این آموزش میخوایم نحوه اجرای یک Hello World رو روی EC200U بررسی کنیم ،پس با سیسوگ همراه باشید.

 

برای کدنویسی این ماژول ما IDE خاصی نداریم ، تنها چیزی که داریم یه SDK هست که البته غیر از اون هم به چیز دیگه ای نیاز نداریم ، شما میتونید برای ادیت کد ها از هر ادیتوری که میخواید استفاده کنید.

 

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

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

QuecOpen csdk

 

وارد پوشه sdk میشیم و برای اطمینان از درست بودن فایل هامون ، قبل از اینکه تغییری در اونها بدیم یکبار پروژمون رو build میکنیم. برای اینکار از PowerShell استفاده میکنیم و دستور زیر رو اجرا میکنیم

 

 

در صورت موفقیت آمیز بودن با این پیغام مواجه میشیم

 

خب حالا میریم سراغ نوشتن کد خودمون…

اول از همه باید بگم که sdk به صورت دیفالت شامل app های کوچیک هست که هر کدومشون یه کاری رو انجام میدند و هر کدوم هم توی یک thread جدا اجرا میشند ، نقطه شروع پردازنده هم برای پردازش کد ها فایل ql_init.c توی مسیر components\ql-application\init  هست که تابع appimg_enter در اون صدا زده میشه.

همونطور که توی خط 24 کد بالا میبینید ، یک thread جدید ایجاد شده که بدنه تابع اون به این صورت هست :

در اینجا هر زیر اپلیکیشنی که بخوایم استفاده کنیم میتونیم فعالش کنیم ، ما برای تست Hello World خودمون ، تابع ql_uart_app_init رو از کامنت در میاریم.

حالا به سراغ فایل uart_demo.c در مسیر components\ql-application\peripheral میریم . نقطه شروع ما توی این فایل همون تابع ql_uart_app_init هست که در اون یک thread ایجاد کرده که تابع ql_uart_demo_thread در اون اجرا میشه

در ادامه میتونید پارامتر های این تابع رو بررسی کنید

quecOpen rtos task create

 

دستورات دیگر RTOS و نحوه پیاده سازی اونها در فایل Quectel_EC200U_Series_QuecOpen_RTOS_Development_Guide_V1.0 به طور کامل توضیح داده شده.

خب ، حالا به تابع ql_uart_demo_thread میریم

همونطور که مشخصه ، توی خط 15 تا 21 تنطیمات UART (مثل BAUD RATE , DATA BIT , …) رو مشخص کرده ، بعد از اون توی خط 34 و 39 کد بالا ، پین های مربوطه رو برای rx و tx مشخص کرده و عملکرد اونها رو برای uart مشخص کرده ؛ الان میخوایم ببینیم که این دو پین QL_UART2_TX_PIN و QL_UART2_RX_PIN از روی سخت افزار کدوم پایه ها میشند ، توی فایل components\ql-application\peripheral\inc\ql_pin_cfg.h این دو پایه به این صورت تعریف شدند:

و بعد از اون توی فایل components\ql-kernel\inc\quec_pin_index.h دوباره به این صورت تعریف شدند:

و در نهایت پایه های 137 و 138 میشند.

 

quecOpen pinmux uart ec200u

 

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

quecOpen pinmux uart ec200u board

شاید به نظر کمی بیهوده بیاد که چندمرحله مختلف برای مشخص کردن یک پین تعریف شده ، اما اینطور نیست ! اگر شما هم از همین استاندارد برای کدنویسی پیروی کنید میتونید بدون تغییر ، کدی که برای مثلا ماژول ec200u نوشتید رو روی eg915u هم استفاده کنید.

 

به سراغ کد بر میگردیم و توی خط 8 ، متنی که میخوایم چاپ کنیم رو تغییر میدیم

زمان توقف رو هم از 20 ثانیه به 1 ثانیه کاهش میدیم (خط 65)

با دستور زیر کدمون رو کامپایل میکنیم

خروجی ما توی پوشه target\EC200UEU_AA_APPIMAGE قرار میگیره

quecOpen image

برای پروگرام نیازه که اول دستور AT+QDOWNLOAD رو برای ماژول ارسال کنیم ، بعد از اون ماژول ریست میشه و یه پورت جدید با نام Diag شناخته میشه

کار با QuecOpen در ماژول EC200U

حالا از نرم افزار QFlash نسخه 5.7 استفاده کرده و فایل 8915DM_cat1_open_APPIMAGE_merge.pac رو انتخاب میکنیم و ماژول رو پروگرام میکنیم.

quecopen qflash

 

با وصل کردن یک مبدل سریال به پایه های AUX_RXD و AUX_TXD ماژول میتونیم خروجی رو بررسی کنیم.

 

quecOpen ec200u helloworld

برای کسب اطلاعات بیشتر و دریافت اطلاعات مورد نیاز و SDK برای کار با QuecOpen این فرم زیر را تکمیل کرده تا با شما تماس گرفته شود.

 

 

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

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

15 دیدگاه در “کار با QuecOpen در ماژول EC200U

  1. Avatar for سینا سینا گفت:

    if(CONFIG_QUEC_PROJECT_FEATURE_MY_API)
    option(QL_APP_FEATURE_MY_API “Enable my_api” ON)
    else()
    message(STATUS “FEATURE SMS is disabled at core!”)
    option(QL_APP_FEATURE_MY_API “Enable SMS” OFF)
    endif() سلا م نمی دونم چرا موقع ساختن AP جدید طبق مراحل زکر شده در فصل 4 SDK برای ساخت AP جدید من تمام مراحل فصل چهارم رفتم جلو ولی AP من OFF می شود ودر QL _INT .C نیز اضافه شد بعد ازBUILD کردن UNDEF# می شود واگر OFF هم پاک کنم اصلا وارد پوشه ی AP من نمی شود

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام. منظورتون از AP من OFF میشه چی هست ؟!
      میتونید سوالتون رو کامل در انجمن سیسوگ بپرسید تا دوستان راهنمایی کنند.
      ask.sisoog.com
      فصل 4 رو هم متوجه نشدم ؟! منظورتون داکیومنتی هست ؟!

  2. Avatar for سینا سینا گفت:

    CMake Error: The source directory “C:/Quectel ec200u” does not appear to contain CMakeLists.txt.
    Specify –help for usage, or press the help button on the CMake GUI.

    ninja: error: loading ‘build.ninja’: The system cannot find the file specified.
    ببخشد
    .\build_all.bat new EC200UEU_AA appimage من این دستور در vs code می فرستم با ارور بالا برخورد می کنم برای build کردن می تونید راهنمایم کنید …

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      اروری که داره میده خیلی واضحه. مشخصا داره میگه من فایل CMakeLists.txt رو پیدا نمیکنم که نشون میده احتمال زیاد توی فولدر اشتباهی دارید دستور رو میزنید. باید تو فولدر اصلی sdk که فایل CMakeLists.txt هست، این دستور رو بزنید
      توی اسم فولدر هاتون هم از فاصله استفاده نکنید.

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

    سلام می خواستم ببینم Quec open از Cpp هم پشتیبانی می کند?

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام. خیر. با c باید کد بزنید

  4. Avatar for zahra zahra گفت:

    سلام
    ببخشید من ی مشکلی که داشتم قبل پروگرم کردن ماژول دستورات اتصال به اینترنت و gps را ساپورت میکرد ولی از وقتی برنامه ریختم روش با پورت usb at هر دستوری مربوط به اینترنت یا gps میفرستم را ارور 58 برمیگردونه.

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام . در زمان تنظیم sdk ماژول رو به درستی انتخاب کردید ؟
      منظور اینکه از همین دستور استفاده کردید ؟
      .\build_all.bat new EC200UEU_AA appimage
      اگر اینطور هست دستوراتی که استفاده میکنید و ماژول جواب نمیدهد را بفرستید

      1. Avatar for zahra zahra گفت:

        بله درست انتخاب کردم و بیلد گرفتم و تونستم توی ترمینال hello world ببینم
        ولی دستورات gps و اینترنت ساپورت نمیکنه
        AT+QGPS
        AT+QIACT
        AT+QIDEACT
        همه رو میزنه
        +CME ERROR: invalid command line

    2. Avatar for SABA ABIRI SABA ABIRI گفت:

      سلام وقت بخیر من هم مشکل کاربر ZAHRA رو دارم و تمام AT Command های مربوط به اینترنت را میزنه +CME ERROR: invalid command line
      لطفا راهنمایی کنید ممنونم

  5. Avatar for مهدی صالحی زاده مهدی صالحی زاده گفت:

    وقتی ماژول رو روشن میکنم،پورت دیاگ فقط نصب میشه، در حالی که که طبق آموزش های سایت ابتدا باید پورت AT port نصب بشه و بعد از ارسال AT+QDOWNLOAD پورت دیاگ فعال میشه لطفا من رو راهنمایی بفرمایید

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      درایور های ماژول رو نصب کردید ؟!

      1. Avatar for مهدی صالحی زاده مهدی صالحی زاده گفت:

        سلام ، من یک پکیج دیتای ماژول از طرف شما داشتم 0که وشه SDK و درایور رو داشته ولی وشه tools رو نداره (نرم افزارها ی کار با ماژول بویژه QFLASH ورژن 5.7 را ندارم)
        درایور رو نصب کردم ماژول را که روشن می کنم به پورت ها SPRD U2S Diag اضافه میشه ظاهرا درایورهای دریافتی هم مشکل دارند چون با نام Quectel USB هم نیست

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

          سلام مجدد یه پیغام به همون کاربری که براتون ارسال کرده در تلگرام بدید تا اونها را هم براتون ارسال بشه

          1. Avatar for سیدمحمد مهدی صالحی زاده سیدمحمد مهدی صالحی زاده گفت:

            با تشکر فایل ها ارسال شد. ولی مشکل من در مورد شناخت تنها یک پورت به نام SPRD U2S Diag وجود دارد در حالی که در مستندات ارسالی و سایت با روشن شدن ماژول و اتصال آن به کامپیوتر حداقل دو پورت با پیشوند Quectel دیده میشه

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

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