Mündəricat:

Avtobus Pirate 3EEPROM Explorer lövhəsi: 5 addım
Avtobus Pirate 3EEPROM Explorer lövhəsi: 5 addım

Video: Avtobus Pirate 3EEPROM Explorer lövhəsi: 5 addım

Video: Avtobus Pirate 3EEPROM Explorer lövhəsi: 5 addım
Video: This Home is Abandoned for 2 Decades and Everything Still Works! 2024, Noyabr
Anonim
Avtobus Pirate 3EEPROM Explorer lövhəsi
Avtobus Pirate 3EEPROM Explorer lövhəsi

Hack a Day's Bus Pirates -dən biriniz varsa, bununla nə edirsiniz? 3EEPROM kəşfiyyat lövhəsi ilə 1 telli, I2C və SPI EEPROMlar haqqında məlumat əldə edin (buna THR-EE-PROM deyirik). EEPROM, fasiləsiz enerji təchizatı olmadan məlumatları saxlayan bir yaddaş çipidir. Kiçik logger sxemlərində daimi məlumatların saxlanması və ya xüsusi səhifələrin mini veb serverdə saxlanması üçün faydalıdır. EEPROM'lar bir çox ölçüdə və protokolda gəlir. 3EEPROM-un üç ümumi EEPROM çipi var: DS2431 (1-Tel), 24AA- (I2C) və 25AA- (SPI). Hər üçü əvvəllər Hack A Day -da nümayiş etdirilmişdi, lakin hər bir demo, Bus Pirate v2go -dan istifadə etmək üçün yeni başlayanlar üçün çətin olan Bus Pirate hardware və proqram təminatının fərqli bir versiyasından istifadə edir. Bus Pirate v2go ilə DS2431, 24AA- və 25AA- EEPROMs. Biz də mətn faylları olaraq tam sessiya qeydlərini əldə etmişik, belə ki, heç bir detalı qaçırmayacaqsınız. Seeed Studio -da istehsal olunan 3EEPROM explorer board PCB və ya dəstləri ola bilər. PCB -lər təxminən 10 dollar, dəstlər təxminən 15 dollardır və bütün dünyada satılır. Başlamaq üçün 10 PCB və ya 20 dəstdən ibarət bir qrup satın alma təşkil etməliyik. Bir Avtobus Korsanı ilə maraqlanırsınızsa, 3 -cü versiya gəlir. Bəzi Formatlaşdırma elementlərini və HTML cədvəllərini Təlimatlandırmaya daxil edə bilmədim, orijinal yazını Dangerous Prototypes blogunda görə bilərsiniz.

Addım 1: 3EEPROM Avadanlıqlarına Baxış

3EEPROM Avadanlıqlarına Baxış
3EEPROM Avadanlıqlarına Baxış
3EEPROM Avadanlıqlarına Baxış
3EEPROM Avadanlıqlarına Baxış
3EEPROM Avadanlıqlarına Baxış
3EEPROM Avadanlıqlarına Baxış

Bu prototipin məqsədi EEPROM və üç ümumi avtobus protokolunu öyrənməkdir. Əvvəlcə 3EEPROM PCB -yə baxırıq, sonra hər bir EEPROM -u Bus Pirate universal seriya interfeysi vasitəsi ilə nümayiş etdiririk. Avtobus Piratınız yoxdursa, hələ də davam edə bilərsiniz, çünki onları necə tətbiq etməyinizdən asılı olmayaraq interfeys əməliyyatlarının əsas qaydası eyni olaraq qalır. CircuitFull size sxematik [PNG]. Cadsoft Eagle -in pulsuz versiyasını istifadə edərək dövrə və PCB hazırladıq. Şematik və PCB-ni Bus Pirate SVN arxivindən yükləyə bilərsiniz. 3EEPROM PCB-də DS2431 1-Telli EEPROM (IC1), 24AA-I2C EEPROM (IC4) və 25AA-SPI EEPROM (IC5) var. DS2431 (IC1) 1 Telli avtobusdan parazit şəkildə enerji alır, xarici bir enerji təchizatı pininə malik deyil və ayıran bir kondansatör tələb etmir. IC2 və IC3, başqa bir DS2431 və ya DS1822 temperatur sensoru kimi əlavə 1 Telli cihazlar üçün boş yerlərdir. C1 (0.01uF) isteğe bağlıdır və yalnız IC2 və ya IC3-də 1 telli bir cihazla doldurulduqda lazımdır. Bus Pirate-in göyərtəsində çəkilmə rezistorları 10K-dir, yazılar zamanı DS2431-i düzgün şəkildə gücləndirmək üçün çox zəifdir. 3EEPROM kəşfiyyat lövhəsi, 1 telli avtobusda 1.8k ohm, 1/8th watt çəkmə müqavimətini (R1) ehtiva edir ki, əlavə çəkmə müqavimətinə ehtiyac olmasın. 24AA- (IC4) və 25AA- (IC5) hər biri enerji təchizatından (C2, C3) ayırmaq üçün 0.1uF kondansatör alır. Yəqin ki, belə sadə bir dövrədə kondansatörlərə ehtiyacınız yoxdur, bunları nümayişdə prototip lövhəsindən çıxardıq. 24AA-nın istifadə etdiyi I2C avtobusu da çəkmə rezistorlarına ehtiyac duyur, lakin Bus Pirate-in 10K ohm çəkmə rezistorları kifayətdir. Bütün komponentlər 2.8 voltdan 5 volt DC-ə qədər işləyəcək. Dövrə 3-cü VCC və GND sancaqları ilə təchiz edilmişdir. İki VCC pin var, biri güc üçündür, digəri isə Avtobus Piratının çəkmə müqavimət gərginliyi giriş pininə (Vpullup) aiddir. Cadsoft Eagle -in pulsuz versiyası. Şematik və PCB -ni Bus Pirate SVN arxivindən yükləyə bilərsiniz. Peşəkar şəkildə hazırlanmış bir PCB və ya 3EEPROM dəsti istəsəniz, 10 və ya 20 nəfər maraqlandığı təqdirdə bir qrup alışı təşkil edə bilərik. Parça siyahısı R1 1800 ohm müqavimət (1/8th watt) C2, 3 0.1uF kondansatör/10 volt+JP1-4 0.1 "kişi pin başlığı IC1 DS2431 1K 1 telli EEPROM TO-92IC4 ** 24AA014-I/P I2C EEPROM DIP8IC5 ** 25AA010A-I/P SPI EEPROM DIP8ICS4, IC5 üçün 5 8 pinli DIP yuvası, 6 ** IC4, IC5 hər hansı bir ölçüdə ola bilər, kiçik fişlərə bağladıq, 128 bayt və 128 KB istifadə etdik. Bəzi format və HTML cədvəlləri daxil edə bilmədim. Təlimatlandırmada, Dangerous Prototypes blogundakı orijinal yazını görə bilərsiniz.

Addım 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

Bütün EEPROM demoları çox oxşardır. Çipə bir neçə rəqəm yazacağıq və sonra oxuyacağıq. Səhifənin ölçüsü və sərhəd məhdudiyyətləri kimi bir neçə dəyərdən çox yazmaq istədikdə hər cihazda tətbiq olunan şərtlər var. Xüsusi cihazınız üçün məlumat cədvəlində bunlar haqqında daha çox oxuyun. İşləmək üçün bir nümayiş ala bilmirsinizsə, etdiyimiz bir şeyi qaçırmamaq üçün tam terminal qeydini yükləyin. Pull-up rezistorları ən çox yayılmış problemdir, Bus Pirate terminalındakı 'v' menyusundan istifadə edərək çəkmə pininin gərginliyini yoxlayın. Çip: 25AA, SPI EEPROM (1Kbyte). Otobus: SPI. Qaldırıcı rezistorlar yalnız qarışıq gərginlikli interfeys üçün tələb olunur. Güc tələbləri: 1.8 voltdan 5.5 voltadək (AA), 2.5 voltdan 5.5 voltadək (LC). İstinadlar: məlumat cədvəli, bir günlük nümayiş Hack.. Bir neçə formatlaşdırma və HTML cədvəlini Təlimatlandırmaya daxil edə bilmədim, orijinalını Dangerous Prototypes blogunda görə bilərsiniz. IC5, Microchip-dən 25AA seriyalı I2C EEPROM-dur, bu EEPROMlar bir ton ölçüdə gəlir. AA hissələri 1,8 voltdan 5,5 volta qədər işləyir, 25LC hissələri isə 2,5 volt minimum tələbə malikdir. C3 (0.1uF) SPI EEPROM-u enerji təchizatından ayırır. Yazı qoruma (WP) və tutma sancaqları bir mikro nəzarətçi tərəfindən idarə oluna bilərdi, ancaq bu pinləri yüksək tutaraq onları deaktiv etdik. CS, DO, CLK və DI olan SPI avtobus pinləri JP4 başlığına gətirilir. Quraşdırma Bir Avtobus Piratından istifadə edirsinizsə, onu aşağıdakı qrafik şəkilində göstərildiyi kimi 3EEPROM və ya 25AA-IC-yə qoşun. SPI ümumiyyətlə çəkmə rezistorlarına ehtiyac duymur. Avtobus Pirate terminalında rejim menyusu üçün 'm' düyməsini basın və SPI seçin. Normal pin çıxışı üçün SPI kitabxanasını konfiqurasiya edin, bütün digər SPI rejimi parametrləri üçün standartları istifadə edin. Güc qaynaqlarını (böyük 'W') SPI rejimi istəyində aktiv edin. Nəhayət, enerji təchizatının işlədiyinə əmin olmaq üçün bir gərginlik hesabatı alın ('v'). Normal pin rejimində SPI kitabxanasından istifadə edərək EEPROM -u birbaşa 3.3 voltda necə birləşdirəcəyimizi nümayiş etdirəcəyik. Bu demo üçün çəkmə rezistorlarına ehtiyac yoxdur. 5 volt gücündə bir EEPROM ilə əlaqə qurmaq istəyirsinizsə, açıq kollektor (HiZ) pin rejimində SPI kitabxanasından istifadə edin və EEPROM-un enerji təchizatına qoşulmuş Vpullup pin (Vpu) ilə çəkmə müqavimətini aktiv edin. Addım 1, yazmaqdan qorunma 'SPI> [0b110] CS ENABLED <<< çip seçimi aktivləşdirildiYAZ: 0x06 <<< yazma qoruma əmrini deaktiv et CS DİSABLED <<25AA- açıldıqda yazmaqdan qorunur. Aşağı çipi seçin (CS) ([), yazmaqdan qoruma əmrini (0x06) göndərin və sonra EEPROM -a yazmaq üçün CS (]) qaldırın. Yazmağı qorumaq komutunu ikili olaraq 0b00000110 -dır, lakin onu qısalda bilərik. 0b110 və Bus Pirate hələ də başa düşür. Addım 2, bəzi dəyərlərin SPI> [0b10 0 3 2 1] CS ENABLED <<< çip seçimi aktivləşdirildiYAZ: 0x02 <<< yazma əmri YAZ: 0x00 <<< yazma başlanğıc ünvanı YAZ: 0x03 <<< yazmaq üçün 3 dəyər (3, 2, 1) YAZ: 0x02YAZ: 0x01CS ƏLAVƏ EDİLDİ <<İndi EEPROM yazıla bilər. Birincisi, 25AA- ([) aktivləşdirmək üçün CS-ni aşağı salın. Sonra, yazma əmrini (0x02) və yazmağa başlayacağınız yeri (0) göndərin. Veriləri saxlamağa göndərin (3 2 1), sonra dəyərləri saxlamaq üçün CS (]) qaldırın. Qeyd: Kiçik bir 128 baytlıq EEPROM istifadə etdik, daha böyük fişlər 16 bitlik (2 bayt) bir ünvan istifadə edəcək. Bu əmr 256 baytdan böyük EEPROMlar üçün [0b10 0 '' '0' '' 3 2 1] olardı, ikinci 0 -ı qeyd edin. EEPROM -un əmin olmaq üçün məlumat cədvəlini yoxlayın. Addım 3, dəyərləri geri oxuyun SPI> [0b11 0 r: 3] CS ENABLED <<< çip seçimi aktivləşdirildi YAZ: 0x03 <<< oxumaq əmri YAZ: 0x00 <<< başlama ünvanını oxu TOPLUQ OXU 0x03 BYTES: <<< 3 dəyər oxu0x03 0x02 0x01CS ƏLAVƏ EDİLDİ <<Nəhayət, yazının uğurlu olduğunu yoxlamaq üçün məlumatları geri oxuyun. 25AA- ([) seçin, oxu əmrini (0x03) və başlanğıc ünvanını (0) göndərin və sonra üç dəyəri oxuyun (r: 3). Əməliyyatı başa çatdırmaq üçün CS -ni qaldırın (]). Dəyərlər uyğun gəlir, yazı uğurlu alındı. Qeyd: Kiçik bir 128 baytlıq EEPROM istifadə etdik, daha böyük fişlər 16 bitlik (2 bayt) bir ünvan istifadə edəcək. Bu əmr 256 baytdan böyük olan EEPROMlar üçün [0b11 0 '' '0' '' r: 3] olardı, ikinci 0 -ı qeyd edin. Əmin olmaq üçün EEPROM üçün məlumat cədvəlini yoxlayın.

Addım 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

Çip: 24AA, I2C EEPROM (1Kbayt). Bus: I2C, çəkmə rezistorları tələb olunur. Güc tələbləri: 1.8 volt-5.5 volt (24AA), 2.5 volt-5.5 volt (24LC) üçün. Bu nümayiş üçün Bus Bus Pirate sessiya qeydini tamamlayın. Bir neçə təlimat kitabına bir neçə format və HTML cədvəli daxil edə bilmədim, orijinalını Dangerous Prototypes blogunda görə bilərsiniz. IC4, Microchip-dən alınan 24AA seriyalı I2C EEPROMdur, bu EEPROM-lər ton ölçüləri. AA hissələri 1.8 voltdan 5.5 voltadək işləyir, 24LC hissələri isə 2.5 volt minimum tələbə malikdir. 0.1uF kondansatör (C2) IC4-ü enerji təchizatından ayırır. Yazı qoruyucu pin (WP) bir mikrokontrolördən idarə oluna bilər, ancaq bu sadə nümayiş üçün onu yerə bağlayaraq söndürürük. I2C avtobus pinləri, SDA və SCL, JP2 başlığına çıxarılır. Ən çox 24AA EEPROM -un ünvanı 1010AAAS -dır, son dörd bit ünvan pinləri (A0, A1, A2) və oxu/yazma rejimi seçmə biti ilə müəyyən edilir. (S). Bütün ünvan bitləri bu nümunədə əsaslandığından EEPROM -un yazma ünvanı 10100000 -dir (məlumat cədvəli səhifə 6). Quraşdırma Bir Avtobus Piratından istifadə edirsinizsə, aşağıdakı qrafik şəkilində göstərildiyi kimi 3EEPROM və ya 24AA-IC-yə qoşun. I2C, hər iki sancaqda çəkmə rezistorları tələb edən iki istiqamətli bir avtobusdur. Vpullup (Vpu) pinini 3.3 voltluq enerji təchizatına bağlayaraq terminalda işə salmaqla Bus Pirate-in bortda çəkmə rezistorlarından istifadə edə bilərsiniz. İnterfeys Qeyd: Bütün I2C EEPROMları eyni şəkildə işləmir. Kiçik 24AA01, məsələn, tamamilə fərqli bir ünvan və əmr sisteminə malikdir. Çipiniz üçün məlumat cədvəlini yoxladığınızdan əmin olun. Bus Pirate terminalında 'm' düyməsini basın və rejim menyusundan I2C seçin. I2C istəyində enerji təchizatı (böyük 'W') və çəkmə rezistorlarını ('p', seçim 2) aktivləşdirin. Güc qaynaqlarının açıldığından və Vpullup pininin gərginliyə qoşulduğundan əmin olmaq üçün bir gərginlik hesabatı ('v') alın. I2C> (0) <<(1) <<< ünvan axtarış makrosundan istifadə edin 7bit I2C ünvan məkanını axtarın. Cihazları burada tapın: 0xA0 0xA1 <<I2C ünvanının 10100000 olduğunu artıq bilirik, eyni zamanda 24AA-nı axtarmaq üçün Bus Pirate-in I2C axtarış makrosundan (1) istifadə edə bilərik. Axtarış makrosu cihazı gözlənilən yazma (0xA0) və oxumaq (0xA1) ünvanlarında tapdı. Addım 1, bəzi dəyərlər yazın I2C> [0b10100000 0 0 3 2 1] I2C BAŞLAMA ŞARTI <<< I2C başlanğıc şərti YAZ: 0xA0 AKTI ALDI: VAR <<< 24AA- ünvan yaz 1YAZ: 0x00 GERİ: VAR <<< adres baytı yaz 2 <Yazmağa I2C başlanğıc şərti ilə başlayın ([), sonra 24AA- yazma ünvanı (0xa0). Sonra, yazmaq üçün 16 bit ünvanını (0 0) və yazmaq üçün məlumatları (3 2 1) göndərin. I2C əməliyyatını dayandırma şərti ilə bitirin (]). Addım 2, oxunan göstəricini I2C> [0b10100000 0 0] I2C BAŞLAMA ŞARTI <<< I2C başlanğıc şərti YAZIN: 0xA0 AKTI VAR: VAR <<< 24AA- ünvan yaz 0x00 GERİ ALDI: Bəli <<< ünvan baytını yaz 2I2C DURDURMA ŞARTI <<24AA-dan oxumaq üçün iki əməliyyat lazımdır. Biri oxu/yaz işarəsini yerləşdirir, digəri dəyərləri qaytarır. I2C başlanğıc şərti ([) və yazma ünvanı (0xa0) ilə başlayın. 16 bitli ünvanı (0 0), sonra da dayanma şərtini (]) oxumaq üçün göndərin. Bu dəfə yazmaq üçün heç bir məlumat göndərmədik, sadəcə oxumaq/yazma göstəricisini 1 -ci addımda yazdığımız məlumatların əvvəlinə yerləşdirdik. 3 -cü addım, bəzi dəyərləri oxuyun I2C> [0b10100001 r: 3] I2C BAŞLAMA VƏZİYYƏTİ <<< I2C başlanğıc şərti YAZ: 0xA1 AÇDI: VAR <<< 24AA- ünvanı oxuTAM OXUYUN 0x03 BYTES: <<< 3 dəyəri oxuyun0x03 0x02 0x01I2C DURDURMA ŞARTI <<Addım 2, oxumaq/yazma göstəricisini oxumaq istədiyimiz məlumatların əvvəlinə təyin edin. İndi məlumatları 24AA-oxu ünvanını istifadə edərək oxuya bilərik. I2C başlanğıc şərti ([) və 24AA-oxu ünvanı (0xa1) ilə başlayın. 1 -ci addımda yazdığımız üç dəyəri oxuyun (r: 3) və dayanma şərti ilə bitirin (]). Dəyərlər uyğun gəlirsə, yazmanız uğurlu oldu.

Addım 4: DS2431 1 Telli EEPROM

DS2431 1 Telli EEPROM
DS2431 1 Telli EEPROM
DS2431 1 Telli EEPROM
DS2431 1 Telli EEPROM
DS2431 1 Telli EEPROM
DS2431 1 Telli EEPROM

Çip: DS2431, 1 telli EEPROM (1Kbayt). Otobus: 1-Tel, <2.2Kohm çəkmə müqaviməti tələb olunur. Güc tələbləri: 2.8 voltdan 5.25 volta qədər Təlimata bəzi formatlaşdırma və HTML cədvəlləri daxil edə bilmədim, orijinalını Dangerous Prototypes blogunda görə bilərsiniz. DS2431 çəkmə müqavimətindən güc alır və xarici təchizata və ya ayırma kondansatörünə ehtiyac duymur.. 1-Wire, maksimum 2.2Kohm güclü bir çəkmə müqavimətçisinə ehtiyac duyur. Bus Pirate-in göyərtəsindəki çəkmə rezistorları 10K-dır, yazılar zamanı DS2431-i düzgün təchiz etmək üçün çox zəifdir. Güc və 1-telli avtobus pimi arasında 2.2Kohm və ya daha kiçik bir xarici müqavimət istifadə etməlisiniz. Məlumat yazmaqda çətinlik çəkirsinizsə, çəkmə müqavimətinizin kifayət qədər böyük olduğundan əmin olun. 3EEPROM kəşfiyyat lövhəsinə 1 telli avtobusda 1800 ohm çəkmə müqaviməti (R1) daxildir, buna görə heç bir xarici müqavimətə ehtiyac yoxdur. Quraşdırma Bir Avtobus Piratından istifadə edirsinizsə, onu aşağıdakı qrafik şəkilində göstərildiyi kimi 3EEPROM lövhəsinə və ya DS2431 -ə qoşun. DS2431, enerji təchizatı pininə ehtiyac duymur, 3EEPROM lövhəsində 1 Telli avtobus üçün böyük çəkmə müqavimətini gücləndirmək üçün istifadə olunur. Interfacing Bus Pirate terminalında 'm' düyməsini basın və 1 Telli rejimi seçin. Bortda olan enerji təchizatını işə salın (böyük 'W') və gərginlik monitorunu (v) yoxlayın. Adım 1, cihaz ünvanını tapın 1-WIRE> (0xf0) <<< 1-Telli axtarış makrosu 1WIRE ROM COMMAND: ARA (0xF0) Cihazları tapdığınız yer: Makro 1WIRE ünvanı1.0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B <<< DS2431 unikal ID*DS2431 1K EEPROM <<Hər 1 telli cihazın unikal 8 baytlı identifikatoru var. 1-Wire, bütün qoşulmuş cihazların şəxsiyyətini təyin edən bir axtarış proseduruna malikdir. Bus Pirate, 1-telli axtarışını makro olaraq həyata keçirir (240). 1 Telli axtarışa başlamaq üçün Bus Pirate terminalına '(240)' yazın. Hər bir cihaz ünvanı çap olunur, tanınmış cihazlar müəyyən edilir. İlk on 1-Telli cihaz ünvanları makro olaraq saxlanılır, bu nümunədə DS2431 ünvanımız terminalda '(1)' yazaraq əldə edilə bilər. Addım 2, 1-WIRE> (0x55) (1) 0x0f 0 0 8 7 6 5 4 3 2 11WIRE BUS SIFIRLAMA OK <<< həmçinin {command 1WIRE WOMITE ROM COMMAND: MATCH (0x55) * 64bit ünvanı ilə izləyin: 0x08 <<Daha sonra, DS2431-də sıfırlama adlanan müvəqqəti bir yerə 8 bayt yazacağıq. 1 Telli avtobus sıfırlaması və MATCH əmri ilə əməliyyata başlayın (0x55). Hər ikisi də makro '(0x55)' olaraq mövcuddur. Bu, '{0x55' 'yazaraq, makro olmadan da edilə bilər, {1 Telli sıfırlamanı göndərir, 0x55 1 Telli MATCH əmridir. MATCH əmrindən sonra cihazın 8 baytlı identifikatorunu ünvana göndərin. 1 -ci addımda DS2431 ID ilə doldurulmuş makrodan (1) istifadə etdik. 8 baytlı ID -ni də əl ilə daxil edə bilərsiniz. Bu nöqtədə DS2431 ünvanını almalı və əmrlərə hazır olmalı idi. 0x0f, yazma cızma əmridir, DS2431 -ə məlumat gözləməyi bildirir. Növbəti iki bayt, məlumatların haraya qoyulacağını söyləyir, onu əvvəlində saxlayacağıq (0 0). Nəhayət, saxlamaq üçün 8 bayt dəyər göndəririk, 8 -dən 1 -ə qədər rəqəmlər. DS2431 -ə tam 8 bayt yazmalısınız. Əlavə olaraq, yazma ünvanı 8 baytlıq bir sərhəddə olmalıdır. Yazı məhdudiyyətlərinə tam baxmaq üçün məlumat cədvəlinə baxın. Addım 3, cızıq yastığını yoxlayın və 1-WIRE> (0x55) (1) 0xaa r: 3 r: 8 r: 2 r: 21WIRE BUS SIFIRLAMA OK <<< cihazın ünvanına1WIRE ROM ROM COMMAND: MATCH (0x55) *64bit ünvanı ilə izləyin 0x07 0x06 0x05 0x04 0x03 0x02 0x01BULK OXUYUN 0x02 BYTES: <<< məlumat üçün CRC0xC8 0x86BULK OXUYAN 0x02 BYTES: <<Verilənlərin düzgün alındığını yoxlayın və yazma icazəsi kodu alın. Yenidən 1 Telli sıfırlama və MATCH əmri makrosu (0x55) və cihaz ünvanı makrosu (1) ilə başlayın. Bu dəfə DS2431 skretch pad əmrini (0xAA) göndərin və sonra cəmi 15 baytı oxuyun. Oxunan ilk 3 bayt (r: 3) yazma icazəsi kodudur, onu kopyalamaq üçün növbəti addımda bizə lazım olacaq. cızıq yastığı EEPROM -a. Növbəti 8 bayt (r: 8) 2 -ci addımda göndərdiyimiz məlumatlarla uyğun olmalıdır. Son 2 bayt (r: 2) məlumatlar üçün CRC16 -dır. CRC bütün 1ləri qaytardıqdan sonra oxuyur. Addım 4, cızıq yastığını EEPROM 1-WIRE> (0x55) (1) 0x55 0x00 0x00 0x071WIRE BUS RESET OK <<< cihaza yazın 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0x55 <<< scratch pad əmrini kopyala YAZ: 0x00 <<< 3-cü addımdan 3 baytlıq icazə kodu YAZ: 0x00WRITE: 0x071-WIRE> cızıq saxlamağımız üçün lazım olan hər şeyi saxlayırıq Cihazı daxil edin, sonra DS2431 kopyalama sıfırlama əmrini (0x55) və sonra 3 -cü addımda əldə etdiyimiz üç baytlıq icazə kodunu göndərin (0x00 0x00 0x07). Doğrulama kodu düzgündürsə, məlumatlar EEPROM -a köçürülür. Addım 5, cızıq yastığını yoxlayın 1-WIRE> (0x55) (1) 0xaa r: 31WIRE BUS SIFIRLA OK <<< cihazın ünvanına1WIRE WOMREOM ROM COMMAND: MATCH (0x55) *edin 64bit ünvan1WIRE ADRES MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<< sıfırlama əmrini oxuDS2431, müvəffəqiyyətli bir kopyalama sıfırlama əmrindən sonra yazma icazəsi kodunun yuxarı hissəsini təyin edir. Yenilənmiş icazə kodunu əldə etmək üçün başqa bir oxu sıfırlama əmri (0xAA) göndərin, ancaq ilk üç baytı oxuyun (r: 3). Əvvəlki 0x07 dəyəri 0x87 olaraq dəyişdirildi, kopyalama əmri uğurla alındı. Addım 6, 1-WIRE> (0x55) (1) 0xf0 0x00 0x00 r: 8 r: 81WIRE BUS SIFIRLA OK <<< cihaza ünvan yazın 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xF0 <<< DS2431 read commandWRITE: 0x00 <<< 2 byte read addressWRITE: 0x00BULK READ 0x08 BYTES: <<< 8x0 0x0 0x00x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x tərəfindən oxunduq 0x08 BYTES: <<Dəyərləri əldə edərək yazının düzgün işlədiyini yoxlayın. DS2431 -ə müraciət edin, sonra oxumaq əmrini (0xf0) və oxunacaq ünvanı (0x00 0x00) göndərin. Bütün yaddaş aralığını tək bir əmrlə oxumaq mümkündür. Daha əvvəl yazdığımız səkkiz baytı oxuduq (r: 8), gözlənilən dəyərləri qaytardı. Bu dəyərlərin kənarındakı səkkiz bayt yazılmadı və 0 -a qayıdır.

Addım 5: Nəticə

Nəticə
Nəticə

Nəticə: Bu prototip EEPROM yaddaşını öyrədir və üç ümumi protokolda Bus Pirate-dən necə istifadə olunacağını nümayiş etdirir: 1-Wire, I2C və SPI. 3EEPROM kəşfiyyat lövhəsi hər bir EEPROM-a düzgün əlaqəni təmin edir və xarici çəkmə müqaviməti təmin edir. Parazitlə işləyən komponentləri olan daha tələbkar 1-Telli avtobus. Seeed Studio-da istehsal olunan 3EEPROM tədqiqat lövhəsi PCB və ya dəstlərinə sahib ola bilərik. PCB -lər təxminən 10 dollar, dəstlər təxminən 15 dollardır və bütün dünyada satılır. Başlamaq üçün 10 PCB və ya 20 dəstdən ibarət bir qrup satın alma təşkil etməliyik.

Tövsiyə: