İçindekiler:

Otobüs Korsan 3EEPROM Explorer Kurulu: 5 Adım
Otobüs Korsan 3EEPROM Explorer Kurulu: 5 Adım

Video: Otobüs Korsan 3EEPROM Explorer Kurulu: 5 Adım

Video: Otobüs Korsan 3EEPROM Explorer Kurulu: 5 Adım
Video: MINECRAFT / HEROBRINENI TOPDIM / HORROR KARTA / UZBEKCHA LET'S PLAY 2024, Kasım
Anonim
Otobüs Korsan 3EEPROM Explorer Kurulu
Otobüs Korsan 3EEPROM Explorer Kurulu

Hack a Day's Otobüs Korsanlarından birine sahipseniz, onunla ne yaparsınız? 3EEPROM gezgin kartıyla 1 kablolu, I2C ve SPI EEPROM'lar hakkında bilgi edinin (biz buna THR-EE-PROM diyoruz). EEPROM, sürekli bir güç kaynağı olmadan verileri depolayan bir bellek yongası türüdür. Küçük kaydedici devrelerinde kalıcı veri depolama veya mini bir web sunucusunda özel sayfalar tutmak için kullanışlıdır. EEPROM'lar birçok boyut ve protokole sahiptir. 3EEPROM'un üç ortak EEPROM yongası vardır: DS2431 (1-Wire), 24AA- (I2C) ve 25AA- (SPI). Üçü de daha önce Hack a Day'de gösterilmişti, ancak her demo Bus Pirate donanımının ve donanım yazılımının farklı bir sürümünü kullanıyor, yeni başlayanların Bus Pirate v2go kullanarak takip etmesi zor. Bus Pirate v2go ile DS2431, 24AA- ve 25AA- EEPROM'lar. Ayrıca, tek bir ayrıntıyı kaçırmamanız için metin dosyaları olarak tüm oturum günlüklerini aldık. Seeed Studio'da üretilen 3EEPROM explorer board PCB'leri veya kitleri olabilir. PCB'ler yaklaşık 10 dolar, kitler yaklaşık 15 dolar, dünya çapında sevk ediliyor. Başlamak için 10 PCB veya 20 kitten oluşan bir grup satın alma organize etmemiz gerekiyor. Bir Otobüs Korsanıyla ilgileniyorsanız, sürüm 3 geliyor. Bazı biçimlendirme öğelerini ve HTML tablolarını bir Eğitilebilir Dosyaya dahil edemedim, orijinal gönderiyi Dangerous Prototypes blogunda görebilirsiniz.

Adım 1: 3EEPROM Donanımına Genel Bakış

3EEPROM Donanımına Genel Bakış
3EEPROM Donanımına Genel Bakış
3EEPROM Donanımına Genel Bakış
3EEPROM Donanımına Genel Bakış
3EEPROM Donanımına Genel Bakış
3EEPROM Donanımına Genel Bakış

