فهرست مطالب:

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 را دارید ، با آن چه می کنید؟ با بورد اکسپلورر 3EEPROM (که ما آن را THR-EE-PROM می نامیم) در مورد 1 سیم ، I2C و SPI EEPROM اطلاعات کسب کنید. EEPROM یک نوع تراشه حافظه است که داده ها را بدون منبع تغذیه مداوم ذخیره می کند. برای ذخیره دائمی داده ها در مدارهای چوب کوچک یا نگهداری صفحات سفارشی در سرور وب کوچک مفید است. EEPROM ها دارای اندازه ها و پروتکل های زیادی هستند. 3EEPROM دارای سه تراشه رایج EEPROM است: DS2431 (1-Wire) ، 24AA- (I2C) و 25AA- (SPI). هر سه مورد قبلاً در Hack a Day نشان داده شده بود ، اما هر نسخه نمایشی از نسخه متفاوتی از سخت افزار و سیستم عامل Bus Pirate استفاده می کند ، استفاده از Bus Pirate v2go برای مبتدیان دشوار است. برای راهنمای به روز و گام به گام استفاده از خواندن را ادامه دهید DS2431 ، 24AA- ، و 25AA- EEPROM با Bus Pirate v2go. ما همچنین گزارشات کامل جلسه را به عنوان فایل های متنی دریافت کرده ایم تا هیچ جزئی را از دست ندهید. ما می توانیم PCE یا کیت های کاوشگر 3EEPROM تولید شده در Seeed Studio را داشته باشیم. PCB ها حدود 10 دلار ، کیت ها حدود 15 دلار ، به سراسر جهان ارسال می شوند. برای شروع باید یک خرید گروهی از 10 PCB یا 20 بسته را سازماندهی کنیم. اگر به Bus Pirate علاقه دارید ، نسخه 3 در راه است. من نمی توانم برخی از عناصر قالب بندی و جداول HTML را در دستورالعمل قرار دهم ، می توانید پست اصلی را در وبلاگ نمونه های خطرناک مشاهده کنید.

مرحله 1: 3EEPROM بررسی سخت افزار

3EEPROM بررسی سخت افزار
3EEPROM بررسی سخت افزار
3EEPROM بررسی سخت افزار
3EEPROM بررسی سخت افزار
3EEPROM بررسی سخت افزار
3EEPROM بررسی سخت افزار

هدف از این نمونه اولیه ، یادگیری EEPROM و سه پروتکل اتوبوس رایج است. ابتدا به PCB 3EEPROM نگاه می کنیم ، سپس هر EEPROM را با استفاده از ابزار رابط سریال جهانی Bus Pirate نشان می دهیم. اگر یک دزد دریایی Bus ندارید ، همچنان می توانید این کار را انجام دهید زیرا ترتیب اصلی عملیات رابط بدون توجه به نحوه اجرای آنها یکسان است. شماتیک اندازه کلی Circuit [PNG]. ما مدار و PCB را با استفاده از نسخه رایگان Cadsoft Eagle ساختیم. شما می توانید شماتیک و PCB را از بایگانی Bus Pirate SVN بارگیری کنید. PCE 3EEPROM دارای DEP2431 1-Wire EEPROM (IC1) ، 24AA-I2C EEPROM (IC4) و 25AA-SPI EEPROM (IC5) است. DS2431 (IC1) به صورت انگلی از گذرگاه 1-Wire نیرو می گیرد ، پین منبع تغذیه خارجی ندارد و نیازی به خازن جدا کننده ندارد. IC2 و IC3 نقاط خالی برای دستگاه های 1-Wire دیگر ، مانند DS2431 دیگر یا سنسور دما DS1822 هستند. C1 (0.01uF) اختیاری است و تنها در صورتی مورد نیاز است که IC2 یا IC3 دارای یک دستگاه 1-Wire قدرتمند باشند. 1-Wire نیاز به یک مقاومت کششی قوی ، حداکثر 2.2K اهم دارد. مقاومتهای کششی Bus Pirate 10K هستند ، بسیار ضعیف هستند تا بتوانند در حین نوشتن به درستی DS2431 را تغذیه کنند. برد کاوشگر 3EEPROM شامل 1.8k اهم ، مقاومت 1/8 وات (R1) در گذرگاه 1-Wire است به طوری که نیازی به مقاومت کششی اضافی نیست. 24AA- (IC4) و 25AA- (IC5) هر کدام یک خازن 0.1uF برای جدا کردن آنها از منبع تغذیه (C2 ، C3) دریافت می کنند. شما احتمالاً در چنین مدار ساده ای نیازی به خازن ها ندارید ، ما آنها را از تخته نمونه اولیه در تظاهرات حذف کردیم. گذرگاه I2C مورد استفاده توسط 24AA- همچنین نیاز به مقاومت های کششی دارد ، اما مقاومت های کششی 10K اهم Bus Pirate کافی است. همه قطعات از 2.8 ولت تا 5 ولت DC کار می کنند. مدار از طریق پینهای VCC و GND بلوز 3 تغذیه می شود. دو پین VCC وجود دارد ، یکی برای تغذیه و دیگری برای پین ورودی ولتاژ مقاومت (Vpullup) مقاوم در برابر Bus Pirate است. PCB ما مدار و PCB را با استفاده از نسخه رایگان Cadsoft Eagle. می توانید شماتیک و PCB را از بایگانی Bus Pirate SVN بارگیری کنید. اگر مایلید یک PCB یا کیت 3EEPROM که به طور حرفه ای تهیه شده است بخواهید ، در صورت تمایل 10 یا 20 نفر می توانیم خرید گروهی ترتیب دهیم. لیست قطعات R1 1800 اهم مقاومت (1/8 وات) C2 ، 3 خازن 0.1uF/10 ولت+JP1-4 0.1 اینچ هدر پین مردانه IC1 DS2431 1K 1 سیم 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 را شامل شود در یک دستورالعمل ، می توانید پست اصلی را در وبلاگ نمونه های خطرناک مشاهده کنید.

مرحله 2: 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 بررسی کنید. Chip: 25AA، SPI EEPROM (1Kbyte). اتوبوس: SPI. مقاومت های کششی فقط برای رابط ولتاژ مخلوط مورد نیاز است. نیازهای تغذیه: 1.8 ولت تا 5.5 ولت (AA) ، 2.5 ولت تا 5.5 ولت (LC). منابع: برگه داده ، تظاهرات هک یک روزه. گزارش جلسه دزدان دریایی اتوبوس کامل برای این نمایش. من نمی توانم برخی از قالب بندی و جداول HTML را در دستورالعمل قرار دهم ، شما می توانید اصل آن را در وبلاگ Prototypes Dangerous مشاهده کنید. IC5 یک سری IA2C از سری 25AA EEPROM از Microchip است ، این EEPROM ها در اندازه های زیادی وجود دارند. قطعات AA از 1.8 ولت تا 5.5 ولت کار می کنند ، در حالی که قطعات 25LC دارای حداقل ولتاژ 2.5 ولت هستند. C3 (0.1uF) SPI EEPROM را از منبع تغذیه جدا می کند. پین های نوشتن (WP) و نگهدارنده را می توان توسط میکروکنترلر کنترل کرد ، اما با بالا نگه داشتن این پین ها آنها را غیرفعال کردیم. پین های گذرگاه SPI ، CS ، DO ، CLK و DI به سرصفحه JP4 آورده می شوند. راه اندازی اگر از Bus Pirate استفاده می کنید ، آن را مانند تصویر نمودار زیر به 3EEPROM یا 25AA-IC وصل کنید. SPI معمولاً نیازی به مقاومت های کششی ندارد. رابط در ترمینال Bus Pirate 'm' را برای منوی حالت فشار داده و SPI را انتخاب کنید. کتابخانه SPI را برای خروجی پین معمولی پیکربندی کنید ، از پیش فرض ها برای سایر تنظیمات حالت SPI استفاده کنید. منبع تغذیه (بزرگ "W") را در اعلان حالت SPI فعال کنید. در نهایت ، یک گزارش ولتاژ دریافت کنید تا مطمئن شوید منبع تغذیه در حال کار است ('v'). ما قصد داریم نحوه اتصال مستقیم EEPROM را با 3.3 ولت با استفاده از کتابخانه SPI در حالت پین معمولی نشان دهیم. برای این نسخه ی نمایشی ، مقاومت کششی لازم نیست. اگر می خواهید با EEPROM با 5 ولت ارتباط برقرار کنید ، از کتابخانه SPI در حالت پین جمع کننده باز (HiZ) استفاده کنید و مقاومت های کششی را با پین Vpullup (Vpu) متصل به منبع تغذیه EEPROM فعال کنید. مرحله 1 ، خاموش کردن نوشتن-حفاظت 'SPI> [0b110] CS ENABLED << تراشه را فعال کنید < / font> 0x06 <<< غیرفعال کردن دستور نوشتن حفاظت25AA- هنگام روشن شدن از نوشتن محافظت می کند. تراشه پایینی را انتخاب کنید (CS) ([) ، فرمان غیرفعال نوشتن محافظت (0x06) را ارسال کنید و سپس CS (] را بالا ببرید تا نوشتن به EEPROM فعال شود. فرمان disable write write 0b00000110 به صورت باینری است ، اما می توانیم آن را کوتاه کنیم 0b110 و دزد دریایی اتوبوس هنوز می فهمد. مرحله 2 ، برخی مقادیر را بنویسید 'SPI> [0b10 0 3 2 1] CS ENABLED <<< chip select enabledWRITE: 0x02 <<< دستور نوشتن نوشتن: 0x00 <<< نوشتن آدرس شروع نوشتن: 0x03 <<< 3 مقدار برای نوشتن (3 ، 2 ، 1) نوشتن: 0x02 نوشتن: 0x01CS غیرفعال <<در حال حاضر EEPROM قابل نوشتن است. ابتدا CS را پایین بیاورید تا 25AA- ([) فعال شود. بعد ، دستور نوشتن (0x02) و محل شروع نوشتن (0) را ارسال کنید. داده ها را برای ذخیره ارسال کنید (3 2 1) ، سپس CS (]) را برای ذخیره مقادیر بالا ببرید. توجه: ما از EEPROM کوچک 128 بیتی استفاده کردیم ، تراشه های بزرگتر از آدرس 16 بیت (2 بایت) استفاده می کنند. این فرمان برای EEPROM های بزرگتر از 256 بایت [0b10 0 '' '0' '' 3 2 1] خواهد بود ، به 0. دوم توجه داشته باشید. برای اطمینان از اطمینان ، برگه اطلاعات EEPROM خود را بررسی کنید. مرحله 3 ، خواندن مقادیر SPI> [0b11 0 r: 3] CS ENABLED << تراشه فعال است فعال < / b> نوشتن: 0x03 <<< خواندن فرمان نوشتن: 0x00 <<< خواندن آدرس شروع BULK READ 0x03 BYTES: <<< خواندن 3 مقدار0x03 0x02 0x01CS معلول <<در نهایت ، داده ها را بخوانید تا مطمئن شوید که نوشتن موفق بوده است. 25AA- ([) را انتخاب کنید ، دستور read (0x03) و آدرس شروع (0) را ارسال کنید و سپس سه مقدار (r: 3) را بخوانید. برای تکمیل معامله CS را بالا ببرید (]). ارزشها مطابقت دارند ، نوشتن با موفقیت انجام شد. توجه: ما از EEPROM کوچک 128 بیتی استفاده کردیم ، تراشه های بزرگتر از آدرس 16 بیت (2 بایت) استفاده می کنند. این دستور برای EEPROM های بزرگتر از 256bytes [0b11 0 '' '' '' 'r: 3] خواهد بود ، به 0. دوم توجه داشته باشید. برای اطمینان از اطمینان ، برگه اطلاعات EEPROM خود را بررسی کنید.

مرحله 3: 24AA- / 24LC I2C EEPROM

24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM

تراشه: 24AA ، I2C EEPROM (1Kbyte). اتوبوس: I2C ، مقاومت های کششی مورد نیاز است. نیازهای برق: 1.8 ولت تا 5.5 ولت (24AA) ، 2.5 ولت تا 5.5 ولت (24LC). منابع: برگه اطلاعات ، تظاهرات هک یک روزه. گزارش کامل جلسه دزدان دریایی برای این نمایش. من نمی توانم برخی از قالب بندی و جداول HTML را در دستورالعمل قرار دهم ، می توانید اصل آن را در وبلاگ نمونه های خطرناک مشاهده کنید. IC4 یک سری I2C EEPROM 24AA از Microchip است ، این EEPROM ها در تن اندازه ها قطعات AA از 1.8 ولت تا 5.5 ولت کار می کنند ، در حالی که قطعات 24LC دارای حداقل نیاز 2.5 ولت هستند. یک خازن 0.1uF (C2) IC4 را از منبع تغذیه جدا می کند. پین محافظت از نوشتن (WP) را می توان از طریق میکروکنترلر کنترل کرد ، اما برای این نمایش ساده ما آن را با اتصال به زمین غیرفعال می کنیم. پین های گذرگاه I2C ، SDA و SCL ، به سرصفحه JP2 آورده می شوند. آدرس اکثر 24AA EEPROM ها 1010AAAS است ، با چهار بیت نهایی توسط پین های آدرس (A0 ، A1 ، A2) و بیت انتخاب حالت خواندن/نوشتن (S). تمام بیت های آدرس در این مثال پایه گذاری شده اند ، بنابراین آدرس نوشتن EEPROM 10100000 است (صفحه داده صفحه 6). راه اندازی اگر از Bus Pirate استفاده می کنید ، آن را مانند تصویر نمودار زیر به 3EEPROM یا 24AA-IC وصل کنید. I2C یک گذرگاه دو طرفه است که به مقاومت های کششی در هر دو پایه نیاز دارد. با اتصال پین Vpullup (Vpu) به منبع تغذیه 3.3 ولت و فعال کردن آنها در ترمینال ، می توانید از مقاومت های کششی Bus Pirate از روی برد استفاده کنید. توجه به رابط: همه I2C EEPROM ها یکسان عمل نمی کنند. به عنوان مثال ، 24AA01 کوچک دارای سیستم آدرس دهی و فرمان کاملاً متفاوتی است. حتماً برگه اطلاعات تراشه خود را بررسی کنید. 'm' را در ترمینال Bus Pirate فشار دهید و I2C را از منوی حالت انتخاب کنید. منبع تغذیه (بزرگ "W") و مقاومت های کششی ("p" ، گزینه 2) را در پیام I2C فعال کنید. برای اطمینان از روشن بودن منبع تغذیه و اتصال پین Vpullup به ولتاژ ، یک گزارش ولتاژ ('v') دریافت کنید. I2C> (0) <<(1) <<< از ماکرو جستجوی آدرس استفاده کنید جستجو در آدرس آدرس 7bit I2C. دستگاه های موجود در: 0xA0 0xA1 <<ما قبلاً می دانیم که آدرس I2C 10100000 است ، اما ما همچنین می توانیم از ماکرو جستجوی Bus Pirate's I2C (1) برای جستجوی 24AA- استفاده کنیم. ماکرو جستجو دستگاه را در آدرس های مورد انتظار نوشتن (0xA0) و خواندن (0xA1) پیدا کرد. مرحله 1 ، مقادیری را بنویسید I2C> [0b10100000 0 0 3 2 1] I2C شرایط شروع <<< I2C شرط شروع نوشتن: 0xA0 دریافت ACK: بله <<< 24AA- آدرس نوشتن نوشتن: 0x00 دریافت ACK: YES <<< نوشتن آدرس بایت 1WRITE: 0x00 GOT ACK: YES <<< بنویسید آدرس بایت 2WRITE: 0x03 GOT ACK: YES <<< 3 مقدار برای نوشتن (3 ، 2 ، 1) WRITE: 0x02 GOT ACK: YESWRITE: 0x01 GOT ACK: YESI2C STOP CONTITION < <نوشتن را با شرط شروع I2C ([) ، و سپس آدرس نوشتن 24AA (0xa0) شروع کنید. سپس ، آدرس 16bit را برای نوشتن در (0 0) و داده ها را برای نوشتن (3 2 1) ارسال کنید. معامله I2C را با شرط توقف (]) خاتمه دهید. مرحله 2 ، نشانگر خوانده شده I2C> [0b10100000 0 0] I2C شروع وضعیت <<< I2C شروع وضعیت نوشتن: 0xA0 دریافت ACK: بله <<< 24AA- آدرس نوشتن نوشتن: 0x00 دریافت ACK: YES <<< نوشتن آدرس بایت 1WRITE: 0x00 GOT ACK: YES <<< بنویسید آدرس بایت 2I2C STOP CONDITION <<برای خواندن از 24AA- دو عملیات انجام می شود. یکی نشانگر خواندن/نوشتن را قرار می دهد ، دیگری مقادیر را برمی گرداند. با شرط شروع I2C ([) و آدرس نوشتن (0xa0) شروع کنید. آدرس 16bit را برای خواندن (0 0) و سپس شرط توقف (]) ارسال کنید. ما این بار هیچ داده ای برای نوشتن ارسال نکردیم ، فقط نشانگر خواندن/نوشتن را در ابتدای داده هایی که در مرحله 1 نوشتیم قرار دادیم. مرحله 3 ، برخی مقادیر را بخوانید <<< I2C وضعیت شروعمرحله 2 نشانگر خواندن/نوشتن را در ابتدای داده هایی که می خواهیم بخوانیم تنظیم می کنیم. اکنون می توانیم داده ها را با استفاده از آدرس خوانده شده 24AA بخوانیم. با شرط شروع I2C ([) و آدرس خواندن 24AA (0xa1) شروع کنید. سه مقداری را که در مرحله 1 نوشتیم (r: 3) بخوانید و با شرط توقف (]) پایان دهید. اگر مقادیر مطابقت داشته باشند ، نوشتن شما موفقیت آمیز بوده است.

مرحله 4: DS2431 1-Wire EEPROM

DS2431 1-Wire EEPROM
DS2431 1-Wire EEPROM
DS2431 1-Wire EEPROM
DS2431 1-Wire EEPROM
DS2431 1-Wire EEPROM
DS2431 1-Wire EEPROM

تراشه: DS2431 ، 1 سیم EEPROM (1Kbyte). اتوبوس: 1-Wire ، <2.2Kohm pull-up resistor مورد نیاز. قدرت مورد نیاز: 2.8 ولت تا 5.25 ولت. منابع: برگه داده ، تظاهرات هک یک روزه برای این تظاهرات. من نمی توانم برخی از قالب بندی و جداول HTML را در یک دستورالعمل قرار دهم ، می توانید اصل را در وبلاگ Prototypes Dangerous مشاهده کنید. DS2431 از مقاومت کششی نیرو می گیرد و نیازی به منبع خارجی یا خازن جداسازی ندارد به 1-Wire به یک مقاومت کششی قوی ، حداکثر 2.2 کیلو اهم نیاز دارد. مقاومتهای کششی Bus Pirate 10K هستند ، بسیار ضعیف هستند تا بتوانند در حین نوشتن به درستی DS2431 را تغذیه کنند. بین قدرت و پین گذرگاه 1-Wire باید از مقاومت خارجی 2.2 کیلو اهم یا کوچکتر استفاده کنید. اگر در نوشتن داده ها مشکل دارید ، مطمئن شوید مقاومت کششی شما به اندازه کافی بزرگ است. برد کاوشگر 3EEPROM شامل یک مقاومت 1800 اهم (R1) در گذرگاه 1-Wire است ، بنابراین نیازی به مقاومت خارجی نیست. راه اندازی اگر از Bus Pirate استفاده می کنید ، آن را مطابق تصویر نمودار زیر به برد 3EEPROM یا DS2431 وصل کنید. DS2431 نیازی به پین منبع تغذیه ندارد ، از آن روی برد 3EEPROM برای تغذیه مقاومت کششی بزرگ برای گذرگاه 1-Wire استفاده می شود. Interfacing '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 <<هر دستگاه 1-Wire دارای یک شناسه 8 بایت منحصر به فرد است. 1-Wire دارای یک روش جستجو است که شناسه همه دستگاه های متصل را تشخیص می دهد. دزد دریایی اتوبوس جستجوی 1-Wire را به صورت ماکرو (240) پیاده سازی می کند. برای شروع جستجوی 1-Wire ، "(240)" را در ترمینال Bus Pirate تایپ کنید. هر آدرس دستگاه چاپ می شود ، دستگاه های شناخته شده مشخص می شوند. ده آدرس دستگاه 1-Wire اول به صورت ماکرو ذخیره می شوند ، در این مثال آدرس DS2431 ما با تایپ کردن '(1)' در ترمینال در دسترس است. مرحله 2 ، 8 بایت به خط خراش 1-WIRE> (0x55) (1) 0x0f 0 0 8 7 6 5 4 3 2 11WIRE BUS RESET OK <<< همچنین {فرمان 1WIRE WRITE ROM COMMAND: MATCH (0x55) * دنبال کنید با آدرس 64 بیت: 0x08 <<در مرحله بعد ، ما 8 بایت را در مکانی موقت در DS2431 به نام اسکرچ پد می نویسیم. با یک ریست گذرگاه 1-Wire و فرمان MATCH (0x55) تراکنش را شروع کنید. هر دو به صورت ماکرو '(0x55)' در دسترس هستند. این کار را نیز می توان بدون تایپ کردن "{0x55" ، {0x55 تنظیم مجدد ارسال می کند ، 0x55 دستور 1-Wire MATCH است. پس از فرمان MATCH ، شناسه 8 بایت دستگاه را به آدرس ارسال کنید. ما در مرحله 1 از ماکرو (1) که با شناسه DS2431 پر شده بود استفاده کردیم. همچنین می توانید شناسه 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 <<< آدرس دستگاه 0x55) *دنبال آدرس 64bit 0x07 0x06 0x05 0x04 0x03 0x02 0x01 خواندن دسته ای 0x02 بیت: <<< CRC برای داده ها 0xC8 0x86 خواندن دسته جمعی 0x02 BYTES: <<تأیید کنید که داده ها به درستی دریافت شده اند و یک کد مجوز نوشتن دریافت کنید. مجدداً با تنظیم مجدد 1-Wire و ماکرو فرمان MATCH (0x55) و آدرس دستگاه دستگاه (1) شروع کنید. این بار دستور DS2431 read scratch pad (0xAA) را ارسال کنید ، و سپس در کل 15 بایت را بخوانید. 3 بایت اول خوانده شده (r: 3) کد مجوز نوشتن است ، در مرحله بعد برای کپی کردن به آن نیاز داریم. صفحه خراش به EEPROM 8 بایت بعدی (r: 8) باید با داده هایی که در مرحله 2 ارسال کردیم مطابقت داشته باشد. 2 بایت نهایی (r: 2) یک CRC16 برای داده ها است. بعد از CRC همه 1 ها را برمی گرداند. مرحله 4 ، پد خط خطی را در EEPROM 1-WIRE> (0x55) (1) 0x55 0x00 0x00 0x071WIRE BUS RESET OK << آدرس دستگاه 1WIRE WRITE ROM COMMAND: MATCH (0x55) *با آدرس 64 بیتی دنبال کنید 1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0x55 <<< copy scratch pad commandWRITE: 0x00 <<< 3 بایت کد مجوز از مرحله 3 نوشتن: 0x00WRITE: 0x071-WIRE> ما همه چیز را برای ذخیره دائمی پد خراش در اختیار داریم EEPROM. دستگاه را آدرس دهید ، سپس دستور DS2431 scratch pad pad (0x55) و سپس کد مجوز سه بایت را که در مرحله 3 (0x00 0x00 0x07) بازیابی کردیم ارسال کنید. اگر کد مجوز صحیح باشد ، داده ها به EEPROM منتقل می شوند. مرحله 5 ، تأیید کنید که خط خش 1-WIRE> (0x55) (1) 0xaa r: 31WIRE BUS RESET OK <<< آدرس دستگاه را 1 تنظیم کنید 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<< خواندن دستور خط خش BULK READ 0x03 BYTES: 0x00 0x00 0x87 <<DS2431 بالاترین قسمت بیت کد مجوز نوشتن را پس از یک دستور موفقیت آمیز کپی اسکرچ پد تنظیم می کند. برای دریافت کد مجوز به روز شده ، دستور خواندن نوار صفحه (0xAA) دیگری را ارسال کنید ، اما فقط سه بایت اول را بخوانید (r: 3). مقدار قبلی 0x07 به 0x87 تغییر کرده است ، فرمان کپی با موفقیت دریافت شد.مرحله 6 ، مقادیر 1-WIRE> (0x55) (1) 0xf0 0x00 0x00 r: 8 r: 81 WIRE BUS RESET OK <<< آدرس دستگاه را بخوانید OK <<< آدرس دستگاه 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xF0 <<< DS2431 read commandWRITE: 0x00 <<< 2 بایت آدرس خوانده شده 0x08 بایتر: <<با بازیابی مقادیر ، نوشتن را به درستی کار کنید. آدرس DS2431 را وارد کنید ، سپس دستور خواندن (0xf0) و آدرس را برای خواندن از (0x00 0x00) ارسال کنید. امکان خواندن کل محدوده حافظه با یک فرمان وجود دارد. ما هشت بایت را که قبلاً نوشتیم (r: 8) ، که مقادیر مورد انتظار را برمی گرداند ، می خوانیم. هشت بایت فراتر از این مقادیر نوشته نشده اند و 0 را برمی گردانند.

مرحله 5: نتیجه گیری

نتیجه
نتیجه

این نمونه اولیه در مورد حافظه EEPROM آموزش می دهد و نحوه استفاده از Bus Pirate را با سه پروتکل متداول نشان می دهد: 1-Wire ، I2C و SPI. برد کاوشگر 3EEPROM اتصالات مناسب را به هر EEPROM تضمین می کند و یک مقاومت کششی خارجی برای اتوبوس 1-Wire با قطعات مجهز به انگل. ما می توانیم PCE یا کیت های کاوشگر 3EEPROM تولید شده در Seeed Studio را داشته باشیم. PCB ها حدود 10 دلار ، کیت ها حدود 15 دلار ، به سراسر جهان ارسال می شوند. برای شروع باید یک خرید گروهی از 10 PCB یا 20 کیت را سازماندهی کنیم.

توصیه شده: