ماژول mc60 ماژولی با امکانات فوقالعاده و قیمت بهصرفه بود که از قابلیتهای اون میتونیم به داشتن …,open cpu, gps, gprs, bluetooth اشارهکنیم که چندین قسمت آموزش برای اون توی سایت قراردادیم، حالا توی این قسمت قصد داریم نسخه جایگزین یعنی ماژول MC65 رو معرفی کنیم و نحوه کار باهاش رو یاد بگیریم این نسخه قیمت پایینتری داره و البته یکسری ویژگی هاش با mc60 متفاوت هست که در ادامه به اون اشاره میشه اما ویژگیهای اصلی رو دارا هست و حتی میتونید اون رو روی بردی که برای mc60 طراحی و تولید کردید مونتاژ کنید و پایهها هم مشابه هستند، پس با سیسوگ همراه باشید تا نحوه کار با این ماژول رو یاد بگیریم…
تفاوت های mc60 و mc65
همچنین شما کدهایی که برای mc60 نوشتید رو میتونید بدون تغییر روی mc65 هم اجرا کنید (البته تا جایی که من تست کردم فقط ممکنه یه دوتا تغییر ساده مثل تغییر اسم توابع نیاز باشه).
برنامه نویسی MC65
مرحله اول (نصب کامپایلر)
ابتدا پوشه کامپایلر رو از حالت فشرده خارج میکنیم (فایل رو از بخش دانلود در آخر مطلب میتونید دریافت کنید)، این کامپایلر نیازی به نصب نداره و فقط کافیه که آدرسش رو داشته باشیم.
مرحله دوم (آماده کردن sdk)
بعد از اکسترکت کردن پوشه sdk (فایل رو از بخش دانلود در آخر مطلب میتونید دریافت کنید) لازم هست که در فایل MS-DOS تغییری ایجاد کنیم؛ ابتدا روی اون راست کلیک کرده و وارد properties میشیم ، سپس در قسمت target محل کامپایلر رو بر اساس سیستم خودمون تغییر میدهیم.
مثلا مقدار پیشفرض این هست:
1 | %SystemRoot%\system32\cmd.exe /K "call C:\CSDTK4.2_Setup\CSDTKvars.bat" |
که لازمه فقط آدرس کامپایلر رو تغییر بدیم، مثلا به:
1 | %SystemRoot%\system32\cmd.exe /K "call D:\M65\tools\CSDTK4.2_Setup\CSDTKvars.bat" |
حالا فایل custom/main.c رو به صورت زیر تغییر میدیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #ifdef __CUSTOMER_CODE__ #include "ql_system.h" #include "ql_gpio.h" void proc_main_task(s32 taskId) { // Specify a GPIO pin Enum_PinName gpioPin = PINNAME_NETLIGHT; // Initialize the GPIO pin (output high level, pull up) Ql_GPIO_Init(gpioPin, PINDIRECTION_OUT, PINLEVEL_HIGH, PINPULLSEL_PULLUP); while (TRUE) { // Set the GPIO level to low after 500ms. Ql_Sleep(100); Ql_GPIO_SetLevel(gpioPin, PINLEVEL_LOW); // Set the GPIO level to high after 500ms. Ql_Sleep(100); Ql_GPIO_SetLevel(gpioPin, PINLEVEL_HIGH); } } #endif |
مرحله سوم (کامپایل کردن)
حالا فایل MS-DOS
رو باز کرده و توی اون دستور زیر رو میزنیم:
1 | make clean && make new |
اگر هم برنامه شما ارور داشته باشه میتوانید ارورها رو در فایل build\gcc\build.log
مشاهده کنید.
مرحله چهارم (پروگرام)
برای پروگرام کردن ماژول mc65 لازم هست که از نسخه 4.20 (یا بالاتر) نرمافزار QFlash استفاده کنید (در انتهای مطلب میتونید این نسخه رو دانلود کنید).
بعد از باز کردن نرمافزار فایل APPGS5MDM32A01.lod
رو انتخاب کرده و پورت متصل به ماژول رو هم انتخاب میکنیم.
حالا پینهای مبدل usb به serial رو به پینهای سریال دیباگ ماژول وصل کرده و ماژول رو روشن میگذاریم و دکمه start رو میزنیم، بعد از پروگرام موفقیتآمیز ماژول با پیغام زیر مواجه خواهید شد.
لینک دانلود مستقیم “فایل نصب CSDTK4.2” – حجم 267.19 مگابایت
لینک دانلود مستقیم “داکیومنت ها، فریمور، SDK و …” – حجم 32 مگابایت
لینک دانلود مستقیم “QFlash V4.20” – حجم 87.26 مگابایت
سلام
این ماژول،ژیرسکوپ هم دارد؟
اگه داره نحوه فعال کردن و دستورات آن تو برنامه به چه صورت
ممنون از سایت خوبتون
سلام دوست عزیز
نه متاسفانه این یکی را نداره 🙁
سلام وقت بخیر
من در حین تکمیل بخش های مختلف برنامه ام.نیاز دارم یک تابع بنویسم که درون تابع از Ql_RIL_SendATCmd همراه با CallBack اون استفاده کردم در زمان استفاده از این تابع کلا دریافت پیامک هام دچار اختلال شدید میشه یا دریافت نمیشه یا کلا یک ربع بعد میاد و همچنین GPIOها مقادیر به خودشون نمیگیرند. با حذف کردن این تابع به حالت عادی برمیگرده .همچنین این دستور در حالتی که CallBack بهش داده نمیشه مشکلی ایجاد نمیکنه
ممنون میشم راهنمایی کنید چجور این مشکل را برطرف کنم
سلام
نحوه استفاده شما از این تابع ممکنه باعث ایجاد مشکل بشه
کدتون رو باید بدید تا بشه در موردش نظر داد.
سلام ببخشید من هم ماژول توسعه و هم ماژول راه انداز MC65 رو خریدم الان طبق لینکی که فرستادم خدمتتون طبق این آموزش میخوام برم جلو توی مرحله سوم برای باز کردن فایل MS-DOS که باید اون خط بهش داد روی این فایل MS-DOS که کلیک می کنم یه لحظه خیلی خیلی کوتاه صفحه مشکی باز و بسته میشه و اصلا فرصت وارد کردن چیزی نیست مشکل از کجاست؟؟چجور برطرفش کنم؟
مشکل بنده برطرف شد و توی آدرس دهی بخشی از دستورات قبل مسیر هم پاک کرده بودم که به این مشکل برخوردم
سپاس بیکران از سایت بینظیرتان.
در رابطه با ماژول mc65 آیا آنتن gps حتما باید اکتیو باشد ؟
آیا انتن مثلا ماژول L86 اکتیو است؟
خروجی مختصات این ماژول به چه فرمتی است DD یا DMM یا DMS
خواهش میکنم?
هم میتونید اکتیو استفاده کنید و هم معمولی ، اگر آنتن اکتیو خواستید استفاده کنید باید یه مدار اضافه هم برای تغذیه آنتن اکتیو استفاده کنید که در reference design توضیح داده شده
ماژول L86 که خودش ماژول هست و آنتن نیست (ماژولی هست که آنتن هم داره)
به صورت “ddmm.mmmm” هست
سلام وقت به خیر
با زدن دکمه start بعد از 30 ثانیه انتظار این پیغام رو میده
FAIL, ERR_2006_S_BROM_CMD_STARTCMD_TIMEOUT
سلام
برای پروگرام از همین نسخه 4.20 که در مطلب قرار داده شده استفاده کنید.
از پورت دیباگ هم برای پروگرام استفاده کنید.
سلام و خدا قوت
یه سوال درباره شماتیکی که برای برد کویکتل قرار دادید دارم. برای تامین تغذیه بخش اصلی ماژول از رگولاتور استفاده نکردید و فقط از دو تا دیود استفاده کردید. سوال هایی که برام پیش اومد اینا هست:
1. چرا از رگولاتور استفاده نمی کنیم و به دیود بسنده می کنیم.
2. چرا از SS34 استفاده کردیم و چجوری بعد از افت ولتاژ روی دو تا دیود هنوز ولتاژ 4.3 ولت هست. یعنی انگار که 0.7 توسط دیود اول کم شده و دیود SS34 ولتاژی کم نمی کنه.
3. برای این ماژول معمولا ولتاژ 4 ولت در نظر میگیرن. البته میدونم بیشتر هم میشه گذاشت. میخواستم بدونم دلیل خاصی داشته که 4.3 ولت گذاشتید یا خیر.
سلام و درود دوست عزیز
۱. قطعا رگولاتور بهتر ولی خوب برای کاهش هزینه خیلی ها میآن از دیود استفاده میکنند به خیلی هم منطقی نیست
۲. توی جریان کشی اون افت بهتر مشخص میشه و در حالت بی باری که اصلا معلوم نمیشه تو جریان های بالاتر از یه حدی ۱ ولت افت خواهیم داشت.
۳. اگر این دو مدل دیودی که گفتید باشه روی برق ورودی، در حالت جریان کشی ولتاژ به ۴ میرسه