Bu prototipin amacı, EEPROM ve üç ortak veri yolu protokolü hakkında bilgi edinmektir. İlk önce 3EEPROM PCB'ye bakıyoruz, ardından bir Bus Pirate evrensel seri arabirim aracı kullanarak her EEPROM'u gösteriyoruz. Bir Otobüs Korsanınız yoksa, nasıl uygularsanız uygulayın, arabirim işlemlerinin temel sırası aynı kaldığından yine de takip edebilirsiniz. DevreTam boyut şeması [PNG]. Devreyi ve PCB'yi Cadsoft Eagle'ın ücretsiz sürümünü kullanarak yaptık. Şemayı ve PCB'yi Bus Pirate SVN arşivinden indirebilirsiniz. 3EEPROM PCB'de bir DS2431 1-Wire EEPROM (IC1), bir 24AA- I2C EEPROM (IC4) ve bir 25AA-SPI EEPROM (IC5) bulunur. DS2431 (IC1), 1-Wire veri yolundan parazit olarak güç çeker, harici bir güç kaynağı pinine sahip değildir ve bir dekuplaj kapasitörü gerektirmez. IC2 ve IC3, başka bir DS2431 veya DS1822 sıcaklık sensörü gibi ek 1 Telli cihazlar için boş noktalardır. C1 (0.01 uF) isteğe bağlıdır ve yalnızca IC2 veya IC3'ün güçlü 1 Telli bir cihazla doldurulması durumunda gereklidir.1-Tel, maksimum 2,2K ohm olan güçlü bir çekme direnci gerektirir. Bus Pirate'in yerleşik pull-up dirençleri 10K'dır ve yazma sırasında DS2431'e düzgün şekilde güç sağlamak için çok zayıftır. 3EEPROM gezgin kartı, 1 Telli veriyolu üzerinde 1.8k ohm, 1/8'inci watt'lık bir çekme direnci (R1) içerir, böylece ek çekme direnci gerekmez. 24AA-(IC4) ve 25AA- (IC5) her biri, onları güç kaynağından (C2, C3) ayırmak için 0.1 uF'lik bir kapasitör alır. Muhtemelen bu kadar basit bir devrede kapasitörlere ihtiyacınız yoktur, onları gösterimde prototip panosundan çıkardık. 24AA- tarafından kullanılan I2C veri yolu da çekme dirençleri gerektirir, ancak Bus Pirate'in yerleşik 10K ohm çekme dirençleri yeterlidir. Tüm bileşenler 2,8 volttan 5 volt DC'ye kadar çalışır. Devre, jumper 3'ün VCC ve GND pinlerinden beslenir. Biri güç, diğeri Bus Pirate'in pull-up rezistör voltaj giriş pini (Vpullup) olmak üzere iki adet VCC pini vardır. Devreyi ve PCB'yi kullanarak devreyi ve PCB'yi yaptık. Cadsoft Eagle'ın ücretsiz sürümü. Şemayı ve PCB'yi Bus Pirate SVN arşivinden indirebilirsiniz. Profesyonelce hazırlanmış bir PCB veya 3EEPROM kiti isterseniz, 10 veya 20 kişi ilgilenirse grup satın alabiliriz. Parça listesi R1 1800 ohm direnç (1/8. watt)C2, 3 0.1uF kapasitör/10volt+JP1-4 0.1" erkek pin başlığıIC1 DS2431 1K 1-telli EEPROM TO-92IC4** 24AA014-I/P I2C EEPROM DIP8IC5** 25AA010A-I/P SPI EEPROM DIP8ICS4, IC5 için 5 8 pin DIP soket, 6**IC4, IC5 herhangi bir boyutta olabilir, küçük yongalara bağladık, 128bayt ve 128Kbayt kullandık. Bazı biçimlendirme ve HTML tablolarını ekleyemedim Bir Eğitilebilir Dosyada, orijinal gönderiyi Tehlikeli Prototipler blogunda görebilirsiniz.

Adı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

GösterilerTüm EEPROM demoları hemen hemen aynı görünüyor. Çipe birkaç sayı yazacağız ve sonra okuyacağız. Her aygıtın, sayfa boyutu ve sınır sınırlamaları gibi birkaç değerden fazlasını yazmak istediğinizde geçerli olan koşulları vardır. Bunlarla ilgili daha fazla bilgiyi cihazınıza ait veri sayfasında okuyun. Çalışmak için bir gösteri bulamıyorsanız, yaptığımız tek bir şeyi kaçırmamak için tam terminal günlüğünü indirin. Pull-up dirençleri en yaygın sorundur, Bus Pirate terminalindeki 'v' menüsünü kullanarak pull-up pin voltajını kontrol edin. Chip: 25AA, SPI EEPROM (1Kbyte). Bus:SPI. Pull-up dirençleri yalnızca karışık voltajlı arabirim için gereklidir. Güç gereksinimleri: 1,8 volt ila 5,5 volt (AA), 2,5 volt ila 5,5 volt (LC). Referanslar:veri sayfası, Hack a Day gösterimi. Bu gösteri için Komple Otobüs Korsan oturum günlüğü. Bir Instructable'a bazı biçimlendirme ve HTML tabloları ekleyemedim, orijinali Dangerous Prototypes blogunda görebilirsiniz. IC5, Microchip'ten bir 25AA-serisi I2C EEPROM'dur, bu EEPROM'ların bir ton boyutu vardır. AA parçaları 1.8 volttan 5.5 volta kadar çalışır, 25LC parçaları ise 2.5 volt minimum gereksinime sahiptir. C3 (0.1uF), SPI EEPROM'u güç kaynağından ayırır. Yazma koruması (WP) ve tutma pinleri bir mikrodenetleyici tarafından kontrol edilebilir, ancak bu pinleri yüksek tutarak onları devre dışı bıraktık. SPI veri yolu pinleri, CS, DO, CLK ve DI, JP4 başlığına getirilir. Kurulum Bir Bus Pirate kullanıyorsanız, onu aşağıdaki çizelge görüntüsünde gösterildiği gibi 3EEPROM veya 25AA-IC'ye bağlayın. SPI normalde pull-up dirençleri gerektirmez. Arayüzleme Bus Pirate terminalinde mod menüsü için 'm' tuşuna basın ve SPI'yi seçin. Normal pin çıkışı için SPI kitaplığını yapılandırın, diğer tüm SPI modu ayarları için varsayılanları kullanın. SPI modu isteminde güç kaynaklarını (büyük 'W') etkinleştirin. Son olarak, güç kaynaklarının çalıştığından emin olmak için bir voltaj raporu alın ('v'). Normal pin modunda SPI kitaplığını kullanarak EEPROM'u doğrudan 3,3 voltta nasıl arayüzleyeceğimizi göstereceğiz. Bu demo için pull-up dirençleri gerekli değildir. 5 volt ile çalışan bir EEPROM'u arayüzlemek istiyorsanız, açık kollektör (HiZ) pin modunda SPI kitaplığını kullanın ve EEPROM'un güç kaynağına bağlı Vpullup pini (Vpu) ile pull-up dirençlerini etkinleştirin. Adım 1, yazma korumasını kapatın' SPI>[0b110]CS ETKİN <<<chip select etkinYAZ: 0x06 <<<yazma koruma komutunu devre dışı bırakCS DEVRE DIŞI <<25AA-, açılışta yazmaya karşı korumalıdır. Alt çip seçimini (CS) ([), yazma korumasını devre dışı bırakma komutunu (0x06) gönderin ve ardından EEPROM'a yazmaları etkinleştirmek için CS'yi (]) yükseltin. Yazma korumasını devre dışı bırakma komutu ikili olarak 0b00000110'dur, ancak bunu kısaltabiliriz 0b110 ve Otobüs Korsanı hala anlıyor. Adım 2, bazı değerlerin yazılması SPI>[0b10 0 3 2 1]CS ENABLED <<<chip select activeWRITE: 0x02 <<<komut yazWRITE: 0x00 <<<başlangıç adresini yazWRITE: 0x03 <<<3 değer yazılacak (3, 2, 1)YAZMA: 0x02YAZMA: 0x01CS DEVRE DIŞI <<Artık EEPROM yazılabilir. İlk olarak, 25AA-'yi ([) etkinleştirmek için CS'yi düşürün. Ardından, yazma komutunu (0x02) ve yazmaya başlamak için konumu (0) gönderin. Verileri depolamaya (3 2 1) gönderin, ardından değerleri kaydetmek için CS'yi (]) yükseltin. Not: 128 baytlık küçük bir EEPROM kullandık, daha büyük yongalar 16 bitlik (2 bayt) bir adres kullanacak. 256 bayttan büyük EEPROM'lar için bu komut [0b10 0 '''0''' 3 2 1] olacaktır, ikinci 0'a dikkat edin. Emin olmak için EEPROM'unuzun veri sayfasını kontrol edin. Adım 3, değerleri geri oku SPI>[0b11 0 r:3]CS ETKİN <<<chip select etkinYAZ: 0x03 <<<komutu okuWRITE: 0x00 <<<başlangıç adresini okuBULK READ 0x03 BYTES: <<<3 değeri oku0x03 0x02 0x01CS ENGELLİ <<Son olarak, yazmanın başarılı olduğunu doğrulamak için verileri tekrar okuyun. 25AA- ([) seçin, okuma komutunu (0x03) gönderin ve adresi (0) başlatın ve ardından üç değeri (r:3) okuyun. İşlemi tamamlamak için CS'yi yükseltin (]). Değerler eşleşiyor, yazma başarılı. Not: 128 baytlık küçük bir EEPROM kullandık, daha büyük yongalar 16 bitlik (2 bayt) bir adres kullanacak. 256 bayttan büyük EEPROM'lar için bu komut [0b11 0 '''0''' r:3] olacaktır, ikinci 0'a dikkat edin. Emin olmak için EEPROM'unuzun veri sayfasını kontrol edin.

Adı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 (1Kbyte). Bus:I2C, pull-up dirençleri gereklidir. Güç gereksinimleri: 1.8volt ila 5.5volt (24AA), 2.5volt ila 5.5volt (24LC). Referanslar:veri sayfası, Hack a Day gösterimi. Bu gösteri için Bus Pirate oturum günlüğünü tamamlayın. Bir Instructable'a bazı biçimlendirme ve HTML tabloları ekleyemedim, orijinali Dangerous Prototypes blogunda görebilirsiniz. IC4, Microchip'ten bir 24AA-serisi I2C EEPROM'dur, bu EEPROM'lar bir ton boyutları. AA parçaları 1.8 volttan 5.5 volta kadar çalışırken, 24LC parçalarının minimum 2.5 volt gereksinimi vardır. 0.1 uF kapasitör (C2) IC4'ü güç kaynağından ayırır. Yazma koruma pimi (WP) bir mikro denetleyiciden kontrol edilebilir, ancak bu basit gösterim için onu toprak bağlantısıyla devre dışı bırakıyoruz. I2C veri yolu pinleri, SDA ve SCL, JP2 başlığına getirilir. Çoğu 24AA EEPROM'un adresi, son dört bit adres pinleri (A0, A1, A2) ve okuma/yazma modu seçme biti tarafından belirlenen 1010AAAS'dir. (S). Bu örnekte tüm adres bitleri topraklanmıştır, bu nedenle EEPROM'un yazma adresi 10100000'dir (veri sayfası sayfa 6). Kurulum Bir Bus Pirate kullanıyorsanız, onu aşağıdaki çizelge görüntüsünde gösterildiği gibi 3EEPROM veya 24AA-IC'ye bağlayın. I2C, her iki pimde de çekme dirençleri gerektiren çift yönlü bir veriyoludur. Vpullup (Vpu) pinini 3,3 volt güç kaynağına bağlayarak ve terminalde etkinleştirerek Bus Pirate'in yerleşik pull-up dirençlerini kullanabilirsiniz. Arabirim Notu: Tüm I2C EEPROM'lar aynı şekilde çalışmaz. Örneğin minik 24AA01, tamamen farklı bir adresleme ve komut sistemine sahiptir. Çipinizin veri sayfasını kontrol ettiğinizden emin olun. Bus Pirate terminalinde 'm' tuşuna basın ve mod menüsünden I2C'yi seçin. I2C isteminde güç kaynaklarını (büyük 'W') ve çekme dirençlerini ('p', seçenek 2) etkinleştirin. Güç kaynaklarının açık olduğundan ve Vpullup pininin bir voltaja bağlı olduğundan emin olmak için bir voltaj raporu ('v') alın. I2C>(0) <<(1) <<<adres arama makrosunu kullanın 7bit I2C adres alanı aranıyor. Bulunan cihazlar: 0xA0 0xA1 <<I2C adresinin 10100000 olduğunu zaten biliyoruz, ancak 24AA-'yı aramak için Bus Pirate'in I2C arama makrosunu (1) da kullanabiliriz. Arama makrosu, aygıtı beklenen yazma (0xA0) ve okuma (0xA1) adreslerinde buldu. Adım 1, bazı değerler yazın I2C>[0b10100000 0 0 3 2 1]I2C BAŞLANGIÇ KOŞULU <<<I2C başlangıç koşuluYAZ: 0xA0 ALINDI: EVET <<<24AA- adres yazYAZ: 0x00 ALINDI: EVET <<<adres baytı yaz 1YAZ: 0x00 ALINDI: EVET <<<adres baytı yaz 2YAZ: 0x03 ALINDI: EVET <<<3 yazılacak değer (3, 2, 1)YAZ: 0x02 ALINDI: EVET YAZ: 0x01 ALINDI: YES2C DURDURMA KOŞULU < <Yazmaya bir I2C başlangıç koşulu ([), ardından 24AA-yazma adresi (0xa0) ile başlayın. Ardından, yazılacak 16 bitlik adresi (0 0) ve yazılacak verileri (3 2 1) gönderin. I2C işlemini bir durdurma koşuluyla (]) sonlandırın. Adım 2, okuma işaretçisini konumlandırın I2C>[0b10100000 0 0]I2C BAŞLANGIÇ KOŞULU <<<I2C başlangıç koşuluYAZ: 0xA0 ALINDI: EVET <<<24AA- adres yazYAZ: 0x00 GOT ACK: EVET <<<adres baytı yaz 1YAZ: 0x00 ALINDI: EVET <<<adres baytı yaz 2I2C DURDURMA KOŞULU <<24AA-'den okumak için iki işlem gerekir. Biri okuma/yazma işaretçisini konumlandırır, diğeri değerleri döndürür. Bir I2C başlatma koşulu ([) ve yazma adresi (0xa0) ile başlayın. Okunacak 16 bitlik adresi (0 0) ve ardından durma koşulunu (]) gönderin. Bu sefer yazmak için herhangi bir veri göndermedik, sadece okuma/yazma işaretçisini 1. adımda yazdığımız verilerin başına geri konumlandırdık. Adım 3, bazı değerleri okuyun I2C>[0b10100001 r:3]I2C BAŞLANGIÇ KOŞULU <<<I2C başlatma koşuluYAZ: 0xA1 ALINDI: EVET <<<24AA- adresi okuBULK OKUMA 0x03 BYTE: <<<3 değeri oku0x03 0x02 0x01I2C DURDURMA KOŞULU <<Adım 2, okuma/yazma işaretçisini okumak istediğimiz verinin başlangıcına ayarlayın. Şimdi 24AA- okuma adresini kullanarak verileri okuyabiliyoruz. I2C başlangıç koşulu ([) ve 24AA- okuma adresi (0xa1) ile başlayın. Adım 1'de (r:3) yazdığımız üç değeri okuyun ve bir durdurma koşulu (]) ile bitirin. Değerler eşleşirse, yazma işleminiz başarılı olmuştur.

Adım 4: DS2431 1-Kablolu EEPROM

DS2431 1-Kablolu EEPROM
DS2431 1-Kablolu EEPROM
DS2431 1-Kablolu EEPROM
DS2431 1-Kablolu EEPROM
DS2431 1-Kablolu EEPROM
DS2431 1-Kablolu EEPROM

Çip: DS2431, 1 telli EEPROM (1Kbayt). Veriyolu:1-Tel, <2.2Kohm pull-up direnci gerekir. Güç gereksinimleri: 2,8 volt ila 5,25 volt. Referanslar: veri sayfası, Hack a Day gösterimi. Komple Bus Korsan oturum günlüğü Bu gösteri için. Bir Eğitilebilir Tabloya bazı biçimlendirme ve HTML tabloları ekleyemedim, orijinali Dangerous Prototypes blogunda görebilirsiniz. DS2431, çekme direncinden güç alır ve harici bir kaynağa veya ayırma kapasitörüne ihtiyaç duymaz. 1-Wire, maksimum 2.2Kohms olan güçlü bir çekme direncine ihtiyaç duyar. Bus Pirate'in yerleşik pull-up dirençleri 10K'dır ve yazma sırasında DS2431'e düzgün şekilde güç sağlamak için çok zayıftır. Güç ve 1-Wire bus pini arasında 2,2Kohm veya daha küçük bir harici direnç kullanmalısınız. Veri yazmakta zorluk çekiyorsanız, pull-up direncinizin yeterince büyük olduğundan emin olun. 3EEPROM gezgin kartı, 1-Wire veriyolu üzerinde 1800 ohm'luk bir çekme direnci (R1) içerir, bu nedenle harici direnç gerekmez. Kurulum Bir Bus Pirate kullanıyorsanız, onu aşağıdaki çizelge görüntüsünde gösterildiği gibi 3EEPROM kartına veya DS2431'e bağlayın. DS2431, güç kaynağı pimine ihtiyaç duymaz, 1 Kablolu veri yolu için büyük çekme direncine güç sağlamak için 3EEPROM kartında kullanılır. Arayüzleme Bus Pirate terminalinde 'm' tuşuna basın ve 1-Wire modunu seçin. Yerleşik güç kaynaklarını (büyük 'W') etkinleştirin ve voltaj monitörünü (v) kontrol edin. Adım 1, aygıt adresini bulun 1-KABLOLU>(0xf0) <<<1-Kablolu arama makrosu 1 KABLO ROM KOMUTU: ARAMA (0xF0) Şurada bulunan aygıtlar:Makro 1 KABLO adresi1.0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B <<<DS2431 benzersiz ID*DS2431 1K EEPROM <<Her 1-Wire cihazının benzersiz bir 8 bayt kimliği vardır. 1-Wire, bağlı tüm cihazların kimliğini tespit eden bir arama prosedürüne sahiptir. Bus Pirate, 1-Wire aramasını makro (240) olarak uygular. 1-Kablolu aramayı başlatmak için Bus Pirate terminaline '(240)' yazın. Her cihaz adresi yazdırılır, bilinen cihazlar tanımlanır. İlk on 1-Wire cihaz adresi makro olarak saklanır, bu örnekte DS2431 adresimiz terminalde '(1)' yazılarak kullanılabilir. Adım 2, karalama defterine 8 bayt yazın 1-WIRE>(0x55) (1) 0x0f 0 0 8 7 6 5 4 3 2 11WIRE BUS RESET OK <<<ayrıca { komutu 1WIRE WRITE ROM COMMAND: MATCH (0x55) * 64bit adres ile takip et1TEL ADRES MAKRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B ' YAZMA: 0x0F <<<DS2431 karalama defteri komutu yaz YAZ: 0x00 <<<DS2431 adres baytı yaz YAZ: 0x00 <<<DS2431 adres baytı yaz 2: 0x08 <<Daha sonra, DS2431'de not defteri adı verilen geçici bir konuma 8 bayt yazacağız. İşlemi 1-Wire bus reset ve MATCH komutuyla (0x55) başlatın. Her ikisi de '(0x55)' makrosu olarak mevcuttur. Bu işlem makro olmadan da '{0x55' yazarak yapılabilir, { 1-Wire reset gönderir, 0x55 1-Wire MATCH komutudur. MATCH komutundan sonra cihazın 8 byte ID'sini adrese gönderin. 1. adımda DS2431 kimliği ile doldurulmuş makroyu (1) kullandık. 8 baytlık kimliği manuel olarak da girebilirsiniz. Bu noktada DS2431 adresini almış ve komutlar için hazır olmalıdır.0x0f not defterine yazma komutudur, DS2431'e veri beklemesini söyler. Sonraki iki bayt, verileri nereye koyacağını söyler, başlangıçta kaydedeceğiz (0 0). Son olarak, 8 byte'lık değerleri saklamak için gönderiyoruz, 8'den 1'e kadar olan sayılar DS2431'e tam 8 byte yazmalısınız. Ayrıca, yazma adresi 8 baytlık bir sınırda olmalıdır. Yazma sınırlamalarına tam bir genel bakış için veri sayfasına bakın. Adım 3, not defterini doğrulayın ve 1-WIRE>(0x55)(1) 0xaa r:3 r:8 r:2 r:21WIRE BUS RESET OK <<<cihazın adresini alın1WIRE WRITE ROM COMMAND: MATCH (0x55) *64bit address1 ile takip edin1KABLOLU ADRES MAKROSU 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<<karalama defteri komutunu okuyunBULK READ 0x03 BYTES: <<<yetkilendirme kodu0x00 0x00 0x07BULK OKUMA 0x08 BYTES: <gönderdiğimiz 0x0x veri 0x07 0x06 0x05 0x04 0x03 0x02 0x01BULK OKUMA 0x02 BYTES: <<< data0xC8 için CRC 0x86BULK READ 0x02 BYTES: <<Verilerin doğru şekilde alındığını doğrulayın ve bir yazma yetki kodu alın. 1-Wire reset ve MATCH komut makrosu (0x55) ve cihaz adres makrosu (1) ile yeniden başlayın. Bu sefer DS2431 karalama defteri oku komutunu (0xAA) gönderin ve ardından toplam 15 bayt okuyun. Okunan ilk 3 bayt (r:3) yazma yetki kodudur, sonraki adımda buna ihtiyacımız olacak. EEPROM'a karalama defteri. Sonraki 8 bayt (r:8) 2. adımda gönderdiğimiz verilerle eşleşmelidir. Son 2 bayt (r:2) veriler için bir CRC16'dır. CRC'nin tüm 1'leri döndürmesinden sonra okur. Adım 4, not defterini EEPROM'a yazın 1-KABLOLU>(0x55)(1) 0x55 0x00 0x00 0x071KABLOLU BUS RESET OK <<<cihazı adresleyin1TELLİ ROM YAZ KOMUTU: EŞLEŞTİR (0x55) *64bit adresi ile takip edin1KABLOLU ADRES MAKROSU 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0x55 <<<kopyalama defteri komutuWRITE: 0x00 <<<3 adımdan 3 bayt yetkilendirme koduWRITE: 0x00WRITE: 0x071-WIRE>Scratch pad verilerini kalıcı olarak EEPROM. Aygıtı adresleyin, ardından DS2431 kopya karalama defteri komutunu (0x55) ve ardından 3. adımda aldığımız üç baytlık yetkilendirme kodunu (0x00 0x00 0x07) gönderin. Yetkilendirme kodu doğruysa, veriler EEPROM'a taşınır. Adım 5, karalama defterini doğrulayın 1-WIRE>(0x55)(1) 0xaa r:31KABLOLU BUS RESET OK <<<aygıtı adresleyin1TELLİ ROM YAZ KOMUTU: EŞLEŞTİR (0x55) *64bit adresi ile takip edin1KABLOLU ADRES MAKROSU 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<<karalama defteri komutunu okuBULK READ 0x03 BYTES:0x00 0x00 0x87 <<DS2431, başarılı bir kopyalama not defteri komutundan sonra yazma yetki kodunun en üstteki bitini ayarlar. Güncellenmiş yetkilendirme kodunu almak için başka bir not defteri okuma komutu (0xAA) gönderin, ancak yalnızca ilk üç baytı (r:3) okuyun. Önceki 0x07 değeri 0x87 olarak değiştirildi, kopyalama komutu başarıyla alındı. Adım 6, 1-WIRE>(0x55)(1) 0xf0 0x00 0x00 r:8 r:81WIRE BUS RESET OK <<<cihazı adresleyin1WIRE ROM YAZ KOMUTU: MATCH (0x55) *64bit adres ile takip edin1KABLOLU ADRES MAKROSU 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xF0 <<<DS2431 komutu okuWRITE: 0x00 <<<2 bayt adresi okuWRITE: 0x00BULK READ 0x08 BYTES: <<03<yazdığımız 8 baytı oku 0x08 0x05 0xBU 0x02 0x01 0x08 BAYT: <<Değerleri alarak yazmanın düzgün çalıştığını doğrulayın. DS2431'i adresleyin, ardından okuma komutunu (0xf0) ve okunacak adresi (0x00 0x00) gönderin. Tek bir komutla tüm bellek aralığını okumak mümkündür. Beklenen değerleri döndüren daha önce yazdığımız (r:8) sekiz baytı okuduk. Bu değerlerin ötesindeki sekiz bayt yazılmamıştır ve 0 döndürür.

Adım 5: Sonuç

Çözüm
Çözüm

Sonuç Bu prototip, EEPROM belleği hakkında bilgi verir ve Bus Pirate'in üç ortak protokolle nasıl kullanılacağını gösterir: 1-Wire, I2C ve SPI.3EEPROM gezgin kartı, her bir EEPROM'a uygun bağlantıları sağlar ve harici bir çekme direnci sağlar. parazitle çalışan bileşenlere sahip daha zorlu 1-Wire bus. Seeed Studio'da üretilen 3EEPROM keşif kartı PCB'lerine veya kitlerine sahip olabiliriz. PCB'ler yaklaşık 10 dolar, kitler yaklaşık 15 dolar, dünya çapında sevk ediliyor. Başlamak için 10 PCB veya 20 kitlik bir grup satın alma düzenlememiz gerekiyor.

Önerilen: