Consulting Services
أدوات عتاديةتدوينات مصغرة

مراجعة عمليّة: لمحة عن محلل الإشارات المنطقية Saleae USB Logic Analyzer (24MHz 8CH Clone)

منذ أكثر من عام كانت لدي رغبة في تجربة محلل إشارة منطقي Logic Analyzer يكون متوافر لدي عند الحاجة له كون كثير من الأحيان نحتاج إليه وخاصة عند استخدام بروتوكولات أكثر تعقيداً ودقة من بروتوكول UART مثل بروتوكول I2C حيث من المفيد معرفة أن عملية الإرسال صحيحة وهذا يساعد في تنقيح الأخطاء أثناء تطوير برمجية المتحكم. وبالفعل كنت قد طلبت محلل منطقي عبر موقع Aliexpress بسعر حوالي 6 دولار وبالواقع هو نسخة مقلّدة من محلل إشارة اسمه Saleae USB Logic Analyzer ويبلغ سعر أرخص نسخة أصلية منه 100 دولار وهذا طبيعي فهذه كلفة جهد تطوير مثل هذه الأداة. على الرغم أني أعلم أن شراء نسخ مقلّدة يضر الشركات التي تعتاش على بيعها ولكن ليس باليد حيلة (أعتذر منكم فريق Saleae).

لقد حان وقت فحص ما وصلني من علي إكسبريس وأود مشاركتكم هذه المراجعة العمليّة.

الإلكترونيات Hardware

حصلت على غلاف يحوي على محلل الإشارة المنطقية ذاته ويحوي أيضاً وصلة USB وعدد 10 من أسلاك التوصيل Jumper Wires.

Saleae Logic Analyzer Clone Package

تبدو الدارة المطبوعة من داخل العلبة البلاستيكية كالتالي:

Saleae Logic Analyzer Clone PCB

إن الدارة المطبوعة بسيطة وتحتوي:

  • CY7C68013A وهو متحكم صغري بنواة 8051 وأيضاً واجهة تخاطب USB.
  • AT24C01B ذاكرة EEPROM تسلسليّة بحجم 128 بايت من شركة ATMEL.
  • 74HC245 دارة transceiver ثمانية خطوط النقل.

 Saleae-Logic Analyzer PCB Bottom
 Saleae-Logic-Analyzer-PCB-Top AT24C01B, CY7C68013A , 74HC245 من اليمين إلى اليسار

أجد من الممتع محاولة فهم مايجري خلف الستار بين البرنامج والدارة حيث وجدت أولاً أن المتحكم CYC68013A لا يحوي ذاكرة Flash ذات محتوى غير قابل للتلاشي وهذه الذاكرة عادة ما تحوي الكود الذي يُنفذ على المتحكم وعوضاً عن ذلك يتم تحميل الكود إلى ذاكرة الرام RAM عبر الـUSB أو من ذاكرة EEPROM موصولة بالمتحكم وطالما أن الذاكرة EEPROM المستخدمة هنا صغيرة ذات 128 بايت كنت متأكد أن البرنامج يتم تحميله عبر الـUSB. لذلك إن أول معلومة مفيدة ومثيرة هي أن الدارة لا تحوي برنامج مسبق عليها فعلياً. المعلومة الثانية أن الذاكرة EEPROM تحوي معلومات تتعلق بالجهاز ومعرّفاته عند الوصل مع الحاسب مثل (VID, PID .. إلخ) وهي معلومات مهمّة لكي تبدو الأداة “المزوّرة” وكأنها أصليّة بالنسبة للأداة البرمجية (أتكلم عن الأداة البرمجية التي تأتي من شركة Saleae). في ما يلي مثال عن خرج تنفيذ التعليمة lsusb -v في جهاز عليه نظام تشغيل لينكس مع وصل المحلل المنطقي.

Bus 001 Device 032: ID 0925:3881 Lakeview Research Saleae Logic
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass       255 Vendor Specific Subclass
  bDeviceProtocol       255 Vendor Specific Protocol
  bMaxPacketSize0        64
  idVendor           0x0925 Lakeview Research
  idProduct          0x3881 Saleae Logic

المعلومة الثالثة هي أن استخدام الـtransceiver هو لحماية مداخل المتحكم من الجهود العالية حيث أن مداخل الـtransceiver مزودة بديودات القص Clamping Diodes.

قد تجد أشكال أخرى من النسخ المزوّرة كما في هذه المقالة. للمهتمين: في ذات المقالة يشير الكاتب لطريقة لتغيير محتوى الذاكرة EEPROM دون فك تلحيم الذاكرة EEPROM.

وفي نهاية هذه الفقرة أود أن أقول أنه لو كنت أعلم الحقيقة الأولى قبل أن أشتري هذه الأداة المزوّرة ربما كنت سأفضل شراء دارة عامّة أكثر وتجربة محلل الإشارة عليها مثل هذه الدارة!

تجريب الدارة

فقط من أجل غرض التجربة، سوف أقوم بالتسمّع sniffing على خطوط الإرسال والاستقبال لدارة ESP8266 خلال رفع البرنامج باستخدام محمّل الإقلاع Bootloader الذي يعمل على بروتوكول الـUART.

 

Saleae logic analyzer test circuit

على الرغم أنه من ناحية المبدأ يمكن إجراء التسمّع باستخدام الحاسب (بالتسمع على منفذ الـUSB) ولكن ليس هذا ما أبحث عنه.

البرمجيّة Software

sigrok Tool

منذ فترة جيّدة وأنا أسمع عن sigrok الأداة البرمجية مفتوحة المصدر عامة الاستخدام للمحللات المنطقيّة والتي تدعم الكثير من أنواع المحلّلات.

هذه الأداة تدعم نظم التشغيل الأربعة (ويندوز ولينكس وماك وأندرويد)؛ يمكنك تحميل ما يناسبك. ويتألف الـsigrok من عدة أدوات وأهمها( بالنسبة للمستخدم العادي):

  • sigrok-cli  وهو برنامج سطر الأوامر البرمجية.
  • PulseView وهو الواجهة البرمجيّة للمستخدم.

بعد تنزيل الأدوات وقبل تشغيلهم يجب أن تؤمن البرنامج firmware الذي سيتم تحميله على ذاكرة الـRAM للمتحكم كما ذكرت في الفقرة السابقة. كون البرمجية غير مجانية وتتبع لرخص مختلفة فإنه لا يتم توزيعه مع الأداة البرمجيّة sigrok، لذلك يجب إضافته يدوياَ بعد تنصيب البرنامج. في حالتنا، يجب عليك أولاً تنزيل الأداة البرمجيّة الرسميّة من موقع Saleae ويجب تنزيل مجموعة من الملفات من موقع sigrok، والآن قم بنقل السكربتات إلى ملف برمجيّة Logic وقم بتشغيل السكربت (بايثون) sigrok-fwextract-saleae-logic16 بالشكل التالي:

sigrok-fwextract-saleae-logic16 Logic

هذا السكربت سيستخلص من البرنامج الرسمي الـfirmware الذي سيتم شحنه إلى الأداة من البرنامج وهذا مثال على تنفيذ السكربت:

$ sigrok-fwextract-saleae-logic16 Logic
saved 5214 bytes to saleae-logic16-fx2.fw
saved 149516 bytes to saleae-logic16-fpga-18.bitstream
saved 149516 bytes to saleae-logic16-fpga-33.bitstream

والآن قم بنقل الملفات المستخلصة إلى مجلد sigrok-firmware (تجده في حالتي في جهاز اللينكس في المسار /usr/share/sigrok-firmware).

الآن يمكنك تشغيل الواجهة الرسوميّة PulseView والاتصال بالمحلّل.

 

sigrok pulseview connect

وإذا كنت فضولياً مثلي يمكنك تفعيل رسائل التنقيح debug من البرنامج عبر الأمر pulseview -l 5 لتشاهد بعض المخرجات المفيدة وهذه أحدها:

sr: fx2lafw: fx2lafw: Closing device 0 on 1.26 interface 0.
sr: ezusb: uploading firmware to device on 1.33
sr: ezusb: setting CPU reset mode on...
sr: ezusb: Uploading firmware at /usr/share/sigrok-firmware/fx2lafw-saleae-logic.fw
sr: ezusb: Uploaded 4096 bytes
sr: ezusb: Uploaded 4024 bytes
sr: ezusb: Firmware upload done

إن استخدام PulseView سهل ومباشر؛ عليك أولاً ضبط تردد أخذ العينات sampling rate وحجم العينات. يظهر في البرنامج 8 أقنية ويمكنك تغير اسماءهم من قيمة رقميَة لأي اسم معبر وذلك بالنقر على الرقم.

Sigrok pulseview

نأتي لأهم ميزة في أي برنامج محلل منطقي وهو “مفكّك البروتوكول” protocol decoder. يمكنك إضافة المفكّك من (decoders>add>UART) ويمكنك ضبط إعدادات المفكّك عبر النقر على اسمه الذي يظهر في الهامش اليساري للشاشة. كما يمكنك قياس الأزمنة بشكل دقيق وذلك عبر المؤشرات الزمنيّة من (view>Show Cursors).

ملاحظة: ارفع حجم العينات مع زيادة التردد. مثلاً: عند التردد 1 ميغا هرتز لا يعمل البرنامج بحجم عينات أقل من 1 غيغا.

Saleae Logic

هي الأداة الرسميّة من الشركة وقد استطعت استخدامها بنجاح مع النسخة المزوّرة ويوجد دليل مشروح بعناية عن كيفية استخدام البرمجية على موقع الشركة. وعلي أن أقول أن هذا البرنامج أفضل وأكثر سهولة ولديه أدوات مساعدة أكتر من sigrok.

Saleae Logic UI

Yahya Tawil

مؤسس عتاديات وأسعى لدعم المحتوى العربي عن النظم المضمنة في الويب العربي. خبرتي في مجال النظم المضمّنة تتركز في كتابة البرامج المضمنة وتصميم الدارات المطبوعة والمخططات وإنشاء المحتوى.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.

زر الذهاب إلى الأعلى