جدول المحتويات:

Bus Pirate 3EEPROM Explorer Board: 5 خطوات
Bus Pirate 3EEPROM Explorer Board: 5 خطوات

فيديو: Bus Pirate 3EEPROM Explorer Board: 5 خطوات

فيديو: Bus Pirate 3EEPROM Explorer Board: 5 خطوات
فيديو: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, يوليو
Anonim
Bus Pirate 3EEPROM Explorer Board
Bus Pirate 3EEPROM Explorer Board

إذا كان لديك أحد قراصنة Hack a Day's Bus Pirates ، فماذا تفعل به؟ تعرف على المزيد حول 1-wire و I2C و SPI EEPROMs باستخدام لوحة المستكشف 3EEPROM (نسميها THR-EE-PROM). EEPROM هي نوع من شرائح الذاكرة التي تخزن البيانات بدون مصدر طاقة مستمر. إنه مفيد لتخزين البيانات بشكل دائم في دوائر تسجيل صغيرة ، أو الاحتفاظ بصفحات مخصصة في خادم ويب صغير. تأتي EEPROMs بأحجام وبروتوكولات كثيرة. تحتوي 3EEPROM على ثلاث شرائح EEPROM شائعة: DS2431 (1-Wire) و 24AA- (I2C) و 25AA- (SPI). تم عرض الثلاثة جميعًا مسبقًا على Hack a Day ، ولكن كل عرض توضيحي يستخدم إصدارًا مختلفًا من أجهزة Bus Pirate والبرامج الثابتة ، ومن الصعب على المبتدئين اتباعها باستخدام Bus Pirate v2go. تابع القراءة للحصول على دليل محدث خطوة بخطوة لاستخدام DS2431 ، 24AA- ، و 25AA- EEPROMs مع Bus Pirate v2go. لدينا أيضًا سجلات الجلسات الكاملة كملفات نصية ، لذلك لن تفوتك أي تفاصيل واحدة. ثنائي الفينيل متعدد الكلور حوالي 10 دولارات ، ومجموعات حوالي 15 دولارًا ، تُشحن في جميع أنحاء العالم. نحتاج إلى تنظيم عملية شراء جماعية من 10 مركبات ثنائي الفينيل متعدد الكلور أو 20 مجموعة للبدء. إذا كنت مهتمًا بـ Bus Pirate ، فإن الإصدار 3 قادم ، ولم أستطع تضمين بعض عناصر التنسيق وجداول HTML في Instructable ، يمكنك مشاهدة المنشور الأصلي في مدونة Dangerous Prototypes.

الخطوة 1: 3 نظرة عامة على أجهزة EEPROM

3EEPROM نظرة عامة على الأجهزة
3EEPROM نظرة عامة على الأجهزة
3EEPROM نظرة عامة على الأجهزة
3EEPROM نظرة عامة على الأجهزة
3EEPROM نظرة عامة على الأجهزة
3EEPROM نظرة عامة على الأجهزة

