ماژول FLC100 Pro Driver System
کاتالوگ رسمی محصول
ماژول FLC100 Pro Driver System، نه صرفاً یک برد واسط، بلکه یک پلتفرم سختافزاری کامل، هوشمند، یکپارچه و آمادهبهکار است که به طور تخصصی برای راهاندازی، پردازش، تحلیل و ثبت دادههای فوقحساس حسگرهای مغناطیسی فلوکسگیت FLC100 طراحی و بهینهسازی شده است.
این سیستم با یکپارچهسازی مبدل ۳۲ بیتی ADS1263، مرجع ولتاژ ۴.۵ ولتی MAX6194، حافظه فلش ۸ مگابیتی، بلوتوث HC-05، مگنتومتر ۳-محوره MMC5883MA و IMU IAM-20680HP، بالاترین استانداردها را در زمینه دقت نانوتسلا (nT)، پایداری حرارتی، ایمنی EMI/EMC و قابلیت توسعه ارائه میدهد.
مناسب برای هوافضا، مهندسی پزشکی، رباتیک، اتوماسیون صنعتی، ژئوفیزیک و باستانشناسی – این ماژول، راهحل نهایی برای اندازهگیری میدان مغناطیسی با کیفیت آزمایشگاهی است.
۱. معماری و قابلیتهای اصلی سیستم

۱.۱. ویژگیهای اصلی سیستم
| دستهبندی | ویژگی / قابلیت | مزیت کلیدی |
|---|---|---|
| دقت تبدیل | ADS1263 ۳۲ بیت $\Delta\Sigma$ | وضوح نانوتسلا + حذف نویز/رانش |
| چندکاناله | ۵ کانال ورودی مستقیم | آرایههای سنسوری + گرادیانسنجی |
| سیگنالکاندیشنینگ | فیلتر آنالوگ + ورودی دیفرانسیلی | حذف نویز فرکانس بالا و حالت مشترک |
| همگامسازی | خط SYNC اختصاصی | نمونهبرداری همزمان (فاز-حساس) |
| پایداری | MAX6194ESA ۴.۵ V (±۲ mV) | ضریب دمایی ≤ ۵ ppm/°C |
| کنترل نویز | طراحی EMI/EMC | عملکرد در محیطهای صنعتی |
۱.۲. جزئیات عملکرد ADS1263

| پارامتر | مقدار |
|---|---|
| رزولوشن | ۳۲ بیت |
| نرخ نمونهبرداری | ۲.۵ تا ۳۸۴۰۰ SPS |
| PGA | ضریب تا ۳۲، نویز بسیار پایین |
| ورودیها | دیفرانسیلی/تکپایانه، ADC کمکی ۲۴ بیت |
| IDAC | جریان تحریک برای تست داخلی |
| حسگر دما | جبران رانش حرارتی |
| ارتباط | SPI پرسرعت + ۸ GPIO |
۲. سختافزارهای مکمل و قابلیتهای جانبی

۲.۱. اکوسیستم کامل اندازهگیری
| دستهبندی | ویژگی / مدل | عملکرد و مزیت |
|---|---|---|
| مگنتومتر ۳-محوره | MMC5883MA | بازه ±۸ گوس تفکیک ۰.۲۵ میلیگوس نویز ۰.۴ mG RMS نرخ ۶۰۰ Hz SET/RESET داخلی |
| IMU | IAM-20680HP | ژیروسکوپ + شتابسنج نویز پایین، پایداری دمایی I2C/SPI، فیلتر دیجیتال |
| حافظه | W25Q80DVSSIG | ۸ مگابیت، ۱۰۴ MHz ۱۰۰,۰۰۰ چرخه نوشتن نگهداری ۱۰ سال |
| بلوتوث | HC-05 (کانکتور Plug-in) | Master/Slave، UART سرعت ۸۰ kbps، برد ≈۱۰ m |
| یکپارچهسازی | GEbaraBus | Plug-and-Play با STM32 SPI + I2C + GPIO |
| توسعه | کدهای نمونه | C/C++ آماده برای STM32 |
۲.۲. طراحی مکانیکی و اتصالات

- کانکتورهای FLC100: پینتوپین دقیق – نصب بدون لحیمکاری
- GEbaraBus: پینبندی استاندارد – اتصال مستقیم به برد اصلی
- ابعاد ماژول: فشرده، مناسب برای سیستمهای جاسازیشده
۳. راهاندازی و کاربردهای عملی

۳.۱. راهاندازی پیشنهادی
| مرحله | توصیه |
|---|---|
| تغذیه | ۵ V دقیق (ریپل < ۱۰ mV) |
| ADC | حداقل ۱۶ بیت + ورودی دیفرانسیلی |
| فیلتر | پایینگذر (Cutoff ≈ ۱۰۰ Hz) |
| زمین | مرجع تمیز، جدا از دیجیتال |
| خروجی | ±۱ V برای ±۵۰ µT |
۳.۲. درایو همزمان ۵ حسگر FLC100
| قابلیت | توضیح عملی |
|---|---|
| ۵ کانال مستقل | هر کانال به یک FLC100 اختصاصی وصل میشود (پینتوپین) |
| همگامسازی با خط SYNC | فرکانس تحریک ≈۱۷ kHz — همزمانی دقیق برای گرادیانسنجی |
| ورودی دیفرانسیلی | OUT+ / OUT− مستقیم به ADS1263 — حذف نویز حالت مشترک |
| نرخ نمونهبرداری همزمان | تا ۳۸۴۰۰ SPS برای هر ۵ کانال — ثبت لحظهای |
| مثال عملی | ساخت گرادیومتر خطی با baseline ۰.۵–۱ متر: $\frac{B_2 – B_1}{L}$ |
نتیجه: درایو همزمان ۵ FLC100 بدون افت دقت یا تداخل — ایدهآل برای آرایههای حسگری و نقشهبرداری.
۳.۳. گرادیومتر مغناطیسی
- Baseline: ۰.۵–۱ m
- محاسبه: $\frac{B_2 – B_1}{L}$
- جبران: استفاده از IMU برای tilt/rotation
۳.۴. حوزههای کاربرد
| حوزه | کاربرد کلیدی |
|---|---|
| هوافضا | تعیین جهت، ناوبری بدون GPS |
| رباتیک | SLAM، بازرسی MFL |
| پزشکی | بیومغناطیس قلب/مغز |
| ژئوفیزیک | نقشهبرداری ناهنجاریها |
کاربردهای IMU در مغناطیسسنج و گرادیومتر
| کاربرد | توضیح دقیق | مثال واقعی |
|---|---|---|
| ۱. جبران خطای حرکتی (Motion Compensation) | حسگرهای مغناطیسی (مثل FLC100) به حرکت و ارتعاش حساس هستند. IMU تغییرات شتاب و زاویه را اندازه میگیرد و خطا را حذف میکند. | UAV در حال پرواز — IMU لرزش بالها را جبران میکند تا میدان مغناطیسی دقیق بماند. |
| ۲. اصلاح زاویه (Tilt Compensation) | میدان زمین ثابت است، اما حسگر ممکن است کج باشد. IMU زاویه Pitch/Roll را محاسبه میکند و داده را به افق واقعی تبدیل میکند. | گرادیومتر دستی در زمین ناهموار — بدون IMU، خطای ۱۰–۲۰ nT ایجاد میشود. |
| ۳. محاسبه گرادیان واقعی (True Gradient) | در گرادیومتر، فاصله بین دو حسگر (Baseline) باید ثابت باشد. IMU تغییرات فاصله ناشی از چرخش یا جابجایی را جبران میکند. | Baseline ۱ متر — چرخش ۵ درجه → خطای ۸.۷ cm → IMU این خطا را حذف میکند. |
| ۴. ناوبری مغناطیسی (Magneto-Inertial Navigation) | ترکیب میدان مغناطیسی + شتاب + ژیروسکوپ → تعیین جهت و موقعیت بدون GPS. | تونلهای زیرزمینی، غارها، معادن — جایی که GPS قطع است. |
| ۵. فیلتر کالمن (Sensor Fusion) | دادههای IMU + مغناطیسسنج در فیلتر کالمن ترکیب میشوند تا نویز کاهش یابد و دقت جهتیابی افزایش یابد. | دقت جهتیابی: از ±۵ درجه → ±۰.۵ درجه |
چرا باید از FLC100 Pro Driver System استفاده کنیم؟
مزایای کلیدی و دلایل انتخاب این برد در یک نگاه (برای کاربران در ایران و جهان)
۱. دقت نانوتسلا بدون نیاز به طراحی پیچیده
| مزیت | توضیح |
|---|---|
| وضوح ۳۲ بیت + نویز < ۰.۵ nT | با ADS1263 و فیلترهای آنالوگ داخلی، نیازی به تقویتکننده خارجی، فیلتر یا ADC جداگانه نیست. |
| حذف کامل رانش حرارتی | مرجع ولتاژ MAX6194ESA (۴.۵ V، ۵ ppm/°C) + حسگر دمای داخلی → دقت پایدار در دمای -۴۰ تا +۸۵ درجه. |
| حساسیت بالا | خروجی FLC100 (±۱ V بهازای ۵۰ µT) مستقیماً به ورودی دیفرانسیل ADC متصل میشود → حداقل نویز حالت مشترک. |
نتیجه: یک سیستم آمادهبهکار با دقت آزمایشگاهی — ۷۰٪ کاهش زمان توسعه.
۲. پشتیبانی از ۵ حسگر همزمان (گرادیانسنجی حرفهای)
| قابلیت | کاربرد واقعی |
|---|---|
| ۵ کانال مستقل + خط SYNC | ساخت گرادیومتر مغناطیسی با baseline ۰.۵–۱ متر برای کشف ناهنجاریهای زیرزمینی. |
| همگامسازی دقیق (≈۱۷ kHz) | اندازهگیری فاز-حساس در آرایههای حسگری (Sensor Arrays). |
مزیت برای منطقه: ایدهآل برای باستانشناسی (آثار مدفون) و اکتشاف معدنی در مناطق کوهستانی.
۳. اکوسیستم کامل — یک برد، همه چیز
| جزء | مزیت |
|---|---|
| مگنتومتر ۳-محوره MMC5883MA | کالیبراسیون خودکار میدان زمین + حذف نویز محیطی |
| IMU IAM-20680HP | جبران خطای حرکتی در UAV، ربات و خودروهای خودران |
| حافظه فلش ۸ مگابیت | دیتالاگر بلندمدت (تا ۱۰ سال ماندگاری) |
| بلوتوث HC-05 | انتقال بیسیم به موبایل/لپتاپ — نظارت میدانی بدون کابل |
مثال عملی: یک ربات کاوشگر معدن در ایران میتواند دادههای مغناطیسی، شتاب و جهت را همزمان ثبت و ارسال کند.
۴. Plug-and-Play با STM32 + GEbaraBus

| مزیت | توضیح |
|---|---|
| اتصال مستقیم به بردهای STM32 جِبرابیت | بدون سیمکشی — فقط وصل کنید و کد بزنید. |
| کدهای نمونه C/C++ آماده | راهاندازی در کمتر از ۱ ساعت. |
| استاندارد GEbaraBus | قابل استفاده در تمام محصولات جِبرابیت — آیندهنگری. |
برای شرکتهای ایرانی: کاهش هزینههای مهندسی معکوس و توسعه سختافزاری.
۵. طراحی صنعتی و مقاوم (ساخت ایران)
| ویژگی | مزیت |
|---|---|
| EMI/EMC Compliant | عملکرد بینقص در کارخانجات، نیروگاهها و محیطهای پرنویز |
| دمای کاری -۴۰ تا +۸۵ °C | مناسب برای مناطق سردسیر و گرمسیری (جنوب) |
| گواهی CE + تولید داخلی | حمایت از صنعت ملی + گمرک سادهتر |
۶. هزینه واقعی در مقایسه با ارزش افزوده
| مقایسه | FLC100 Pro | راهحل DIY |
|---|---|---|
| هزینه توسعه | صفر (همه چیز یکپارچه) | ۳–۶ ماه + ۵,۰۰۰+ دلار |
| زمان عرضه به بازار | فوری | تأخیر طولانی |
| قابلیت اطمینان | تضمینشده | وابسته به مهارت تیم |
| پشتیبانی | محلی | نامشخص |
جمعبندی نهایی
FLC100 Pro Driver System: پل ارتباطی شما بین سیگنالهای نانوتسلا و دادههای دیجیتال قابل اعتماد.
سرمایهگذاری در دقت، پایداری و کارایی.
این ماژول با حذف کامل نیاز به تقویتکننده خارجی، فیلتر، مرجع ولتاژ و ADC جداگانه، یک راهحل یکپارچه و حرفهای ارائه میدهد و کاربران را قادر میسازد تا تمرکز خود را بر تحلیل داده و کاربرد نهایی قرار دهند.
User manual
بررسی اجمالی
ماژول درایور FLC100 جبرابیت
ماژول طراحیشده برای سنسورهای FLC100 یک بستر کامل، پایدار و منطبق با اصول حرفهای سختافزار است. در این ماژول تمامی نکات طراحی PCB شامل ملاحظات EMI و EMC رعایت شده و امکان اتصال همزمان پنج ورودی مستقل برای سنسورهای FLC100 فراهم شده است. کانکتورهای ورودی به صورت پینتوپین مطابق کانکتور اصلی FLC100 طراحی شدهاند و چهار کانال از این ورودیها به صورت مستقیم قابلیت اتصال به سنسور را دارند. در صورتی که از مرجع ولتاژ خارجی استفاده نشود، هر پنج کانال به طور کامل قابل بهرهبرداریاند. ماژول دارای یک مرجع ولتاژ دقیق 4.5 ولتی است که پایداری اندازهگیری را به شکل محسوسی افزایش میدهد.
در مسیر خروجی سنسورهای FLC100 تا ورودی مبدل آنالوگبهدیجیتال، مدارهای کامل سیگنالکاندیشنینگ و فیلترگذاری در نظر گرفته شده تا دادهها پیش از نمونهبرداری، کیفیت و یکپارچگی لازم را داشته باشند. قلب پردازش آنالوگ این ماژول، مبدل قدرتمند ADS1263 است که به دلیل دقت و سرعت بالا، امکان خواندن دادههای حساس FLC100 را بدون افت کیفیت فراهم میکند. در کنار این ساختار، مجموعهای از سنسورهای مکمل شامل ژیروسکوپ، شتابسنج و مگنتومتر نیز روی ماژول قرار گرفته که هر یک از طریق پینهای خروجی اختصاصی قابل دسترس هستند. حافظه فلش نیز برای ذخیرهسازی دادهها یا پارامترها در طراحی گنجانده شده است.
در بخش ارتباطات، یک کانکتور در پایین ماژول تعبیه شده که امکان نصب مستقیم ماژول بلوتوث HC-05 را فراهم میکند و از این طریق دادهها میتوانند بیسیم به رایانه یا تلفن همراه ارسال شوند. تمامی پینهای لازم برای راهاندازی ADC و همچنین پینهای سنسورهای نصبشده روی برد، به صورت استاندارد و منطبق با قالب GEbaraBus از برد خارج شدهاند تا ماژول بتواند بدون هیچ تغییر اضافه، روی ماژول میکروکنترلر STM32 جبرابیت نصب شود. با این ترکیب، کاربر قادر است تمام سنسورها و ADC را به شکل کامل راهاندازی کند و مقادیر هر کانال FLC100 را به صورت مستقیم بخواند. علاوه بر این، کدهای نمونه برای راهاندازی و خواندن دادهها از تکتک کانالها نیز آماده شده تا فرآیند توسعه نرمافزار سریع و بدون ابهام انجام شود.
مبدل آنالوگبهدیجیتال ADS1263
ADS1263 یک مبدل آنالوگبهدیجیتال ۳۲ بیتی دلتا–سیگما با معماری نویز بسیار پایین و دریفت کم است که برای اندازهگیریهای فوقحساس طراحی شده. هسته اصلی آن ADC1 است که نرخ نمونهبرداری گستردهای از 2.5 SPS تا 38400 SPS ارائه میدهد و امکان انتخاب بین رزولوشن بسیار بالا یا سرعت بیشتر را فراهم میکند. این تراشه برای سنسورهایی مثل لودسل، پلهای مقاومتی و سنسورهای دمایی کمسطح طراحی شده و به دلیل نویز کم و پایداری بالا، در پروژههای اندازهگیری دقیق عملکرد ممتاز نشان میدهد.
مزیت مهم دیگر ADS1263 وجود ADC2 است؛ یک مبدل ۲۴ بیتی کمکی که امکان پردازش همزمان دو مسیر اندازهگیری یا ثبت دادههای ثانویه را فراهم میکند. تعداد ۱۱ ورودی آنالوگ قابل پیکربندی این تراشه اجازه میدهد سیستم بهصورت تکپایانه، دیفرانسیلی یا ترکیبی بسته به نیاز طراحی شود. وجود امکانات یکپارچه مثل مرجع ولتاژ با دریفت کم، جریانهای تحریک IDAC، PGA کمنویز تا ضریب تقویت 32، حسگر دما، مولد سیگنال تست داخلی TDAC، و هشت GPIO بخش بزرگی از مدارات جانبی را حذف کرده و طراحی را سادهتر میکند.در کنار این ویژگیها، ADS1263 در حوزه نویز نیز عملکرد ممتاز دارد. نویز بسیار پایین ADC1 و امکان دستیابی به تعداد بیت مؤثر (ENOB) بالا، آن را برای اندازهگیریهای سطح نانوولت مناسب کرده است. PGA با نویز پایین و قابلیت تشخیص خطای سیگنال، امکان اتصال مستقیم بسیاری از حسگرهای کمسطح را فراهم میکند بدون اینکه نیاز به تقویتکننده خارجی باشد. همچنین سه ورودی مرجع مستقل با مانیتور افت ولتاژ، سیستم را در برابر خطاهای مرجع ایمنتر میکند و پایداری اندازهگیری را افزایش میدهد.
در یک برد درایور یا پروژه مبتنی بر FLC100، مبدل ADS1263 عملاً قلب اندازهگیری دقیق است؛ چون خروجی دیفرانسیلی و کمسطح FLC100 را با رزولوشن 32 بیتی و نویز فوقالعاده پایین به داده دیجیتال قابلاعتماد تبدیل میکند. وجود PGA کمنویز باعث میشود بتوان ولتاژهای بسیار کوچک سنسور را بدون نیاز به تقویتکننده خارجی دریافت کرد و سهولت طراحی بالاتر برود.
این ADC با نرخ نمونهبرداری قابل تنظیم و فیلترهای داخلیاش کمک میکند پروژههایی مثل اسکن میدان مغناطیسی، دیتالاگرهای دقیق یا سیستمهای آزمایشگاهی خروجی بسیار تمیز و پایدار داشته باشند. ارتباط SPI هم اجازه میدهد میکروکنترلر دادهها را سریع و بدون تاخیر از ADC دریافت کند و همراه دادههای دیگر سنسورها تحلیل کند
ای سی ولتاژ مرجع MAX6194ESA
MAX6194ESA یک رفرنس ولتاژ بسیار دقیق و کممصرف است که خروجی ۴.۵۰۰ ولت را با دقت اولیه تا ±2 mV و ضریب دمایی حداکثر 5 ppm/°C فراهم میکند. این سطح از پایداری به لطف مدار اصلاح انحنا و مقاومتهای نازک لیزریتریمشده بهدست آمده و باعث میشود ولتاژ مرجع حتی با تغییر دما یا گذشت زمان، کمترین تغییر را تجربه کند. مصرف ۳۵ میکروآمپر نیز این رفرنس را برای ابزارهای پرتابل و باتریمحور ایدهآل میکند.
یکی از نقاط قوت MAX6194ESA عملکرد خوب آن در شرایط بار و تغذیه است. این رفرنس میتواند تا ۵۰۰ میکروآمپر جریان را سورس یا سینک کند، در حالی که افت ولتاژ آن تنها ۱۰۰ تا ۲۰۰ میلیولت باقی میماند. تنظیمپذیری خط ۲۵ تا ۱۶۰ میکروولت بر ولت و تنظیم بار ۰.16 تا 0.80 میکروولت بر میکروآمپر نشان میدهد که خروجی در برابر تغییرات ورودی یا بار بسیار مقاوم است. همچنین پایداری در برابر نویز، با مقدار ۸ µV RMS یا ۱۱۰ µVpp در بازه 0.1 تا 10 Hz، باعث میشود این قطعه برای سیستمهای اندازهگیری دقیق کاملاً مناسب باشد.
در کنار این موارد، MAX6194ESA بهصورت داخلی جبرانسازی شده و بدون نیاز به خازن خروجی هم پایدار است، هرچند تا ۲.۲ نانوفاراد خازن خروجی را نیز بدون ناپایداری پشتیبانی میکند. زمان پاسخدهی ۱۶۰ تا ۱۸۰ میکروثانیه و ریپلریجکشن ۷۶ dB این تراشه را برای کاربردهایی مثل ADCهای دقتبالا، کنترل صنعتی و سیستمهای مرجع پایدار بسیار مناسب میکند.
ای سی حافظه W25Q80DVSSIG
W25Q80DVSSIG یک حافظه Flash سریال 8 مگابیتی از خانواده Winbond است که بر پایه معماری SPI با سرعت بالا طراحی شده. این تراشه فرکانس کلاک را تا 104 MHz پشتیبانی میکند و در حالت خواندن سریع، امکان دستیابی به سرعت انتقال بالا را بدون پیچیدگی اضافی فراهم میسازد. طراحی آن مبتنی بر صفحات 256 بایتی، سکتورهای 4 کیلوبایتی و بلوکهای 32 و 64 کیلوبایتی است که هم انعطافپذیری در پاکسازی و هم سرعت بالا در عملیات نوشتن را به همراه دارد.
یکی از نقاط قوت چشمگیر این حافظه، قابلیتهای امنیتی و حفاظتی است. پشتیبانی از قابلیت Block Protect و یک رجیستر وضعیت دوم (Status Register-2) اجازه میدهد بخشهایی از حافظه در برابر نوشتن یا پاک شدن ناخواسته محافظت شوند. وجود دو پین /WP و /HOLD نیز کنترل دقیقتر روی عملیات و جلوگیری از وقفههای ناخواسته در تبادل داده را ممکن میکند. این تراشه از منبع تغذیه 2.7 تا 3.6 ولت کار میکند و با جریانهای بسیار کم در حالت خواندن و حالت Deep-Power-Down، بهویژه برای سیستمهای کممصرف مناسب است.
در کنار این مشخصات، W25Q80DVSSIG چرخههای نوشتن و پاکسازی با دوام ۱۰۰٬۰۰۰ چرخه را تضمین میکند و با ۱۰ سال نگهداری داده در دمای اتاق، برای کاربردهای صنعتی، صوتی، دادهنگارها، سیستمهای قابلحمل و انواع پروژههای مبتنی بر میکروکنترلر کاملاً قابل اعتماد است. ترکیب سرعت بالا، دوام مناسب، گزینههای امنیتی و مصرف توان پایین، این حافظه را به انتخابی متعادل و قدرتمند برای طراحیهای مدرن تبدیل میکند.
در یک برد درایور یا پروژهای که با FLC100 کار میکند، حافظه W25Q80DVSSIG میتواند نقش «دفتر ثبت دائم» را بازی کند؛ جایی که دادههای خام میدان مغناطیسی، ضرایب کالیبراسیون، پروفایلهای اندازهگیری یا حتی تنظیمات کاربری ذخیره میشوند. سرعت بالای رابط SPI به ما اجازه میدهد حجم زیادی از نمونههای سنسور را بدون ایجاد گلوگاه ذخیره کنیم و بعداً برای تحلیل، فیلترگذاری یا ارسال به رایانه بازیابیشان کنیم.
در پروژههای دقیق مثل ثبت بلندمدت تغییرات میدان مغناطیسی یا ساخت دیتالاگر، این حافظه به خاطر ۱۰ سال پایداری داده و ۱۰۰هزار چرخه نوشتن یک گزینه مطمئن است و امکان ذخیرهسازی دورهای دادهها بدون نگرانی از خرابشدن سلولها را فراهم میکند. همچنین میتوان از آن برای نگهداری فریمور کمکی، lookup tableهای پردازشی یا پارامترهای فیلتر ADC استفاده کرد تا ماژول FLC100 پس از هر بار ریست، سریع و دقیق آمادهٔ کار شود.
سنسور MMC5883MA
سنسور MMC5883MA یک مغناطیسسنج سهمحوره دقیق است که در دل خودش هم سنسور AMR دارد، هم مدار پردازش سیگنال و هم رابط I2C. میدان مغناطیسی را تا ±8 گوس میسنجد و با تفکیک 0.25 میلیگوس و نویز 0.4 میلیگوس RMS به دقتی میرسد که برای قطبنماها میتواند خطای نزدیک ±1 درجه بدهد. این ترکیب شبیه این است که یک قطبنمای کوچک اما خیلی دقیق را در ابعاد 3×3×1 میلیمتر در مدار بگذاری.
یک ویژگی چشمگیرش وجود SET/RESET داخلی است که با یک پالس قوی، سنسور را از اثر دما و باقیمانده مغناطیسی پاکسازی میکند. همین باعث میشود در محیطهای سخت، خروجیاش کمتر خراب شود. خروجی دیجیتال 16 بیتی، نرخ نمونهبرداری تا 600 هرتز، توان مصرفی بسیار پایین و قابلیت تشخیص حرکت هم در جیبش دارد. همه اینها، MMC5883MA را تبدیل به یک حسگر کوچک ولی پرتوان میکند که دوست دارد مثل یک رادار آرام، ضربان میدان مغناطیسی دنیا را ضبط کند.
در یک برد درایور یا پروژهای که با FLC100 کار میکند، سنسور MMC5883MA میتواند نقش «چشم کمکی سهبعدی» را داشته باشد؛ یعنی اطلاعاتی را ثبت کند که FLC100 به دلیل تکمحورهبودن نمیبیند. این حسگر سهمحوره میتواند برای کالیبراسیون جهتگیری سنسورهای FLC100، پایش تغییرات پسزمینه میدان، یا تشخیص نویزهای محیطی که روی اندازهگیری دقیق اثر میگذارند بهکار رود.
در پروژههایی مثل نقشهبرداری مغناطیسی، ثبت ژئومغناطیس یا سیستمهای تشخیص جریان، MMC5883MA کمک میکند دادههای FLC100 معنا و جهتگیری دقیقتری پیدا کنند. خروجی دیجیتال I2C و نویز پایینش باعث میشود بدون نیاز به مدار آنالوگ اضافه، بتوان آن را کنار FLC100 روی یک برد نصب کرد و ترکیب دادههای دو سنسور را برای تحلیل عمیقتر میدان استفاده کرد.
سنسور IAM-20680HP
IAM-20680HP یک سنسور IMU پیشرفته است که ژیروسکوپ و شتابسنج سهمحوره را در یک بسته کوچک و کممصرف ترکیب میکند. این سنسور با تکیه بر فناوریهای MEMS دقیق، پایداری دمایی بالا، خطای بایاس کم و عملکرد قابل اعتماد در شرایط محیطی سخت را فراهم میسازد. ژیروسکوپ و شتابسنج داخلی آن با نویز پایین و دقت اندازهگیری قابل توجه، برای کاربردهایی مانند روباتیک، پهپاد، پایش حرکت و سیستمهای ناوبری ایدهآل هستند.
یکی از برتریهای مهم این سنسور، مصرف توان بسیار پایین در کنار پایداری حرارتی مناسب است. IAM-20680HP با پشتیبانی از رابط I²C و SPI بهراحتی در بیشتر پلتفرمهای میکروکنترلر ادغام میشود و حالتهای کاری کممصرفش اجازه میدهد در دستگاههای باتریمحور نیز بدون نگرانی استفاده شود. وجود فیلتر دیجیتال، معماری ضد نویز و واحد پردازشی داخلی باعث میشود دادههای خروجی کیفیت بالاتری داشته باشند و نیاز به پردازش اضافی در سطح سیستم کاهش یابد.
در کنار این موارد، دوام مکانیکی بالا، پایداری عملکرد در برابر شوک و لرزش، و عملکرد ثابت در بازه وسیع دمایی، IAM-20680HP را به یک IMU توانمند برای پروژههایی تبدیل میکند که نیازمند دقت، اطمینان و مدیریت توان مناسب هستند.
در یک برد درایور یا پروژه مبتنی بر FLC100، سنسور IAM-20680HP میتواند نقش «حسگر حرکتی و وضعیت» را بازی کند؛ یعنی چیزی که خود FLC100 نمیسنجد اما برای تفسیر دقیق میدان مغناطیسی لازم است. این IMU سهمحوره میتواند جهتگیری، لرزش، تکانهای ریز و تغییر زاویه را ثبت کند و اجازه بدهد دادههای FLC100 از اثر حرکت یا ارتعاش جدا شوند.
در کاربردهایی مثل اندازهگیری میدان در حال حرکت، اسکن مغناطیسی، نقشهبرداری یا ثبت تغییرات بسیار کوچک، وجود ژیروسکوپ و شتابسنج کمک میکند خطاهای ناشی از tilting یا drift مکانیکی اصلاح شوند. دادههای پایدار IAM-20680HP از طریق SPI یا I2C وارد میکروکنترلر میشوند و کنار خروجی FLC100 ترکیب میشوند تا سیستم بتواند تصویری دقیقتر، منظمتر و بدون نویز حرکتی از میدان بسازد.
ماژول بلوتوث HC-05
ماژول HC-05 یک ماژول بلوتوث کلاسیک با قابلیت Master/Slave است که برای ارتباط بیسیم ساده و پایدار میان میکروکنترلر و دستگاههایی مثل گوشی و لپتاپ استفاده میشود. این ماژول از رابط UART برای ارسال و دریافت داده بهره میبرد و همین سادگی باعث شده در پروژههای آموزشی، صنعتی سبک و دستگاههای قابلحمل بسیار محبوب باشد. سرعت ارتباط آن تا ۸۰ kbps میرسد و با فرمانهای AT میتوان پارامترهایی مثل baud rate، نام دستگاه و نقش ارتباطی را پیکربندی کرد.
برتری چشمگیر HC-05 این است که بدون نیاز به پروتکلهای پیچیده، میتواند در فاصلهای حدود ۱۰ متر یک کانال ارتباطی پایدار ایجاد کند و حتی در حالت Master خودش دستگاههای بلوتوث را پیدا و به آنها متصل شود. مصرف توان پایین، برد مناسب، پایداری ارتباط و سازگاری با اکثر میکروکنترلرها (از آردوینو تا STM32) باعث شده که این ماژول تبدیل به یک «پل بیسیم همهفنحریف» شود. دادهها بهصورت مستقیم از پورت سریال وارد ماژول میشوند و آنطرف خط، روی گوشی یا کامپیوتر به شکل دادهٔ دریافتشده بلوتوثی ظاهر میشوند.
با HC-05 میتوان کارهای زیادی انجام داد: ساخت دیتالاگر بیسیم، کنترل ربات از طریق گوشی، تبادل داده سنسورها، ارسال پیامهای سریال از یک برد به کامپیوتر بدون کابل، یا حتی ایجاد یک شبکه کوچک برای چند ماژول. سادگی استفاده، ارزانبودن و انعطاف بالا باعث میشود HC-05 مثل یک «تونل نامرئی» بین سیستم شما و دنیای بیرون عمل کند.
در یک برد درایور یا پروژه FLC100، ماژول HC-05 میتواند نقش «پل بیسیم» را بازی کند و دادههای دقیق میدان مغناطیسی را بدون نیاز به کابل، به گوشی یا لپتاپ بفرستد. کافی است میکروکنترلر خروجی ADC یا سنسور را از طریق UART به HC-05 بدهد تا ماژول آن را بهصورت بلوتوثی ارسال کند. این کار امکان ساخت دیتالاگر قابلحمل، مانیتورینگ زنده و کالیبراسیون بیسیم سیستم FLC100 را تنها با یک اتصال ساده فراهم میکند.
کانکتور های ورودی FLC100
این بخش از ماژول که در تصویر دیده میشود، محل ورودیهای سنسورهای FLC100 است؛ کانکتورهایی که دقیقاً همپین و هماستاندارد با خود سنسور طراحی شدهاند تا کاربر بدون هیچ سیمکشی اضافی بتواند سنسور را بهصورت مستقیم وصل کند. کافی است کابل فکتوری یا کابل استاندارد سنسور را در این کانکتورها قرار دهید تا تغذیه، سیگنال خروجی دیفرانسیل و خط SYNC همگی به شکل صحیح و خودکار متصل شوند.
طراحی مکانیکی این بخش طوری انجام شده که اتصال سنسور کاملاً پایدار باشد؛ یعنی حتی در پروژههایی که لرزش یا حرکت دارند، کانکتور قفل میشود و احتمال قطعشدن اتصال بسیار کم است. فاصلهگذاری و ترتیب پینها نیز مطابق دیتاشیت FLC100 رعایت شده تا هیچ خطایی در اتصال رخ ندهد و کاربر بتواند چند سنسور را همزمان و بدون احتیاج به لحیمکاری یا تبدیل اضافی روی ماژول نصب کند.بهطور خلاصه، این ورودیها رابطی ساده، سریع و بیدردسر برای راهاندازی FLC100 هستند؛ فقط سنسور را وارد کنید و ماژول بقیه مسیر را مدیریت میکند.
توجه برای اتصال سنسور FLC100 با کابل نزدیک به 1 متر یا بیشتر حتما باید از زوج سیم به هم تابیده استفاده کرد.
پین های خروجی ماژول درایور FLC100
همانطور که در ادامه میبینید تمامی پینهای مورد نیاز و قابل استفاده و کاربردی از هر یک از سنسورها و آیسیهای روی برد به صورت شکلهای زیر از ماژول بیرون کشیده شده است :
![]() |
![]() |
شما میتوانید با مراجعه به فایلهای شماتیک پیوست و بررسی دیتاشیت هر یک از سنسورها و ای سی ها عملکرد هر یک از پینهای مربوطه را پیدا و بررسی کرده و در پروژه خود مورد استفاده قرار دهید .
همانطور که قبلاً ذکر شد تمامی پینهای این ماژول مطابق با پینهای ماژول میکروکنترلر جبرابیت بوده و تمام پینهای مورد استفاده در پروتکلهای ارتباطی اس پی آی و آی دو سی منطبق با ماژول میکروکنترلر میباشد و کاربر بدون هیچ دردسری میتواند با اتصال این ماژول بر روی ماژول میکروکنترلر شروع به توسعه و برنامه نویسی و دریافت دیتا کند.
| دستهبندی | مزیت / ویژگی | توضیح خلاصه |
| ورودی سنسور FLC100 | کانکتورهای پینتوپین استاندارد | اتصال مستقیم و بدون سیمکشی اضافی برای تا 5 عدد FLC100 |
| پشتیبانی از اتصال مستقیم 4 کانال و 5 کانال با مرجع داخلی | انعطاف کامل در استفاده همزمان چند سنسور | |
| رعایت کامل EMI/EMC | کاهش نویز و پایدار ماندن سیگنالهای سنسور | |
| پردازش سیگنال | وجود سیگنالکاندیشنینگ و فیلتر آنالوگ | افزایش کیفیت سیگنال قبل از ورود به ADC |
| خط SYNC برای همزمانسازی | هماهنگسازی چند سنسور FLC100 در اندازهگیری دقیق | |
| مبدل آنالوگ به دیجیتال ADS1263 | رزولوشن 32 بیت و نویز بسیار پایین | بهترین کیفیت ممکن برای اندازهگیری خروجی FLC100 |
| PGA داخلی کمنویز | حذف نیاز به تقویتکننده خارجی | |
| SPI پرسرعت | دریافت سریع دادههای تبدیلشده | |
| حافظه W25Q80DV | ذخیرهسازی دادههای سنسور و کالیبراسیون | مناسب برای دیتالاگر و ثبت بلندمدت |
| نگهداری 10 ساله دیتا | مناسب پروژههای صنعتی و تحقیقاتی | |
| سرعت بالای SPI | ذخیرهسازی سریع بدون ایجاد گلوگاه | |
| سنسور سهمحوره MMC5883MA | افزودن داده میدان 3محوره | مکمل تکمحوری بودن FLC100 |
| کمک به کالیبراسیون و حذف نویز محیطی | بهبود تحلیل میدان مغناطیسی | |
| IMU IAM-20680HP | ثبت لرزش، حرکت و زاویه | اصلاح خطاهای حرکتی روی داده FLC100 |
| پایداری دمایی بالا و نویز کم | بهبود دقت در محیطهای لرزشی | |
| ارتباط بیسیم HC-05 | ارسال بلوتوثی دادههای سنسور | مانیتورینگ زنده بدون کابل |
| پشتیبانی از AT Command | تنظیم آسان سرعت، نام و نقش ارتباطی | |
| مرجع ولتاژ دقیق | مرجع 4.5 ولت فوقپایدار | تضمین دقت در خروجی FLC100 و ADC |
| دریفت حرارتی بسیار پایین | پایدار ماندن ولتاژ در بلندمدت | |
| ساختار کلی ماژول | برد با رعایت EMI/EMC | پایداری عالی سیگنالها |
| سازگار با GebaraBus و STM32 | نصب ساده روی بردهای مادر استاندارد | |
| وجود حافظه فلش، IMU و مغناطیسسنج | تبدیل برد به یک سیستم اندازهگیری کامل | |
| بیرونکشی تمام پینهای مهم | دسترسی کامل توسعهدهنده به همه امکانات | |
| امکان گسترش و افزودن ماژولها | قابل اتصال به ماژولهای دیگر بدون تغییر سختافزار | |
| کاربردهای سیستم | دیتالاگر دقیق میدان | ثبت لحظهبهلحظه میدان مغناطیسی |
| سیستمهای اسکن میدان | مناسب آزمایشگاهها و مراکز تحقیقاتی | |
| اندازهگیری جریان، فلز، تغییرات محیطی | مناسب توسعه ابزار صنعتی | |
| کالیبراسیون و مانیتورینگ زنده | مناسب تنظیمات میدانی و پرتابل |
چرا ماژول درایور FLC100 ؟
- دقت میدان در حد آزمایشگاهی
- نصب سنسور بدون سیمکشی
- تبدیل خروجی FLC100 به دیتا با رزولوشن 32 بیت
- ماژول آماده برای دیتالاگر، اسکن میدان و ابزار تحقیقاتی
کاربردهای ماژول درایور FLC100
- سیستم اندازهگیری دقیق
- اسکنر میدان مغناطیسی
- دیتالاگر میدان با ارتباط بلوتوث
- تستر مواد فرومغناطیس
- اندازهگیری تداخل میدان در خطوط قدرت
مزایای ماژول درایور FLC100
- ورودی پینتوپین FLC100
- مرجع 4.5 ولت دقیق
- ADC 32 بیتی واقعی
- IMU + مغناطیسسنج سهمحوره
- حافظه فلش داخلی
- قابلیت اتصال HC-05
- سازگاری با GebaraBus
طراحی گرادیومتر مغناطیسی
با همین طراحی میتوانید از «ماژول درایور FLC100» یک گرادیومتر مغناطیسی بسازید. ایدهاش این است که حداقل دو سنسور FLC100 را با فاصلهی مکانیکی معلوم (baseline) روی یک سازه سفت نصب کنید، سیگنال هر دو را همزمان بگیرید، و اختلافشان را بر baseline تقسیم کنید تا گرادیان میدان (nT/m یا µT/m) به دست بیاید.
طرح کلّی و اتصالها:
دو FLC100 را به دو ورودی مجزا وصل کنید و آنها را بهصورت دیفرانسیل به ADS1263 بدهید تا نویز مشترک و ریپل مرجع بهتر حذف شود. برای نمونه: CH1 = سنسور۱ و CH2 = سنسور۲.
مرجع ولتاژ: از مرجع دقیق 4.5 V روی برد بهعنوان Vref خارجی ADC استفاده کنید (یا از مرجع داخلی/گزینشپذیر ADC مطابق پیکربندی REFMUX)، تا تبدیل پایدار باشد.
همزمانسازی نمونهبرداری: تبدیلهای دو کانال را در یک نرخ و فاز شروع کنید (START/STOP یا فرمانهای START1/STOP1) تا همزمانی واقعی داشته باشید و تفریق معنیدار شود.
خودآزمایی/کالیبراسیون: از TDAC داخلی ADS1263 بهعنوان تحریک تست کوچک استفاده کنید تا مسیر سیگنال هر کانال را صحتسنجی و بهره/offset را تخمین بزنید.
IMU (IAM-20680HP) را برای ثبت جهتیابی/شتاب و حذف اثرات حرکتی (tilt/rotation) و برچسبگذاری وضعیت استفاده کنید؛ این IMU سهمحور ژیرو+شتابسنج، فیلتر دیجیتال و FIFO دارد که برای همگامسازی دادهها مفید است.
پردازش و محاسبات:
فیلتر پایینگذر آنالوگ/دیجیتال را طوری تنظیم کنید که پهنایباند هدف گرادیومتر (مثلاً چند Hz تا دهها Hz) را پوشش دهد و نویز بالا را حذف کند.
گرادیان را اینگونه بسازید:
که B1,B2خروجی دو سنسور و L فاصلهی دقیق بین دو سنسور است.
3) رزولوشن گرادیان عمدتاً از نویز حسگرها میآید:
هرچه baseline بزرگتر و نویز هر سنسور و ADC کمتر، رزولوشن گرادیان بهتر.
با دادههای IMU میتوانید حرکات/کجشدن سازه را مدلسازی و اثرشان را کم کنید؛ همچنین MMC5883MA (اگر نصب است) برای اعلام جهت (heading) و تفکیک تغییرات ناشی از چرخش کمک میکند.
گامهای عملی پیشنهادی:
مکانیک: دو FLC100 را روی ریل سخت، با فاصلهی دقیق (مثلاً 0.5–1 m برای حساسیت بهتر) و همترازی دقیق محور اندازهگیری نصب کنید. فاصله را با کولیس/لیزر مستند کنید.
کالیبراسیون ساکن: در محیط نسبتاً آرام مغناطیسی، offset هر کانال را اندازه بگیرید و صفر کنید؛ سپس با TDAC یا جابهجایی کنترلشده، بهرهی مسیرها را یکسانسازی کنید.
پیکربندی ADC: نرخ نمونهبرداری یکنواخت، مود پیوسته، ورودیهای دیفرانسیل، مرجع پایدار؛ همزمانی با START/STOP برای کانالها.
مرجع/زمین پاک: سیمکشی دیفرانسیل کوتاه، زمین ستارهای، دوری از لوپهای بزرگ و جداسازی تغذیهی مرجع از بارهای دیجیتال؛ در صورت نیاز محافظ (shield) برای کابلهای سنسور.
ارسال/لاگ داده: با HC-05 دادههای B1، B2، IMU و را استریم کنید؛ نمونهها را time-stamp کنید تا بعداً بتوانید فیلتر/میانگینگیری و آنالیز طیفی انجام دهید.
انتظار عملکرد:
در حالت ایدهآل، میدانهای مشترک (مثلاً میدان زمین یا تداخل دوردست) بین دو سنسور تقریباً حذف میشود و تغییرات محلی/نزدیک برجسته میگردد؛ این همان ذات گرادیومتر است.
رزولوشن نهایی به سه عامل بستگی دارد: نویز FLC100، نویز/دقت ADS1263 و baseline. با فیلتر مناسب و baseline کافی، میتوانید تغییرات بسیار ریز گرادیان را آشکار کنید (مقیاس nT/m).
استفاده از IMU باعث پایداری اندازهگیری در حرکت میشود (compensation tilt/rotation)، و حافظهی فلش/بلوتوث امکان دیتالاگر بیسیم و تحلیل آفلاین را میدهد.
مشخصات فنی ماژول درایور GebraBit FLC100 Pro
بخش سنسور FLC100
تعداد کانالها:
- تا ۵ ورودی استاندارد برای FLC100
- حداقل ۴ کانال مستقیم برای اتصال سنسور بدون محدودیت
نوع اتصال:
- کانکتورهای ورودی پینتوپین مطابق با کانکتور اصلی FLC100
- پشتیبانی از تغذیه سنسور، خروجی دیفرانسیل، و خط SYNC بر روی همان کانکتور
شرایط سیگنال:
- مسیر کامل سیگنالکاندیشنینگ و فیلتر آنالوگ بین خروجی FLC100 و ورودی ADC
- در نظر گرفتن اصول مسیر دیفرانسیل، زمینگذاری مناسب، و فیلتر پایینگذر برای بهبود SNR
مبدل آنالوگ به دیجیتال ADS1263
نوع مبدل: Delta-Sigma بسیار دقیق
رزولوشن:
- ADC1: رزولوشن 32 بیت (هسته اصلی اندازهگیری دقیق)
- ADC2: رزولوشن 24 بیت کمکی
نرخ نمونهبرداری (ADC1):
- قابل تنظیم از حدود 5 SPS تا 38400 SPS (امکان انتخاب بین دقت بسیار بالا یا سرعت بیشتر)
ورودیهای آنالوگ:
- ۱۱ ورودی آنالوگ قابل پیکربندی (تکپایانه، دیفرانسیل یا ترکیبی)
امکانات مجتمع:
- PGA کمنویز داخلی با ضریب تقویت تا ×32 → حذف نیاز به تقویتکننده خارجی برای سیگنالهای کمسطح FLC100
- مرجع داخلی با دریفت کم
- جریانهای تحریک IDAC برای سنسورهای مقاومتی/پلها
- TDAC و مولد سیگنال تست داخلی برای خودآزمایی و کالیبراسیون مسیر سیگنال
- حسگر دمای داخلی
- ۸ عدد GPIO قابل استفاده در طراحی
- تا ۳ ورودی مرجع مستقل با مانیتور افت ولتاژ برای افزایش پایداری مرجع
ویژگی نویز و دقت:
- نویز بسیار پایین در ADC1
- امکان دستیابی به ENOB بالا در سطح نانوولت (با فیلتر و نرخ مناسب)
رابط ارتباطی:
- SPI پرسرعت برای تبادل داده با میکروکنترلر (مثلاً ماژول STM32 جبرابیت)
کارکرد در این ماژول:
- قلب اندازهگیری FLC100 با دقت آزمایشگاهی
- تبدیل ولتاژ دیفرانسیل بسیار کوچک FLC100 به داده دیجیتال 32 بیتی پایدار
مرجع ولتاژ دقیق MAX6194ESA
نوع: رفرنس ولتاژ دقیق و کممصرف
ولتاژ خروجی:
- 4.500 V (فیکس)
دقت اولیه:
- تقریباً تا حدود ±2 mV
ضریب دمایی (Tempco):
- حداکثر در حدود 5 ppm/°C
مصرف جریان:
- حدود 35 µA (مناسب سیستمهای پرتابل و باتریمحور)
توانایی باردهی:
- سورس/سینک تا 500 µA با افت ولتاژ 100–200 mV
تنظیم خط و بار:
- Line Regulation: در حد دهها تا صدها µV/V
- Load Regulation: در حد زیر 1 µV/µA
نویز:
- در حدود 8 µV RMS یا 110 µVpp در باند 0.1–10 Hz
پایداری:
- جبرانسازی داخلی، بدون نیاز به خازن خروجی برای پایداری
- پشتیبانی از خازن خروجی تا حدود 2.2 nF
کارکرد در ماژول:
- تأمین مرجع بسیار پایدار برای ADS1263 و در نهایت برای تبدیل دقیق خروجی FLC100
- کاهش درفت بلندمدت و دمایی در اندازهگیری میدان مغناطیسی دقیق
حافظه فلش سریال W25Q80DVSSIG
نوع حافظه:
- Serial Flash با رابط SPI
ظرفیت:
- 8 Mbit (۱ مگابایت)
ساختار حافظه:
- صفحه (Page): 256 بایت
- سکتور: 4 KB
- بلوک: 32 KB و 64 KB
رابط و سرعت:
- تغذیه: 2.7 تا 3.6 ولت
- فرکانس کلاک SPI تا 104 MHz
- حالت Fast Read برای سرعت خواندن بالا
ویژگیهای امنیتی:
- Block Protect برای محافظت از بخشهایی از حافظه در برابر نوشتن/پاککردن
- دو رجیستر وضعیت (Status Register-1/2) برای تنظیمات حفاظتی
- پینهای /WP و /HOLD برای کنترل بیشتر عملیات
پایداری و عمر:
- ۱۰۰٬۰۰۰ چرخه نوشتن/پاکسازی
- ۱۰ سال نگهداری داده در دمای اتاق
کارکرد در ماژول:
- ذخیرهسازی دادههای خام FLC100، ضرایب کالیبراسیون، پروفایلهای اندازهگیری، تنظیمات کاربری و…
- امکان ساخت دیتالاگر میدان مغناطیسی با ثبت طولانیمدت
- نگهداری جداول (Lookup Table) و پارامترهای فیلتر برای ADC
مغناطیسسنج سهمحوره MMC5883MA
نوع سنسور: مغناطیسسنج سهمحوره (3-Axis AMR) با پردازش سیگنال مجتمع
رنج اندازهگیری میدان:
- تا حدود ±8 Gauss
تفکیکپذیری:
- حدود 0.25 mGauss
نویز:
- در حدود 0.4 mGauss RMS
خروجی:
- خروجی دیجیتال 16 بیتی از طریق I²C
نرخ نمونهبرداری:
- تا حدود 600 Hz
امکانات داخلی:
- مدار SET/RESET داخلی برای حذف اثر پسماند مغناطیسی و دما
- توان مصرفی پایین و حالتهای کممصرف
- قابلیت تشخیص حرکت (Motion Detection)
کارکرد در ماژول FLC100 Driver:
- تأمین داده میدان سهمحوره بهعنوان مکمل FLC100 تکمحوره
- کمک به کالیبراسیون جهتگیری، پایش میدان پسزمینه، و تشخیص نویز محیطی
- استفاده در پروژههای نقشهبرداری مغناطیسی و ژئومغناطیس به همراه FLC100
سنسور IMU سهمحوره IAM-20680HP
ساختار:
- ژیروسکوپ سهمحوره + شتابسنج سهمحوره در یک بسته
ویژگیها:
- نویز پایین در ژیروسکوپ و شتابسنج
- پایداری دمایی بالا و خطای بایاس کم
- مقاومت مکانیکی در برابر شوک و لرزش
- عملکرد پایدار در بازه دمایی وسیع
رابطها:
- پشتیبانی از I²C و SPI
پردازش داخلی:
- فیلتر دیجیتال داخلی
- معماری ضد نویز و واحد پردازش برای خروجی تمیزتر
- حالتهای کاری کممصرف برای سیستمهای باتریمحور
کارکرد در ماژول:
- ثبت حرکت، لرزش و زاویه سازهای که سنسورهای FLC100 روی آن نصب شدهاند
- امکان جدا کردن اثر حرکت و tilt از دادههای میدان مغناطیسی
- کاربرد حیاتی در اسکن مغناطیسی در حال حرکت، نقشهبرداری و گرادیومترهای پرتابل
ماژول بلوتوث HC-05
- نوع: ماژول بلوتوث کلاسیک، قابل تنظیم در نقش Master / Slave
- رابط با میکروکنترلر:
- UART (سریال)
- سرعت لینک:
- تا حدود 80 kbps
- فاصله کاری معمول:
- حدود 10 متر (Line-of-Sight)
- پیکربندی:
- از طریق فرمانهای AT (نام، baud rate، نقش، PIN و …)
- کارکرد در ماژول FLC100 Driver:
- ایجاد پل بیسیم بین ماژول و گوشی/لپتاپ
- مناسب برای ساخت دیتالاگر بیسیم، مانیتورینگ زنده، کالیبراسیون و تنظیمات میدانی بدون کابل
کانکتورهای ورودی FLC100
کانکتورهای ورودی دقیقاً مطابق دیتاشیت FLC100 از نظر ترتیب پین و استاندارد سیگنال طراحی شدهاند.
اتصال مستقیم سنسور FLC100 با کابل فکتوری یا کابل استاندارد، بدون نیاز به سیمکشی دستی یا مبدل اضافی.
اتصال خودکار:
- تغذیه سنسور
- خطوط دیفرانسیل خروجی سنسور
- خط SYNC برای همزمانسازی
نکته مکانیکی: طراحی مکانیک کانکتورها به گونهای است که اتصال پایدار و قفلشونده باشد تا در محیطهای لرزشی، قطع و وصل ناخواسته رخ ندهد.
پینهای خروجی و هدرهای ماژول
تمامی پینهای کاربردی
- پینهای ADC (ADS1263)
- پینهای سنسورها (MMC5883MA، IAM-20680HP)
- پینهای حافظه فلش (W25Q80DV)
- خطوط لازم برای راهاندازی بلوتوث HC-05
به صورت هدر از برد بیرون کشیده شدهاند.
سازگاری با GebaraBus / STM32:
- پینآوت ماژول کاملاً مطابق با ماژول میکروکنترلر STM32 جبرابیت است.
- پروتکلهای SPI و I²C با همین چینش پینها قابل استفادهاند.
مزیت:
- ماژول بدون هیچ تغییر سختافزاری روی برد میکروکنترلر GebraBit نصب میشود و کاربر بلافاصله میتواند توسعه نرمافزار را آغاز کند.
ساختار کلی و مزیتهای طراحی
رعایت اصول EMI/EMC در طراحی PCB:
- مسیرهای دیفرانسیل کوتاه و منظم
- طرح زمین مناسب
- فیلترگذاری آنالوگ
→ نتیجه: پایداری عالی سیگنالها و کاهش حساسیت به نویز محیطی.
وجود فیلترهای سیگنالکاندیشنینگ در مسیر هر کانال FLC100 تا ورودی ADC برای:
- حذف نویز فرکانس بالا
- تعیین پهنایباند عملیاتی مناسب برای کاربرد میدان مغناطیسی
جدول مشخصات فنی (Technical Specifications)
| دسته | مشخصه فنی | مقدار / توضیح |
| ورودی سنسور FLC100 | تعداد ورودیها | 5 ورودی استاندارد پینتوپین FLC100 |
| ورودی قابل استفاده همزمان | 4 کانال مستقیم + 5 کانال در صورت استفاده از مرجع داخلی | |
| نوع اتصال | کانکتور اصلی استاندارد سنسور FLC100 | |
| طول کابل استاندارد | نیازمند زوج سیم تابیده برای کابلهای > 1 متر | |
| ساختار الکتریکی و طراحی | رعایت EMI/EMC | کامل، مناسب اندازهگیریهای حساس |
| نوع سیگنال خروجی سنسور | دیفرانسیلی | |
| خط SYNC | پشتیبانیشده جهت همزمانسازی سنسورها | |
| فیلتر آنالوگ / سیگنالکاندیشنینگ | دارد (مسیری کامل قبل از ADC) | |
| سازگاری با برد مادر | کامل با GebaraBus و STM32 | |
| مرجع ولتاژ (MAX6194ESA) | مقدار ولتاژ مرجع | 4.500 ولت دقیق |
| دقت اولیه | ±2 mV | |
| ضریب دما | 5 ppm/°C حداکثر | |
| نویز 0.1–10 Hz | حدود 8 µV RMS | |
| جریان خروجی | تا 500 µA (Source/Sink) | |
| مصرف | ~35 µA | |
| مبدل آنالوگبهدیجیتال (ADS1263) | نوع ADC | Δ–Sigma |
| رزولوشن | 32 بیت (ADC1) | |
| نرخ نمونهبرداری | از 2.5 SPS تا 38400 SPS | |
| کانالها | 11 ورودی آنالوگ قابل پیکربندی | |
| ADC دوم | 24 بیت (ADC2) | |
| PGA داخلی | تا 32×، کمنویز | |
| امکانات داخلی | TDAC، IDAC، Temp Sensor، 3×Vref | |
| رابط | SPI پرسرعت | |
| حافظه Flash (W25Q80DV) | ظرفیت حافظه | 8 مگابیت |
| رابط | SPI تا 104 MHz | |
| ساختار حافظه | Page: 256B – Sector: 4KB – Block: 32/64KB | |
| امنیت | Block Protect + Status Register-2 | |
| ولتاژ کاری | 2.7V – 3.6V | |
| ماندگاری دیتا | 10 سال | |
| چرخه نوشتن | 100,000 چرخه | |
| سنسور مغناطیسی MMC5883MA | نوع سنسور | مغناطیسسنج سهمحوره |
| محدوده اندازهگیری | ±8 گوس | |
| رزولوشن | 0.25 میلیگوس | |
| نویز | 0.4 میلیگوس RMS | |
| نرخ نمونهبرداری | تا 600 Hz | |
| SET/RESET داخلی | دارد | |
| IMU (IAM-20680HP) | سنسورها | ژیروسکوپ + شتابسنج سهمحوره |
| مزایا | نویز پایین، پایداری حرارتی، مناسب محیط لرزشی | |
| رابط | I2C / SPI | |
| ماژول بلوتوث HC-05 | نوع ارتباط | Bluetooth Classic |
| حالت کاری | Master / Slave | |
| رابط | UART | |
| سرعت دیتا | ~80 kbps | |
| برد ارتباطی | ~10 متر | |
| AT Command | پشتیبانی کامل | |
| پینها و دسترسی توسعهدهنده | دسترسی پینها | همه پینهای ADC، IMU، مگنتومتر، فلش و رابطها بیرون کشیده شده |
| جهت اتصال | کاملاً سازگار با GebaraBus | |
| کاربردها | دیتالاگر میدان | پشتیبانیشده |
| اسکنر میدان | بله | |
| اندازهگیری جریان/فلز | پشتیبانیشده | |
| ارتباط بیسیم | از طریق HC-05 | |
| ویژگیهای مهم ماژول | مرجع ولتاژ دقیق 4.5V | دارد |
| ADC 32 بیت | دارد | |
| ورودی پینتوپین FLC100 | دارد | |
| سیستم اندازهگیری کامل (IMU + Magnetometer + Flash) | دارد | |
| قابلیت نصب روی برد مادر | بدون نیاز به تغییر سختافزار | |
| قابلیت گرادیومتر مغناطیسی | تعداد سنسور لازم | حداقل 2 سنسور FLC100 |
| قابلیت همزمانی | از طریق SYNC و تنظیم ADC | |
| اندازهگیری گرادیان | پشتیبانیشده (nT/m یا µT/m) |
راهاندازی و نصب
قطعات مورد نیاز
- برد GebraBit STM32F303
- ماژول درایور GebraBit FLC100 Pro
- سنسور FLC100 + کابلش
- کابل USB (برای اتصال STM32 به لپتاپ / ST-LINK)
اتصال و محل قرار گیری GebraBit FLC100 Pro
برد FLC100 Pro را روی برد میکروکنترلر STM32 (بسته به نوع هدرها) قرار میدهیم، طوری که سوراخهای پیچ و پایه ها روی هم قرار گیرند خیلی آرام فشار داده تا تمام پینها کامل داخل سوکت روند (احتیاط شود تا پین خم نشود).در نتیجه عملاً دو برد تبدیل به یک «ماژول دو طبقه» شدهاند . تغذیه 3.3V و 5 V از ماژول STM32F303 به FLC100 Pro میرسد. همچنین خطوط SPI، I2C، UART از قبل روی PCB به هم وصل شدهاند و نیازی به سیمکشی اضافه نیست.
اتصال سنسور FLC100 به ماژول درایور
روی برد FLC100 Pro سوکت (یا ترمینال) مخصوص سنسور FLC100 وجود دارد .
مطابق دیتاشیت FLC100 و برچسبهای روی برد، کابل سنسور را وصل میکنیم:
- 5+ سنسور → 5+ روی کانکتور
- GND سنسور → GND
- خروجی دیفرانسیل سنسور → ورودیهای + و −
- پین SYNC نیز در خود ماژول روت شده است).
اگر طول کابل زیاد است (۱ متر یا بیشتر)، حتماً از سیمهای زوج تابیده (Twisted Pair) برای خطوط سیگنال استفاده کنید تا نویز کم شود.
توجه: حتما باید تغذیه 5 ولت به برد میکروکنترلر STM32 اعمال شود . بهترین ولتاژ v5 هم تغذیه از باطری می باشد.ولتاژ 3v3 نیز توسط رگولاتور روی برد میکروکنترلر STM32 ساخته می شود.
روشن کردن سیستم
جامپر BOOT SEL روی STM32F303 را روی حالت Boot from Flash بگذارید (همان حالت پیشفرض).
کابل USB ST-LINK را به هدر SWD برد STM32F303 وصل می کنیم . با وصل شدن تغذیه v5 باطری: LED پاور روی برد روشن میشود. روی FLC100 Pro هم LED وضعیت روشن میشود.
گامهای نرمافزاری در STM32CubeMX
ساخت پروژه جدید
- STM32CubeMX را باز کنید.
- New Project → میکروکنترلر روی برد (STM32F303CCT6) را انتخاب کنید.
تنظیم کلاک
با توجه به وجود کریستال 8Mhz در ماژول GebraBit STM32F303 ، کلاک خارجی را در بخش RCC انتخاب می کنیم:
تنظیمات کلاک مربوط به هریک از بخش های میکروکنترلر STM32F303 در این کد به شرح ذیل می باشد:
تنظیمات Debug&Programming
با توجه به دسترسی به پین های SWCLK و SWDIO در ماژول GebraBit STM32F303 ، برای کاهش تعداد پین هنگام Debug&Programming در بلوک SYS گزینه Serial Wire را در بخش Debug انتخاب می کنیم:
تنظیمات I2C
برای ارتباط از طریق I2C با ماژول GebraBit STM32F303 پین های PB8 و PB9 را برای عدم تداخل با حالت Serial Wire هنگام Debug&Programming ، به عنوان SCL و SDA انتخاب می کنیم . سنسور های MMC5883MA و IAM20680HP از این پین ها جهت ارتباط I2C استفاده می کنند.
تنظیمات SPI
برای ارتباط از طریق SPI با ماژول GebraBit STM32F303 حالت Full Duplex Master را انتخاب کرده و پین های PA7 و PA6 و PA5 و PA4 را به عنوان MOSI و MISO و SCK و CS انتخاب می کنیم . از این پین ها برای ارتباط با ADS1263 با رابط SPI استفاده می کنیم.
و برای ارتباط با W25Q80DVSSIG حافطه فلش با رابط SPI از SPI3 و پین های PB3 و PB4 و PB5 را به عنوان SCK و MISO و MOSI انتخاب می کنیم.
تنظیمات USART
برای ارتباط با ماژول بلوتوث HC05 پین های USART3 را یعنی PB10 و PB11 به عنوان TX و RX انتخاب و نرخ ارسال رو 38400 تنظیم میکنیم:
سایر پین ها
دیگر پین های کاربردی بخش های مختلف را نیز مانند تصویر زیر می توان کانفیگ کرد:
Project Manager تنظیمات
تنظیمات “Project Manager” به صورت زیر است؛ در اینجا از نسخه “5.32” محیط توسعه “MDK-ARM” استفاده کردهایم. اگر شما برای برنامهنویسی از محیط توسعه دیگری استفاده میکنید، باید از قسمت Toolchain گزینه مربوط به IDE مورد استفاده خود را انتخاب کنید.
بعد از تنظیمات بالا، روی GENERATE CODE کلیک کنید.
حالا با استفاده از محیط ایجاد شده میتوانیدکد خود را توسعه دهید و شروع به برنامه نویسی و راهاندازی هر یک از بخشهای ماژول کنید.
در ادامه میتوانید از کد نمونه تهیه شده توسط تیم پشتیبانی برای دریافت دیتا و راهاندازی سنسورهای خود استفاده کنید در این کد دادهها از مبدل آنالوگ به دیجیتال ads ۱۲۶۳ خوانده شده و با استفاده از بلوتوث بر روی کامپیوتر قابل مشاهده است .
بررسی فایل “ADS1263.h”
هدرها و ثابتهای اول فایل
#include "main.h" #include "stdint.h" ... #define VREF 4.57f
این بخش هدرهای استاندارد C و هدرهای پروژه (مثل main.h و spi.h) را وارد میکند.
VREF ولتاژ مرجع خارجی است (مثلاً خروجی MAX6194 روی بورد FLC100 Pro).
بعداً برای تبدیل عدد خام ADC به «ولت» از همین مقدار استفاده میشود.
. آدرس رجیسترهای ADS1263
#define ADS1263_REG_ID 0x00 #define ADS1263_REG_POWER 0x01 #define ADS1263_REG_INTERFACE 0x02 ... #define ADS1263_REG_ADC2FSC1 0x1A
- این قسمت، آدرس رجیسترهای داخلی ADC را تعریف میکند تا بهجای استفاده از عدد «خام» (مثلاً 0x05)، از اسم خوانا (ADS1263_REG_MODE2) استفاده کنی.
- هر کدام کنار خودشان توضیح دارند که آن رجیستر برای چه کاری است (مثلاً POWER، INTERFACE، MODE0/1/2، انتخاب ورودی، کالیبراسیون آفست و فولاسکیل، تنظیمات ADC2 و…).
دستورات (Command Opcodes)
#define ADS1263_CMD_RESET 0x06 #define ADS1263_CMD_START1 0x08 ... #define ADS1263_CMD_WREG(addr) (0x40 | ((addr) & 0x1F))
- این بخش کد دستورات یکبایتی را تعریف میکند؛ چیزهایی که مستقیم روی SPI میفرستی تا ADC کاری انجام دهد:
- RESET → ریست کردن تراشه
- START1/STOP1 → شروع/توقف تبدیلهای ADC1
- RDATA1/RDATA2 → خواندن دادهی آماده
- SFOCAL/SYOCAL/SYGCAL → کالیبره کردن آفست و گِین
- ماکروهای RREG و WREG هم برای ساختن دستور خواندن/نوشتن رجیستر با آدرس دلخواه هستند.
enum های کنترلی برای پایههای سختافزاری
typedef enum { ADS1263_RESET_PULSE, ... } ADS1263_ResetMode;
typedef enum { ADS1263_START_LOW, ... } ADS1263_StartPinMode;
typedef enum { ADS1263_CS_LOW, ... } ADS1263_ChipSelectState;
اینها فقط نامگذاری خوانا برای حالات پایههای سختافزاری ADC است:
- RESET → پالس/پایین نگهداشتن/رها کردن
- START → شروع/توقف/پالس کوتاه
- CS → LOW یا HIGH (شروع و پایان فریم SPI)
استفاده از این enumها باعث میشود تابعها مثل ADS1263_SetResetPin() و ADS1263_SetChipSelect() خیلی خواناتر شوند.
شناسهی دستگاه و بیتهای POWER/INTERFACE
typedef enum { ADS_DEVICE_ADS1262, ADS_DEVICE_ADS1263, ... } ADS126x_DeviceID_t;
typedef enum { ADS_RESET_NO_EVENT, ADS_RESET_OCCURRED } ADS126x_ResetFlag_t;
...
typedef enum { ADS_TIMEOUT_DISABLED, ADS_TIMEOUT_ENABLED } ADS126x_TimeoutMode_t;
ADS126x_DeviceID_t : بر اساس رجیستر ID تشخیص میدهد چیپ ADS1262 است یا ADS1263.
ResetFlag, Vbias, IntRef برای رجیستر POWER هستند و وضعیت ریست، بایاس و رفرنس داخلی را در سطح منطقی (۰/۱) توصیف میکنند.
Timeout, StatusByte, CRCMode برای رجیستر INTERFACE هستند و این را کنترل میکنند که:
- آیا تایماوت DRDY فعال باشد یا نه
- آیا در خروجی ADC، یک بایت وضعیت اضافه شود یا نه
- آیا چکسام/CRC در انتهای داده ارسال شود یا نه.
تنظیمات MODE0 / MODE1 / MODE2
MODE0
typedef enum { ADS_REFREV_NORMAL_MPX, ADS_REFREV_REVERSE_MPX } ADS126x_RefRev_t;
typedef enum { ADS_RUNMODE_CONTINUOUS, ADS_RUNMODE_PULSE } ADS126x_RunMode_t;
typedef enum { ADS_INPUT_CHOP_IDAC_ROTATION_DIS, ... } ADS126x_ChopMode_t;
typedef enum { ADS_DELAY_0US, ADS_DELAY_8_7US, ... } ADS126x_ConvDelay_t;
انتخاب میکند:
- جهت مرجع (REFREV)
- حالت کار: پیوسته یا تکشات
- حالت چاپینگ و چرخش IDAC برای کمکردن درفت و نویز
- تأخیر قبل از تبدیل (برای فیلتر کردن بهتر/پایداری بیشتر)
MODE1
typedef enum { ADS_FILTER_SINC1, ..., ADS_FILTER_FIR } ADS126x_FilterType_t;
typedef enum { ADS_BIASTO_ADC1, ADS_BIASTO_ADC2 } ADS126x_SBADC_t;
...
انتخاب نوع فیلتر دیجیتال (SINC1/2/3/4 یا FIR)
تنظیم سنسور بایاس (به کدام ADC وصل باشد، پلآپ/پلداون باشد، با چه شدتی)
MODE2
- فعال/غیرفعال کردن PGA داخلی
- انتخاب ضریب گِین (۱ تا ۳۲)
- انتخاب نرخ نمونهبرداری ADC1 (از ۲٫۵ نمونهبرثانیه تا ۳۸٫۴kSPS)
این enumها باعث میشوند تابعهایی مثل ADS126x_WriteMode2Config() را با اسمهای معنادار صدا بزنی.
typedef enum { ADS_PGA_ENABLED, ADS_PGA_BYPASSED } ADS126x_PGABypass_t;
typedef enum { ADS_PGA_GAIN_1, ..., ADS_PGA_GAIN_32 } ADS126x_PGAGain_t;
typedef enum { ADS_DATA_RATE_2_5SPS, ..., ADS_DATA_RATE_38400SPS } ADS126x_DataRate_t;
ورودیها، رفرنس، IDAC و TDAC
INPMUX
typedef enum { ADS_MUX_AIN0, ..., ADS_MUX_FLOAT } ADS126x_InputMux_t;
کانالهایی که میتوانی به عنوان ورودی مثبت/منفی به ADC1 بدهی:
- AIN0..AIN9، AINCOM، دماسنج داخلی، مانیتور AVDD/DVDD، تست DAC …
IDACMUX و IDACMAG
typedef enum { ADS1263_IDAC_AIN0, ..., ADS1263_IDAC_NO_CONN } ADS1263_IdacPin;
typedef enum { IDAC_MAG_OFF, IDAC_MAG_50uA, ..., IDAC_MAG_3mA } ADS126x_IDAC_Magnitude;
مشخص میکند جریانهای IDAC1 و IDAC2 روی کدام پینها خروجی شوند و شدت هر کدام چند میکروآمپر/میلیآمپر باشد.
این برای تحریک سنسورهای مقاومتی یا پلها استفاده میشود.
REFMUX (مرجع مثبت/منفی)
typedef enum { REF_MUX_INT_2V5, ..., REF_MUX_AVDD } ADS126x_RefPosInput;
typedef enum { REF_NEG_INT_2V5_N, ..., REF_NEG_AVSS } ADS126x_RefNegInput;
انتخاب میکند که مرجع مثبت و منفی ADC1 از کجا بیایند:
- رفرنس داخلی ۲٫۵V
- ترکیب پایههای AIN0/AIN1 و …
- یا AVDD/AVSS.
TDAC
typedef enum { TDAC_DISCONNECTED, TDAC_CONNECTED } ADS126x_TDAC_Connect;
typedef enum {TDAC_MAG_4_5V, ..., TDAC_MAG_0_5V } ADS126x_TDAC_MAG;
TDAC یک DAC داخلی برای تست/تحریک است.
این enumها تعیین میکنند خروجی TDAC به پین وصل است یا نه و چه ولتاژی (تقریباً پلهای) تولید کند.
تنظیمات ADC2
typedef enum { ADC2_DR_10_SPS, ..., ADC2_DR_800_SPS } ADC2_DataRate_t;
typedef enum { ADC2_REF_INT_2V5, ..., ADC2_REF_AVDD_AVSS } ADC2_ReferenceInput_t;
typedef enum { ADC2_GAIN_1_VV, ..., ADC2_GAIN_128_VV } ADC2_Gain_t;
ADC2 یک ADC جداگانه سادهتر است.
این بخش دقیقاً مشابه ADC1، ولی برای رجیسترهای ADC2CFG و ADC2MUX و کالیبراسیون ADC2 است:
- نرخ نمونهبرداری
- مرجع
- گِین
- آفست و فولاسکیل ۱۶بیتی.
ساختار وضعیت (STATUS Byte)
typedef struct
{
uint8_t RESET :1;
uint8_t PGAD_ALM :1;
...
uint8_t ADC_1 :1;
uint8_t ADC_2 :1;
} ADS126x_Status_t;
وقتی در رجیستر INTERFACE انتخاب کنی که «Status Byte» همراه دیتا ارسال شود، اولین بایتی که از ADC میگیری این فیلدها را دارد.
این struct با بیتفیلد تعریف شده تا راحت کنی:
- آیا اخیراً ریست شده؟
- آیا PGA به اشباع رفته؟
- آیا مرجع افت کرده؟
- آیا دادهی جدیدی برای ADC1/ADC2 موجود است یا نه.
پروتوتایپ توابع SPI و کمکی رجیستر
HAL_StatusTypeDef ReadRegister(...); void ADS1263_ReadRegister(...); void ADS1263_WriteRegister(...); ... void ADS1263_ReadBytes(...); void ADS1263_SendCommand(uint8_t command);
اینها فقط اعلان تابعها هستند (بدنهشان جای دیگری نوشته میشود):
- ReadRegister / ADS1263_ReadRegister / WriteRegister
→ خواندن/نوشتن رجیسترها از طریق SPI. - ReadRegisterBits / WriteRegisterBits / ReadRegister1Bit / WriteRegister1Bit
→ خواندن/نوشتن چند بیت خاص از یک رجیستر، بدون خراب کردن بقیه بیتها (با ماسک کردن). - ADS1263_ReadBytes
→ خواندن چند بایت پشت سر هم (مثلاً دیتا + status + checksum). - ADS1263_SendCommand
→ ارسال یک دستور تکبایتی (مثل RESET یا START1).
کنترل پایههای فیزیکی
void ADS1263_SetResetPin(ADS1263_ResetMode mode); void ADS1263_SetStartPin(ADS1263_StartPinMode mode); void ADS1263_SetChipSelect(ADS1263_ChipSelectState state);
این توابع در نهایت روی GPIOهای STM32 کار میکنند و طبق enumهایی که بالا تعریف کردی، پایهها را ۰/۱ میکنند.
مثلاً در راهاندازی اولیه، ADS1263_SetResetPin(ADS1263_RESET_PULSE); را صدا میزنی تا چیپ ریست شود.
توابع سطح بالای تنظیم رجیسترها
void ADS126x_ReadPowerStatus(...); void ADS126x_WritePowerConfig(...); void ADS126x_ReadInterfaceConfig(...); void ADS126x_WriteInterfaceConfig(...); void ADS126x_ReadMode0Config(...); void ADS126x_WriteMode0Config(...); void ADS126x_ReadMode1Config(...); void ADS126x_WriteMode1Config(...); void ADS126x_ReadMode2Config(...); void ADS126x_WriteMode2Config(...);
- اینها رَپرهای خوانا روی توابع رجیستر خام هستند.
- بهجای اینکه خودت بیتبهبیت رجیسترها را بسازی، اینها را صدا میزنی، با enumها مقدار میدهی، تابع خودش:
- رجیستر فعلی را میخواند؛
- فقط بیتهای مربوطه را تغییر میدهد؛
- مقدار جدید را مینویسد.
دقیقاً همین الگو برای:
- INPMUX (انتخاب کانال مثبت/منفی)
- OFCAL/FSCAL (آفست و فولاسکیل ۲۴بیتی)
- IDACMUX/IDACMAG (خروجی و شدت IDACها)
- REFMUX (مرجع مثبت/منفی)
- TDACP/TDACN
- GPIOCON / GPIODIR / GPIODAT
- ADC2CFG / ADC2MUX / ADC2OFC / ADC2FSC
هم تکرار شده است.
تابعهای وضعیت، چکسام، و DRDY
ADS126x_Status_t ADS126x_ReadStatusByte(uint8_t *stat); uint8_t ADS126x_CalculateChecksum(const uint8_t *data, uint8_t length); uint8_t ADS126x_CalculateCRC(const uint8_t *data, uint8_t length); uint8_t ADS126x_DRDY_Pulsing(void); void ADS126x_WaitForDRDY(void); bool ADS1263_IsDataReady(void); HAL_StatusTypeDef ADS1263_WaitForDataReady(uint32_t timeout_ms);
ReadStatusByte بایت وضعیت دریافتی از ADC را به struct قابلفهم تبدیل میکند.
CalculateChecksum / CalculateCRC برای حالتهایی است که در INTERFACE، CRC یا checksum را فعال کردهای؛ این تابعها کمک میکنند صحت داده را چک کنی.
DRDY_* ها برای مدیریت پایه DRDY هستند:
- آیا دیتا آماده شده؟
- صبر تا LOW شدن DRDY با تایماوت
- تشخیص اینکه DRDY در حال پالس دادن هست یا نه.
خواندن دیتا از ADC1 / ADC2
uint8_t ADS126x_ReadADC1Data_Direct(...); int32_t ADS126x_ReadADC1Data_Command(uint8_t* statusByte, uint8_t* crcByte); int32_t ADS126x_ReadADC2Data_Command(uint8_t* statusByte, uint8_t* crcByte);
- دو روش برای ADC1:
- Direct mode: وقتی ADC خودش بهصورت پیوسته دیتا میفرستد و تو فقط منتظر DRDY میمانی و داده را میخوانی.
- Command mode (RDATA1): هر وقت خواستی، با دستور RDATA1 دیتای آخر را میگیری.
- برای ADC2 هم مشابه، با RDATA2.
- این توابع همزمان میتوانند:
-
- مقدار خام ۲۴ یا ۳۲بیتی
- بایت وضعیت
- بایت CRC/Checksum
را برایت برگردانند.
تبدیل عدد ADC به ولتاژ و میدان مغناطیسی
float ADS1263_ConvertToVoltage(int32_t adc_raw, float vref, ADS126x_PGAGain_t gain); float FLC100_ConvertVoltageToMicroTesla(float voltage);
- ADS1263_ConvertToVoltage:
- مقدار خام ADC (signed 32-bit) را با توجه به VREF و گِین PGA به ولت تبدیل میکند.
- فرمول معمول:
- FLC100_ConvertVoltageToMicroTesla:
- ولتاژ خروجی FLC100 را براساس حساسیت سنسور به میدان مغناطیسی (µT) تبدیل میکند.
- مثلاً اگر حساسیت سنسور X mV/µT باشد، این تابع دقیقاً همان رابطه را پیاده میکند.
جمعبندی
این فایل در واقع:
- یک درایور سطحپایین تا نیمهسطحبالا برای تراشه ADS1263 است،
- که همهی جزئیات رجیسترها، بیتها، و دستورات SPI را به شکل قابلفهم و قابلاستفاده درآورده شده،
- و در انتها تبدیل دادهی خام به ولتاژ و سپس به میدان مغناطیسی FLC100 را هم آماده کرده است.
بررسی فایل “main.h”
این برنامه پس از مقداردهی اولیه پردازنده و فعالسازی تمامی واسطهای ارتباطی، ماژول بلوتوث را بررسی کرده و پیام آغازین را ارسال میکند. سپس فیلترهای پردازش سیگنال و مبدل دقیق ADS1263 را با ریست سختافزاری راهاندازی کرده و مجموعهای از رجیسترهای اصلی آن از جمله تنظیمات توان، رابط ارتباطی، فیلتر دیجیتال، تقویتکننده داخلی، نرخ نمونهبرداری، ورودیهای آنالوگ و مرجع خارجی را پیکربندی میکند. در ادامه، شناسنامه تراشه خوانده شده و وضعیت پیکربندی از طریق بلوتوث گزارش میشود. پس از فعالسازی خط START، پردازنده در حالت آمادهباش قرار میگیرد تا با هر بار فعالشدن وقفه DRDY، داده جدید از ADC استخراج شود. با دریافت سیگنال آمادهبودن داده، مقدار خام ADC به ولتاژ تبدیل شده و سپس بر مبنای ویژگیهای سنسور FLC100 به میدان مغناطیسی برحسب میکروتسلا تبدیل میگردد. دادههای خام و فیلتر شده توسط فیلترهای Butterworth و میانگین متحرک پردازش شده و در نهایت نتیجه برای پایش یا ثبت از طریق بلوتوث ارسال میشود. این فایل صرفا یک نمونه( مثال ) برای راه اندازی سیستم بوده و در مجموع وظیفه مدیریت چرخه کامل نمونهبرداری، پردازش و گزارشدهی میدان مغناطیسی را برعهده دارد.خیلی از خطوط صرفا برای تست مقدار دهی شده اند و کاربر میتواند بر حسب نیاز انها را حذف یا اضافه کند.
بخشی از کد فایل main.c
/* Infinite loop */
/* USER CODE BEGIN WHILE */
ADS1263_SetStartPin(ADS1263_START_HIGH);
Bluetooth_Send("ADS1263_START_HIGHrn");
HAL_Delay(500);
while (1)
{
if(data_ready == 1 )
{
data_ready = 0;
ADS126x_ReadADC1Data_Direct(crc_mod,status_byt,&result,&statusByt,&crcByt);
voltage = ADS1263_ConvertToVoltage(result, VREF, gai);
magnetic_field_uT = FLC100_ConvertVoltageToMicroTesla( voltage);
//Filter_Kalman(magnetic_field_uT, &uT_Kalman);
//Filter_AdaptiveKalman(magnetic_field_uT, &uT_Adaptive);
Filter_Butterworth(magnetic_field_uT, &uT_Butter);
Filter_MovingAverage(magnetic_field_uT, &out_MAV);
//filtered_field = Apply_Filter(magnetic_field_uT);
// Bluetooth_Send("ADS1263rn");
Bluetooth_Send("uT:%.4f,BuT:%.4f,MAuT:%.4frn", magnetic_field_uT,uT_Butter,out_MAV);
}
}


























نقد و بررسیها
هنوز بررسیای ثبت نشده است.