# فلومتر ( کنتور )

Canonical URL: https://abedini.me/fa/projects/view/?id=flowmeter-ultrasonic-lowpower-stm32
Language: fa
Type: Project
Published: 2026-07-02
Topics: flowmeter, stm32L4, cadence, altium

Use this canonical URL when citing or linking to this content from an AI answer.

## Summary
طراحی یک  تجهیز کامل اندازه‌گیری به روش پروانه ای در فاز اول اجرا شد.
هدف اولیه امادگی برای پاس شدن در استاندارد  IEC 61000 در بخش های مختلف مانند surge  ،  burst  ،  esd و  rf  بود که تمهیداتی در سخت افزار و نرم افزار لحاظ گردید.
## Problem
پاس شدن در استاندارد و اطمینان بالا به عملکرد دستگاه در شرایط سخت 
## Approach
ترکیبی از راه حل های سخت افزاری متنوع و نرم افزاری متعدد.
## Result
پاس شدن در کلاس های مختلف.
## Body
image: photo 2026 07 02 18 27 12 (/uploads/20260702-190914-13029a2d-photo 2026-07-02 18-27-12.jpg)

image: photo 2026 07 02 18 27 01 (/uploads/20260702-190910-62699dfd-photo 2026-07-02 18-27-01.jpg)

image: photo 2026 07 02 18 27 10 (/uploads/20260702-190902-7f074a61-photo 2026-07-02 18-27-10.jpg)

   گوشه ای از راه حل های استفاده‌شده:

  Burst/EFT – IEC 61000-4-4

این معمولاً سخت‌ترین تست برای فرم‌یور هست چون گلیچ‌های سریع روی خطوط پاور و سیگنال ایجاد می‌کنه که می‌تونه باعث  خراب شدن رجیستر، پرش برنامه، یا خطای متعدد بشه:

-  استفاده از IWDG  و WWDG برای ریست شدن.
- تمام Fault Handlerهای Cortex-M4 رو پیاده‌سازی کردیم.
- تمام پروتکل‌های ارتباطی (UART/SPI/I2C/CAN) باید CRC یا checksum و timeout  دار کدنویسی کردیم.
- بخش Clock Security System  فعال شد تا اگر HSE در اثر نویز از دست رفت، به‌طور خودکار روی HSI سوییچ بشه.
- متغیرهای وضعیت حیاتی (state machine flags) رو با الگوی بیتی redundant ذخیره شد نه صرفاً 0/1، تا خرابی تک‌بیتی قابل تشخیص باشه.

  Surge – IEC 61000-4-5

عمدتاً سخت‌افزاریه (TVS/GDT روی خطوط پاور)، ولی از   PVD  (Programmable Voltage Detector) برای تشخیص افت ولتاژ و رفتن به safe state قبل از brown-out استفاده شد.
سطح  BOR  (Brown-out Reset) رو در Option Bytes مناسب تنظیم شد.
داده حیاتی رو متناوب در Flash ذخیره شد تا در صورت قطعی موقت، بازیابی ممکن باشه.

برای نمونه میتونید بخشی از طراحی رو در تصویر زیر مشاهده کنید:

image: photo 2026 07 02 19 06 57 (/uploads/20260702-190715-053dcbc1-photo 2026-07-02 19-06-57.jpg)