الهدف من هذا النموذج الأولي هو التعرف على EEPROM وثلاثة بروتوكولات ناقل مشتركة. أولاً ، ننظر إلى 3EEPROM PCB ، ثم نعرض كل EEPROM باستخدام أداة واجهة تسلسلية عالمية Bus Pirate. إذا لم يكن لديك Bus Pirate ، فلا يزال بإمكانك المتابعة لأن الترتيب الأساسي لعمليات الواجهة يظل كما هو بغض النظر عن كيفية تنفيذها. لقد صنعنا الدائرة و PCB باستخدام الإصدار المجاني من Cadsoft Eagle. يمكنك تنزيل التخطيطي وثنائي الفينيل متعدد الكلور من أرشيف Bus Pirate SVN. يحمل 3EEPROM PCB DS2431 1-Wire EEPROM (IC1) ، و 24AA- I2C EEPROM (IC4) ، و 25AA- SPI EEPROM (IC5). IC1) يستمد الطاقة بشكل طفيلي من ناقل 1-Wire ، ولا يحتوي على دبوس مزود طاقة خارجي ولا يتطلب مكثف فصل. IC2 و IC3 هما نقطتان فارغتان للأجهزة الإضافية ذات السلك الواحد ، مثل DS2431 أو مستشعر درجة الحرارة DS1822. C1 (0.01 فائق التوهج) اختياري ومطلوب فقط إذا تم ملء IC2 أو IC3 بجهاز مزود بسلك واحد. يتطلب السلك مقاومة سحب قوية ، بحد أقصى 2.2 كيلو أوم. مقاومات السحب على متن Bus Pirate هي 10 كيلو ، أضعف من أن تعمل بشكل صحيح على DS2431 أثناء الكتابة. تشتمل لوحة المستكشف 3EEPROM على مقاوم سحب 1.8 كيلو أوم ، 1/8 واط (R1) على ناقل بسلك واحد بحيث لا تكون هناك حاجة إلى مقاومة سحب إضافية. يحصل كل منهما على مكثف 0.1 فائق التوهج لفصلهما عن مصدر الطاقة (C2 ، C3). ربما لا تحتاج إلى المكثفات في مثل هذه الدائرة البسيطة ، فقد حذفناها من لوحة النموذج الأولي في العرض التوضيحي. الحافلة I2C المستخدمة من قبل 24AA - تتطلب أيضًا مقاومات سحب ، لكن مقاومات سحب 10 كيلو أوم الموجودة على متن Bus Pirate كافية ، وستعمل جميع المكونات من 2.8 فولت إلى 5 فولت تيار مستمر. يتم تشغيل الدائرة من خلال دبابيس VCC و GND الخاصة بالوصلة 3. يوجد دبابيس VCC ، أحدهما للطاقة ، والآخر لدبوس إدخال الجهد المقاوم للسحب الخاص بـ Bus Pirate (Vpullup). نسخة مجانية من Cadsoft Eagle. يمكنك تنزيل التخطيطي وثنائي الفينيل متعدد الكلور من أرشيف Bus Pirate SVN. إذا كنت ترغب في الحصول على مجموعة PCB أو 3EEPROM معدة بشكل احترافي ، فقد نتمكن من ترتيب عملية شراء جماعية إذا كان هناك 10 أو 20 شخصًا مهتمين. قائمة الأجزاء R1 1800 أوم المقاوم (1/8 واط) C2 ، 3 0.1 فائق التوهج مكثف / 10 فولت + JP1-4 0.1 رأس دبوس ذكر IC1 DS2431 1K 1-wire EEPROM TO-92IC4 ** 24AA014-I / P I2C EEPROM DIP8IC5 ** 25AA010A-I / P SPI EEPROM DIP8ICS4 ، مقبس 5 8 سنون DIP لـ IC5 ، 6 ** IC4 ، IC5 يمكن أن يكون بأي حجم ، قمنا بربط شرائح صغيرة ، استخدمنا 128 بايت و 128 كيلو بايت. لم أستطع تضمين بعض التنسيق وجداول HTML في Instructable ، يمكنك مشاهدة المنشور الأصلي في مدونة Dangerous Prototypes.

الخطوة الثانية: 25AA- / 25LC- SPI EEPROM

25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM

تبدو جميع عروض EEPROM التجريبية متشابهة إلى حد كبير. سنكتب بعض الأرقام على الشريحة ، ثم نقرأها. لكل جهاز شروط تنطبق بمجرد أن تريد كتابة أكثر من بضع قيم ، مثل حجم الصفحة وحدود الحدود. اقرأ المزيد عن هذه في ورقة البيانات الخاصة بجهازك المحدد. إذا لم تتمكن من الحصول على عرض توضيحي للعمل ، فقم بتنزيل سجل المحطة بالكامل حتى لا يفوتك أي شيء قمنا به. تعتبر مقاومات السحب هي المشكلة الأكثر شيوعًا ، تحقق من جهد دبوس السحب باستخدام القائمة 'v' في محطة Bus Pirate. رقاقة: 25AA ، SPI EEPROM (1Kbyte). مقاومات السحب مطلوبة فقط للتفاعل مع الجهد المختلط متطلبات الطاقة: 1.8 فولت إلى 5.5 فولت (AA) ، 2.5 فولت إلى 5.5 فولت (LC) المراجع: ورقة البيانات ، عرض Hack a Day ، سجل جلسة Bus Pirate الكامل لهذا العرض التوضيحي لم أتمكن من تضمين بعض التنسيقات وجداول HTML في Instructable ، يمكنك الاطلاع على النسخة الأصلية في مدونة Dangerous Prototypes. IC5 عبارة عن 25AA- سلسلة I2C EEPROM من Microchip ، هذه EEPROMs تأتي بأحجام كبيرة. تعمل أجزاء AA من 1.8 فولت إلى 5.5 فولت ، بينما تتطلب الأجزاء 25LC- 2.5 فولت كحد أدنى من المتطلبات. C3 (0.1 فائق التوهج) تفصل SPI EEPROM عن مصدر الطاقة يمكن التحكم في حماية الكتابة (WP) ودبابيس التثبيت بواسطة متحكم دقيق ، لكننا قمنا بتعطيلها عن طريق رفع هذه المسامير. يتم إحضار دبابيس ناقل SPI و CS و DO و CLK و DI إلى رأس JP4. الإعداد إذا كنت تستخدم Bus Pirate ، فقم بتوصيله بـ 3EEPROM أو 25AA- IC كما هو موضح في صورة المخطط أدناه. لا يتطلب SPI عادة مقاومات سحب. Interfacing في Bus Pirate Terminal اضغط على "m" لقائمة الوضع وحدد SPI. قم بتكوين مكتبة SPI لإخراج الدبوس العادي ، واستخدم الإعدادات الافتراضية لجميع إعدادات وضع SPI الأخرى. قم بتمكين مزودات الطاقة (كبيرة "W") في موجه وضع SPI. أخيرًا ، احصل على تقرير الجهد للتأكد من عمل مزودات الطاقة ("v") سنشرح كيفية توصيل EEPROM مباشرةً عند 3.3 فولت باستخدام مكتبة SPI في وضع الدبوس العادي. مقاومات السحب غير مطلوبة لهذا العرض التوضيحي. إذا كنت ترغب في واجهة EEPROM مدعومًا بـ 5 فولت ، فاستخدم مكتبة SPI في وضع دبوس المجمع المفتوح (HiZ) وقم بتمكين مقاومات السحب مع دبوس Vpullup (Vpu) المتصل بمصدر طاقة EEPROM. الخطوة 1 ، قم بإيقاف تشغيل الحماية ضد الكتابة 'SPI> [0b110] CS ENABLED <<< تمكين تحديد الشريحة25AA- محمي ضد الكتابة عند التشغيل. حدد الشريحة السفلية (CS) ([) ، وأرسل أمر تعطيل حماية الكتابة (0x06) ، ثم ارفع CS (]) لتمكين عمليات الكتابة إلى EEPROM. أمر تعطيل حماية الكتابة هو 0b00000110 في ثنائي ، ولكن يمكننا تقصيرها إلى 0b110 ولا يزال Bus Pirate يفهم. الخطوة 2 ، اكتب بعض القيم 'SPI> [0b10 0 3 2 1] CS ENABLED <<< تم تمكين الشريحة ، 2، 1) اكتب: 0x02WRITE: 0x01CS معطل <<الآن EEPROM قابل للكتابة. أولاً ، قم بخفض CS لتنشيط 25AA- ([). بعد ذلك ، أرسل أمر الكتابة (0x02) والموقع لبدء الكتابة (0). أرسل البيانات إلى المخزن (3 2 1) ، ثم ارفع CS (]) لحفظ القيم. ملاحظة: استخدمنا EEPROM بحجم 128 بايت ، وستستخدم الرقائق الأكبر حجمًا 16 بت (2 بايت) عنوان. سيكون هذا الأمر [0b10 0 '' '0' '' 3 2 1] بالنسبة لوحدات EEPROM الأكبر من 256 بايت ، لاحظ 0 الثاني. تحقق من ورقة البيانات الخاصة بـ EEPROM للتأكد. الخطوة 3 ، اقرأ القيم مرة أخرى SPI> [0b11 0 r: 3] CS ENABLED <<< تم تمكين الشريحة معطل <<أخيرًا ، اقرأ البيانات مرة أخرى للتحقق من نجاح الكتابة. حدد 25AA- ([) ، وأرسل الأمر read (0x03) وابدأ العنوان (0) ، ثم اقرأ ثلاث قيم (r: 3). ارفع CS لإكمال المعاملة (]). تطابق القيم ، كانت الكتابة ناجحة. ملاحظة: استخدمنا EEPROM بحجم 128 بايت ، وستستخدم الرقائق الأكبر حجمًا 16 بت (2 بايت) عنوان. سيكون هذا الأمر [0b11 0 '' 0 '' '' r: 3] لوحدات EEPROM أكبر من 256 بايت ، لاحظ 0 الثاني. تحقق من ورقة البيانات الخاصة بـ EEPROM للتأكد.

الخطوة 3: 24AA- / 24LC I2C EEPROM

24AA- / 24LC I2C إيبروم
24AA- / 24LC I2C إيبروم
24AA- / 24LC I2C إيبروم
24AA- / 24LC I2C إيبروم
24AA- / 24LC I2C إيبروم
24AA- / 24LC I2C إيبروم

رقاقة: 24AA ، I2C EEPROM (1Kbyte) ، الحافلة: I2C ، مقاومات السحب المطلوبة ، متطلبات الطاقة: 1.8 فولت إلى 5.5 فولت (24AA) ، 2.5 فولت إلى 5.5 فولت (24LC) ، المراجع: ورقة البيانات ، عرض Hack a Day. أكمل سجل جلسة Bus Pirate لهذا العرض التوضيحي. لم أستطع تضمين بعض التنسيق وجداول HTML في Instructable ، يمكنك الاطلاع على النسخة الأصلية في مدونة Dangerous Prototypes. IC4 عبارة عن سلسلة 24AA- I2C EEPROM من Microchip ، تأتي هذه EEPROMs في شكل طن من الأحجام. تعمل أجزاء AA من 1.8 فولت إلى 5.5 فولت ، بينما تتطلب الأجزاء 24LC حدًا أدنى 2.5 فولت ، ويفصل مكثف 0.1 فائق التوهج (C2) IC4 عن مصدر الطاقة. يمكن التحكم في دبوس الحماية من الكتابة (WP) من متحكم دقيق ، ولكن بالنسبة لهذا العرض التوضيحي البسيط ، نقوم بتعطيله من خلال الاتصال بالأرض. يتم إحضار دبابيس ناقل I2C ، SDA و SCL ، إلى رأس JP2. عنوان معظم 24AA EEPROMs هو 1010AAAS ، مع تحديد البتات الأربعة الأخيرة بواسطة دبابيس العنوان (A0 ، A1 ، A2) ووضع تحديد وضع القراءة / الكتابة (س). تم تأريض جميع بتات العنوان في هذا المثال ، لذا فإن عنوان الكتابة الخاص بـ EEPROM هو 10100000 (صفحة ورقة البيانات 6). الإعداد إذا كنت تستخدم Bus Pirate ، فقم بتوصيله بـ 3EEPROM أو 24AA- IC كما هو موضح في صورة المخطط أدناه. I2C عبارة عن ناقل ثنائي الاتجاه يتطلب مقاومات سحب على كلا المسامير. يمكنك استخدام مقاومات السحب الموجودة على متن Bus Pirate من خلال توصيل دبوس Vpullup (Vpu) بمصدر الطاقة 3.3 فولت وتمكينهم في الجهاز. ملاحظة التواصل: ليست كل وحدات إيبروم I2C تعمل بالطريقة نفسها. يحتوي 24AA01 الصغير ، على سبيل المثال ، على نظام أوامر وأوامر مختلف تمامًا. تأكد من التحقق من ورقة البيانات الخاصة بالشريحة الخاصة بك. اضغط على "m" في محطة Bus Pirate وحدد I2C من قائمة الوضع. قم بتمكين مصادر الطاقة (كبيرة "W") ومقاومات السحب ("p" ، الخيار 2) في موجه I2C. احصل على تقرير الجهد ('v') للتأكد من أن مزودات الطاقة قيد التشغيل وأن دبوس Vpullup متصل بجهد كهربائي. I2C> (0) <<(1) <<< استخدام ماكرو البحث عن العنوانالبحث عن مساحة عنوان I2C 7 بت. الأجهزة التي تم العثور عليها على: 0xA0 0xA1 <<نحن نعلم بالفعل أن عنوان I2C هو 10100000 ، ولكن يمكننا أيضًا استخدام ماكرو بحث Bus Pirate's I2C (1) للبحث عن 24AA-. عثر ماكرو البحث على الجهاز عند الكتابة المتوقعة (0xA0) وقراءة عناوين (0xA1). الخطوة 1 ، اكتب بعض القيم I2C> [0b10100000 0 0 3 2 1] I2C START CONDITION <<< حالة بدء I2C اكتب: 0xA0 GOT ACK: YES <<< 24AA- اكتب العنوان: 0x00 GOT ACK: YES <<< اكتب بايت العنوان 1 اكتب: 0x00 GOT ACK: YES <<< اكتب العنوان بايت 2 اكتب: 0x03 GOT ACK: YES <<< 3 قيم للكتابة (3 ، 2 ، 1) اكتب: 0x02 GOT ACK: YESWRITE: 0x01 GOT ACK: YESI2C STOP CONDITION < <ابدأ الكتابة بشرط بدء I2C ([) ، متبوعًا بعنوان الكتابة 24AA (0xa0). بعد ذلك ، أرسل عنوان 16 بت للكتابة على (0 0) والبيانات لكتابة (3 2 1). قم بإنهاء معاملة I2C بشرط التوقف (]). الخطوة 2 ، ضع مؤشر القراءة I2C> [0b10100000 0 0] I2C START CONDITION <<< حالة بدء I2C اكتب: 0xA0 GOT ACK: YES <<< 24AA- اكتب العنوان: 0x00 GOT ACK: YES <<< اكتب العنوان بايت 1 الكتابة: 0x00 حصلت على ACK: نعم <<< اكتب العنوان بايت 2I2C STOP CONDITION <<تستغرق عمليتين للقراءة من 24AA-. يقوم أحدهما بوضع مؤشر القراءة / الكتابة ، بينما يقوم الآخر بإرجاع القيم. ابدأ بشرط بدء I2C ([) وعنوان الكتابة (0xa0). أرسل عنوان 16 بت لقراءته (0 0) ، ثم شرط الإيقاف (]). لم نرسل أي بيانات للكتابة هذه المرة ، لقد وضعنا مؤشر القراءة / الكتابة مرة أخرى في بداية البيانات التي كتبناها في الخطوة 1. الخطوة 3 ، اقرأ بعض القيم I2C> [0b10100001 r: 3] I2C START CONDITION <<< شرط بدء I2C الكتابة: 0xA1 GOT ACK: YES <<< 24AA- اقرأ العنوانالخطوة 2 اضبط مؤشر القراءة / الكتابة على بداية البيانات التي نريد قراءتها. الآن يمكننا قراءة البيانات باستخدام عنوان القراءة 24AA. ابدأ بشرط البدء I2C ([) وعنوان القراءة 24AA (0xa1). اقرأ القيم الثلاث التي كتبناها في الخطوة 1 (ص: 3) ، وانتهى بشرط التوقف (]). إذا كانت القيم متطابقة ، فهذا يعني أن كتابتك كانت ناجحة.

الخطوة 4: DS2431 1-Wire EEPROM

DS2431 1-سلك EEPROM
DS2431 1-سلك EEPROM
DS2431 1-سلك EEPROM
DS2431 1-سلك EEPROM
DS2431 1-سلك EEPROM
DS2431 1-سلك EEPROM

الرقاقة: DS2431 ، 1-wire EEPROM (1Kbyte) ، الحافلة: 1-Wire ، <2.2Kohm مطلوب مقاومة سحب ، متطلبات الطاقة: 2.8 فولت إلى 5.25 فولت ، المراجع: ورقة البيانات ، عرض Hack a Day ، سجل جلسة Bus Pirate الكامل لهذا العرض التوضيحي ، لم أتمكن من تضمين بعض التنسيق وجداول HTML في Instructable ، يمكنك الاطلاع على النسخة الأصلية في مدونة Dangerous Prototypes. يستمد DS2431 الطاقة من مقاومة السحب ولا يحتاج إلى مصدر خارجي أو مكثف فصل. يحتاج السلك الأول إلى مقاومة سحب قوية ، بحد أقصى 2.2 كيلو أوم. مقاومات السحب على متن Bus Pirate هي 10 كيلو ، أضعف من أن تعمل بشكل صحيح على DS2431 أثناء الكتابة. يجب استخدام مقاوم خارجي 2.2 كيلو أوم أو أصغر بين الطاقة ودبوس ناقل السلك الواحد. إذا كنت تواجه صعوبات في كتابة البيانات ، فتأكد من أن المقاوم للسحب كبير بما يكفي. تشتمل لوحة المستكشف 3EEPROM على مقاوم سحب 1800 أوم (R1) على ناقل بسلك واحد ، لذلك لا حاجة إلى أي مقاوم خارجي. الإعداد إذا كنت تستخدم Bus Pirate ، فقم بتوصيله بلوحة 3EEPROM أو DS2431 كما هو موضح في صورة المخطط أدناه. لا يتطلب DS2431 دبوس إمداد الطاقة ، فهو يستخدم على لوحة 3EEPROM لتشغيل مقاوم السحب الكبير للحافلة ذات الأسلاك الواحدة. التواصل اضغط على "m" في محطة Bus Pirate وحدد وضع 1-Wire. قم بتمكين مصادر الطاقة الموجودة على اللوحة (كبيرة "W") وتحقق من مراقب الجهد (v). الخطوة 1 ، ابحث عن عنوان الجهاز 1-WIRE> (0xf0) <<< 1-Wire search macro 1WIRE ROM COMMAND: SEARCH (0xF0) الأجهزة الموجودة في: Macro 1WIRE address1.0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B <<< DS2431 معرف فريد * DS2431 1K EEPROM <<يحتوي كل جهاز مكون من سلك واحد على معرف 8 بايت فريد. يحتوي 1-Wire على إجراء بحث يكتشف معرف جميع الأجهزة المتصلة. يقوم Bus Pirate بتنفيذ بحث 1-Wire باعتباره ماكرو (240). اكتب '(240)' في Bus Pirate Terminal لبدء البحث بسلك واحد. تتم طباعة عنوان كل جهاز ، ويتم تحديد الأجهزة المعروفة. يتم تخزين أول عشرة عناوين لجهاز أحادي السلك كوحدات ماكرو ، في هذا المثال ، يتوفر عنوان DS2431 الخاص بنا عن طريق كتابة "(1)" في الجهاز. الخطوة 2 ، اكتب 8 بايت على لوحة التسويد 1-WIRE> (0x55) (1) 0x0f 0 0 8 7 6 5 4 3 2 11WIRE BUS RESET OK <<< أيضًا {command 1WIRE WRITE ROM COMMAND: MATCH (0x55) * اتبع مع عنوان 64 بت 1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B 'WRITE: 0x0F <<< DS2431 اكتب أمر لوحة التسويد WRITE: 0x00 <<< DS2431 كتابة العنوان بايت 1 WRITE: 0x00 <<< DS2431 كتابة العنوان بايت 2WRITE: 0x08 <<بعد ذلك سنكتب 8 بايت إلى موقع مؤقت في DS2431 يسمى لوحة التسويد. ابدأ المعاملة بإعادة تعيين ناقل بسلك واحد وأمر MATCH (0x55). كلاهما متاح كماكرو '(0x55)'. يمكن القيام بذلك أيضًا بدون ماكرو عن طريق كتابة '{0x55' ، {يرسل إعادة تعيين سلك واحد ، 0x55 هو الأمر 1-Wire MATCH. بعد أمر MATCH ، أرسل معرف 8 بايت للجهاز إلى العنوان. استخدمنا الماكرو (1) الذي تم ملؤه بمعرف DS2431 في الخطوة 1. يمكنك أيضًا إدخال معرف 8 بايت يدويًا. في هذه المرحلة ، يجب أن يكون DS2431 قد تلقى عنوانه وأن يكون جاهزًا للأوامر. 0x0f هو أمر كتابة لوحة التسويد ، ويخبر DS2431 بتوقع البيانات. يخبرها البايتان التاليان بمكان وضع البيانات ، وسنقوم بحفظها في البداية (0 0). أخيرًا ، نرسل 8 بايت من القيم لتخزين الأرقام من 8 إلى 1 ، يجب عليك كتابة 8 بايت كاملة إلى DS2431. بالإضافة إلى ذلك ، يجب أن يكون عنوان الكتابة على حد 8 بايت. راجع ورقة البيانات للحصول على نظرة عامة كاملة حول قيود الكتابة. الخطوة 3 ، تحقق من لوحة التسويد واحصل على رمز التفويض 1-WIRE> (0x55) (1) 0xaa r: 3 r: 8 r: 2 r: 21WIRE BUS RESET OK <<< حدد عنوان device1WIRE WRITE ROM COMMAND: MATCH (0x55) * تابع مع عنوان 64 بت 1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<< اقرأ لوحة البداية للقراءة 0x03 BYTES: <<< رمز التفويض 0x00 0x00 0x07BULK نقرأ 0x08 BYTES: << البيانات 0x07 0x06 0x05 0x04 0x03 0x02 0x01BULK READ 0x02 BYTES: <<< CRC للبيانات 0xC8 0x86BULK READ 0x02 BYTES: <<تحقق من استلام البيانات بشكل صحيح ، واحصل على رمز تفويض الكتابة. ابدأ مرة أخرى بإعادة تعيين سلك واحد وماكرو الأمر MATCH (0x55) ، وماكرو عنوان الجهاز (1). هذه المرة أرسل الأمر DS2431 لقراءة لوحة التسويد (0xAA) ، ثم اقرأ ما مجموعه 15 بايت. أول 3 بايتات للقراءة (r: 3) هي رمز تفويض الكتابة ، سنحتاجها في الخطوة التالية لنسخ خدش إلى EEPROM. يجب أن تطابق 8 بايت التالية (r: 8) البيانات التي أرسلناها في الخطوة 2. آخر 2 بايت (r: 2) عبارة عن CRC16 للبيانات. يقرأ بعد إرجاع اتفاقية حقوق الطفل جميع 1s. الخطوة 4 ، اكتب لوحة التسويد إلى EEPROM 1-WIRE> (0x55) (1) 0x55 0x00 0x00 0x071WIRE BUS RESET OK <<< حدد device1WIRE WRITE ROM COMMAND: MATCH (0x55) * اتبعه بعنوان 64 بت 1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0x55 <<< نسخ أمر الوسادة EEPROM: قم بتوجيه الجهاز ، ثم أرسل الأمر DS2431 نسخة لوحة التسويد (0x55) متبوعًا برمز التفويض المكون من ثلاثة بايت الذي استردناه في الخطوة 3 (0x00 0x00 0x07). إذا كان كود التفويض صحيحًا ، يتم نقل البيانات إلى ذاكرة EEPROM. الخطوة 5 ، تحقق من كتابة لوحة التسويد 1-WIRE> (0x55) (1) 0xaa r: 31WIRE BUS RESET OK <<< حدد عنوان device1WIRE WRITE ROM COMMAND: MATCH (0x55) * اتبع مع عنوان 64 بت 1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<< قراءة أمر لوحة التسويد ، قراءة كبيرة 0x03 BYTES: 0x00 0x00 0x87 <<يقوم DS2431 بتعيين الحد الأقصى من البت في رمز ترخيص الكتابة بعد أمر نسخ لوحة خدش ناجح. أرسل أمر لوحة خدش قراءة آخر (0xAA) للحصول على رمز التفويض المحدث ، ولكن فقط اقرأ البايتات الثلاثة الأولى (r: 3). تم تغيير القيمة السابقة 0x07 إلى 0x87 ، وتم استلام الأمر copy بنجاح.الخطوة 6 ، أعد قراءة القيم 1-WIRE> (0x55) (1) 0xf0 0x00 0x00 r: 8 r: 81WIRE BUS RESET OK <<< قم بتوجيه device1WIRE WRITE ROM COMMAND: MATCH (0x55) * اتبع مع عنوان 64 بت 1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xF0 <<< قراءة DS2431 كتابة الأمر: 0x00 <<< 2 بايت قراءة العنوان 0x08 بايت: <<تحقق من أن الكتابة عملت بشكل صحيح عن طريق استرجاع القيم. قم بتوجيه DS2431 ، ثم أرسل الأمر read (0xf0) والعنوان المراد قراءته من (0x00 0x00) ، ومن الممكن قراءة نطاق الذاكرة بالكامل باستخدام أمر واحد. قرأنا البايتات الثمانية التي كتبناها سابقًا (ص: 8) ، والتي أعادت القيم المتوقعة. لم تتم كتابة الثمانية بايت خارج هذه القيم وإرجاع 0.

الخطوة 5: الخاتمة

استنتاج
استنتاج

الخلاصة: يعلم هذا النموذج الأولي عن ذاكرة EEPROM ، ويوضح كيفية استخدام Bus Pirate مع ثلاثة بروتوكولات شائعة: 1-Wire و I2C و SPI. تضمن لوحة المستكشف 3EEPROM التوصيلات المناسبة لكل EEPROM ، وتوفر مقاومة سحب خارجية لـ الحافلة ذات الأسلاك الواحدة الأكثر تطلبًا والمزودة بمكونات تعمل بالطاقة الطفيلية.يمكننا الحصول على 3EEPROM explorer board PCBs or kits المنتجة في Seeed Studio. ثنائي الفينيل متعدد الكلور حوالي 10 دولارات ، ومجموعات حوالي 15 دولارًا ، تُشحن في جميع أنحاء العالم. نحتاج إلى تنظيم عملية شراء جماعية من 10 ثنائي الفينيل متعدد الكلور أو 20 مجموعة للبدء.

موصى به: