نظرة سريعة على CST328
البند | القيمة | المصدر |
|---|---|---|
الواجهة | I2C، عناوين مسجلات بعرض 16 بت | برنامج تشغيل ESPHome، RS-Key |
عنوان I2C (7 بت) | | جدول منافذ LilyGO T-Deck Pro، RS-Key |
نقاط اللمس | 5 نقاط على لوحة Waveshare ESP32-S3-Touch-LCD-2.8 | ويكي Waveshare |
تقرير اللمس | السجل | RS-Key |
المقاطعة (Interrupt) | مدعومة | ويكي Waveshare، ESPHome (الحافة الهابطة) |
الحالة | خارج الإنتاج، وفقًا لـ LilyGO | ملف README الخاص بـ LilyGO T-Deck Pro |
لم نستخدم ورقة بيانات من Hynitron لهذه الأرقام. النسخة التي وجدناها على الإنترنت هي تحميل من أحد الموزعين، لذا فإن القيم أعلاه مأخوذة من شيفرة مصدر برنامج التشغيل ووثائق اللوحة.
استبدال CST3530
يقول ملف README الخاص بلوحة T-Deck Pro من LilyGO إن مورّد CST328 "قد أوقف الإنتاج"، لذا تستخدم اللوحات الأحدث T-Deck Pro v1.1 وحدة CST3530. ويضيف أن "الرقاقتين تستخدمان عنوان الجهاز نفسه"، ولذلك يجب على البرنامج الثابت التعرف على الرقاقة أثناء التهيئة. تستخدم LilyGO روتين cst66xx من Hynitron للـ CST3530 وروتين cst3xx للـ CST328.
أجرت لوحة RP2350-Touch-LCD-2.8 من Waveshare التغيير نفسه. يوثّق مشروع RS-Key الإصدار V1 بوحدة CST328 على العنوان 0x1A والإصدار V2 بوحدة CST3530 على العنوان 0x58. على لوحة T-Deck Pro لا يتغير العنوان؛ أما على هذه اللوحة فيتغير.
| CST328 | CST3530 |
|---|---|---|
عنونة السجلات | بايتان | كلمات أوامر بـ 4 بايتات |
تقرير اللمس | | |
الإقرار بعد القراءة | كتابة بايت المزامنة | كتابة |
العنوان على T-Deck Pro | | |
العنوان على RP2350-Touch-LCD-2.8 | | |
السلوك في وضع الخمول | غير موثّق في المصادر التي اعتمدناها | يدخل في وضع السكون تلقائيًا؛ وتوصي LilyGO باستخدام المقاطعات بدلًا من الاستقصاء المتكرر |
استُمدت أعمدة CST3530 من دراجِر RS-Key المدمج، الذي اختبره مؤلفه على لوحة V2، ومن ملف README الخاص بـ LilyGO.
كيف تظهر مشكلة التبادل
كلا المشروعين الذي واجه هذه المشكلة أبلغا عن الشيء نفسه: برنامج التشغيل يعمل والشاشة ترسم، لكن لا يتم تسجيل أي لمسة. وتشير مشكلة reticulum-tdeck إلى أن بعض وحدات T-Deck Pro v1.1 عملت وأخرى لا، وهو ما يتوافق مع تغيير بين دفعات إنتاج وليس مع خطأ في التوصيلات.
فخّان إضافيان:
- فحص I2C لا يحدد الشريحة. على اللوحة T-Deck Pro تستجيب كلتا الشريحتين على العنوان
0x1A. يفحص مؤلفو reticulum-tdeck ووجود CST3530 أولًا، لأن CST3530 «تستجيب بكل سرور لقراءات سجلات CST328». ويشيرون أيضًا إلى أن هذا الكود لم يُجرَّب بعد على لوحة CST3530. ويُظهر اختبار مكتبي في meshcore-firmware على T-Deck Pro V1.1 الشيء نفسه: القراءة بأسلوب CST328 استُجيب لها لكنها لم تُرجع نوع الشريحة ولا الدقة، بينما أرجعت القراءة بأسلوب CST3530 كتلة صالحة تحمل علامة0xCA 0xCAودقة اللوحة 240×320. - دراجِرات أخرى قد تدّعي العنوان
0x1A. يذكر طلب دمج مفتوح في Meshtastic أن فحص I2C خَلَط بين شريحة اللمس في T-Deck Pro وجسر DS2482-800، لأن اختبار سجل الحالة تطابق مصادفةً.
هذا نمط شائع مع وحدات تحكم اللمس الصغيرة: يبقى رقم القطعة على اللوحة كما هو بينما تتغير الشريحة. إذا كنت تصنّع بكميات، فاسأل مورّد الشاشات عن شريحة اللمس المركّبة، واطلب منه إخطارك قبل تغييرها. ويشرح قاموس EOL وPCN لدينا ما يجب أن تتضمنه إشعار التغيير.
التشغيل الأولي مع ESPHome
تتطلب منصة cst328 في ESPHome إعداد I2C، وتقبل الخيارين interrupt_pin وreset_pin. عند الإعداد تقوم بما يلي:
- ترسل نبضة على خط إعادة الضبط خفضًا لمدة 5 ms، ثم تنتظر.
- تقرأ CRC لبرنامج التشغيل وتتوقع القيمة
0xCACA. عند أي قيمة أخرى تعلّم المكوّن بأنه فاشل. - تقرأ نوع الشريحة ومعرّف المشروع ومراجعة برنامج التشغيل والدقة، ثم تحوّل الشريحة إلى الوضع العادي.
فحص CRC هو أول موضع تبحث فيه إذا أبلغ ESPHome عن فشل شاشة اللمس. يستخدم ESPHome قراءات بأسلوب CST328 مع عناوين سجلات من بايتين، وفي الاختبار المكتبي لـ meshcore-firmware لم تُرجع هذه القراءة شيئًا مفيدًا من شريحة CST3530. لذا على لوحة مزوّدة بـ CST3530 توقَّع فشل هذا الفحص. هذا استنتاج منّا: لم نجرّب ESPHome على لوحة CST3530.
دعم الدراجِرات
- ESPHome: منصة
cst328. تذكر وثائقها لوحة Waveshare ESP32-S3 Touch LCD 2.8. ولا تتوفر لها منصة خاصة بـ CST3530. - ESP-IDF: تنشر Waveshare المكوّن
esp_lcd_touch_cst328في سجل مكوّنات Espressif. وجدول توافقها يذكر CST328 فقط. - Rust: الحزمة
cst328على crates.io، وبرنامج تشغيل RS-Key لكلا الشريحتين. - دراجِر Hynitron الرسمي: تربط LilyGO مصدر
hyn_driverمن Hynitron لكلا الشريحتين.
وحدات تحكم ذات صلة
للمس بإصبع واحد على الشاشات الدائرية، راجع CST816S، وهي أيضًا من Hynitron. للوحات الأكبر بحد أقصى 5 نقاط لمس، راجع GT911.
حل المشكلات والأسئلة الشائعة لـ CST328
اللمس عمل على دفعتي الأولى من اللوحات لكنه معطّل على اللوحات الجديدة. لماذا؟
تحقّق مما إذا كانت شريحة اللمس قد تغيّرت. تقول LilyGO إن دفعات T-Deck Pro v1.1 الأحدث تستخدم CST3530 بدلًا من CST328، على العنوان نفسه 0x1A، كما أن لوحة Waveshare RP2350-Touch-LCD-2.8 V2 انتقلت أيضًا إلى CST3530. وأبلغت المشاريع التي تستخدم دراجِرًا يدعم CST328 فقط عن العَرَض نفسه: الشاشة تعمل ولا يتم تسجيل أي لمسة. لا يستطيع فحص I2C التمييز بين الشريحتين على T-Deck Pro، لذا اقرأ نوع الشريحة أو افحص بروتوكول CST3530 أولًا.
ما هو عنوان I2C لشريحة CST328؟
يذكر جدار منافذ LilyGO للوحة T-Deck Pro العنوان 0x1A، ويُدرج مشروع RS-Key العنوان 0x1A (من 7 بتات) لشريحة CST328 على لوحة Waveshare RP2350-Touch-LCD-2.8 V1. لا تفترض أن CST3530 على العنوان نفسه: فهي على 0x1A في T-Deck Pro لكن على 0x58 في RP2350-Touch-LCD-2.8 V2، وفقًا لـ RS-Key.
هل يمكن لدراجِر واحد دعم كل من CST328 وCST3530؟
نعم، إذا كشف الشريحة. تقول LilyGO إن الطراز «يجب أن يُحدَّد أثناء التهيئة» وتستخدم روتينات تهيئة منفصلة. يفحص مشروع reticulum-tdeck ووجود CST3530 أولًا، لأن CST3530 تستجيب أيضًا لقراءات سجلات CST328؛ ويقول مؤلفوها إن هذا الكود لم يُجرَّب بعد على لوحة CST3530. أما مشروع RS-Key فيختار الشريحة وقت البناء.
المصادر
- ملف README للوحة LilyGO T-Deck Pro (الاستبدال من CST328 إلى CST3530، العنوان، التهيئة، المقاطعات)
- الإصدار رقم #37 للوحة LilyGO T-Deck Pro: استبدال CST328 بشريحة CST3530
- الإصدار رقم #139 لمشروع RS-Key: RP2350-Touch-LCD-2.8 V1 تستخدم CST328 على 0x1A مقابل V2 التي تستخدم CST3530 على 0x58
- طلب الدمج رقم #138 لمشروع RS-Key: برنامج تشغيل CST3530 (بلاغ 0xD0070000، إقرار 0xD00002AB)
- الإصدار رقم #19 لمشروع reticulum-tdeck: عدم عمل اللمس في بعض وحدات T-Deck Pro v1.1
- الإصدار v1.13.0-rc1 من مشروع reticulum-tdeck: ترتيب فحص شريحة CST3530
- الإصدار رقم #2108 لمشروع meshcore-firmware: فحص اللمس في T-Deck Pro V1.1 (قراءات cst66xx مقابل cst3xx)
- طلب الدمج رقم #11952 لمشروع Meshtastic: شريحة اللمس على 0x1A تُكتشف خطأً بأنها DS2482
- وثائق شاشة اللمس CST328 في ESPHome
- الكود المصدري cst328_touchscreen.cpp في ESPHome
- ويكي لوحة Waveshare ESP32-S3-Touch-LCD-2.8
- مكوّن esp_lcd_touch_cst328 من Waveshare