دسته‌بندی نشده, کویکتل

کار با 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 شناخته میشه

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

quecopen qflash

 

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

 

quecOpen ec200u helloworld

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

 

 

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

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

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

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

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

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

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

  1. zahra گفت:

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

    1. Mahdi.h   گفت:

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

  2. مهدی صالحی زاده گفت:

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

    1. Mahdi.h   گفت:

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

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

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

        1. Sisoog Os گفت:

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