Spisu treści:

Płytka eksploratora magistrali piratów 3EEPROM: 5 kroków
Płytka eksploratora magistrali piratów 3EEPROM: 5 kroków

Wideo: Płytka eksploratora magistrali piratów 3EEPROM: 5 kroków

Wideo: Płytka eksploratora magistrali piratów 3EEPROM: 5 kroków
Wideo: Overclocking w latach 90tych | Podkręcamy 486 2024, Lipiec
Anonim
Płytka eksploratora magistrali piratów 3EEPROM
Płytka eksploratora magistrali piratów 3EEPROM

Jeśli masz jednego z piratów autobusowych Hack a Day's Bus, co z nim zrobisz? Dowiedz się o EEPROM-ach 1-wire, I2C i SPI z płytą eksploratora 3EEPROM (nazywamy ją THR-EE-PROM). EEPROM to rodzaj układu pamięci, który przechowuje dane bez ciągłego zasilania. Jest to przydatne do stałego przechowywania danych w małych obwodach rejestratorów lub przechowywania niestandardowych stron na miniserwerze WWW. EEPROM są dostępne w wielu rozmiarach i protokołach. 3EEPROM ma trzy popularne układy EEPROM: DS2431 (1-Wire), 24AA- (I2C) i 25AA- (SPI). Wszystkie trzy zostały wcześniej zademonstrowane podczas Hack a Day, ale każde demo używa innej wersji sprzętu i oprogramowania układowego Bus Pirate, co jest trudne dla początkujących przy użyciu Bus Pirate v2go. Kontynuuj czytanie, aby uzyskać zaktualizowany, krok po kroku przewodnik po użyciu EEPROM DS2431, 24AA- i 25AA- z Bus Pirate v2go. Posiadamy również pełne logi sesji jako pliki tekstowe, dzięki czemu nie umknie Ci żaden szczegół. Możemy mieć płytki PCB lub zestawy 3EEPROM explorer board wyprodukowane w Seeed Studio. Obwody drukowane kosztują około 10 USD, zestawy około 15 USD, wysyłane na cały świat. Na początek musimy zorganizować grupowy zakup 10 płytek PCB lub 20 zestawów. Jeśli interesuje Cię Bus Pirate, nadchodzi wersja 3. Nie mogłem zawrzeć niektórych elementów formatowania i tabel HTML w Instructable, możesz zobaczyć oryginalny post na blogu Dangerous Prototypes.

Krok 1: Przegląd sprzętu 3EEPROM

3 Przegląd sprzętu EEPROM
3 Przegląd sprzętu EEPROM
3 Przegląd sprzętu EEPROM
3 Przegląd sprzętu EEPROM
3 Przegląd sprzętu EEPROM
3 Przegląd sprzętu EEPROM

Celem tego prototypu jest poznanie EEPROM i trzech popularnych protokołów magistrali. Najpierw przyglądamy się płytce drukowanej 3EEPROM, a następnie demonstrujemy każdy EEPROM za pomocą uniwersalnego interfejsu szeregowego Bus Pirate. Jeśli nie masz pirata magistrali, nadal możesz podążać za nim, ponieważ podstawowa kolejność operacji interfejsu pozostaje taka sama bez względu na to, jak je zaimplementujesz. Schemat obwodu pełnego rozmiaru [PNG]. Obwód i płytkę wykonaliśmy korzystając z darmowej wersji Cadsoft Eagle. Możesz pobrać schemat i PCB z archiwum SVN Bus Pirate. Płytka 3EEPROM zawiera EEPROM DS2431 1-Wire (IC1), EEPROM 24AA-I2C (IC4) i EEPROM 25AA-SPI (IC5). DS2431 (IC1) pobiera energię pasożytniczo z magistrali 1-Wire, nie posiada wyprowadzenia zewnętrznego zasilania i nie wymaga kondensatora odsprzęgającego. IC2 i IC3 to puste miejsca dla dodatkowych urządzeń 1-Wire, takich jak kolejny czujnik temperatury DS2431 lub DS1822. C1 (0,01uF) jest opcjonalne i potrzebne tylko wtedy, gdy IC2 lub IC3 są wyposażone w zasilane urządzenie 1-Wire. 1-Wire wymaga silnego rezystora podciągającego, maksymalnie 2,2 kiloomów. Wbudowane rezystory podciągające Bus Pirate są 10K, za słabe, aby prawidłowo zasilać DS2431 podczas zapisu. Płytka eksploratora 3EEPROM zawiera rezystor podciągający 1,8 kΩ, 1/8 W (R1) na magistrali 1-Wire, dzięki czemu nie jest potrzebny dodatkowy rezystor podciągający. 24AA-(IC4) i 25AA- (IC5) każdy otrzymuje kondensator 0,1 uF, aby odłączyć je od zasilania (C2, C3). Prawdopodobnie nie potrzebujesz kondensatorów w tak prostym układzie, w demonstracji pominęliśmy je na płytce prototypowej. Magistrala I2C używana przez 24AA- również wymaga rezystorów podciągających, ale wbudowane rezystory podciągające Bus Pirate 10K omów są wystarczające. Wszystkie komponenty będą działać od 2,8 V do 5 V DC. Obwód jest zasilany przez styki VCC i GND zworki 3. Są dwa styki VCC, jeden do zasilania, drugi do styku wejściowego napięcia rezystora podciągającego Bus Pirate (Vpullup). darmowa wersja Cadsoft Eagle. Możesz pobrać schemat i PCB z archiwum SVN Bus Pirate. Jeśli chcieliby Państwo profesjonalnie przygotowaną płytkę PCB lub zestaw 3EEPROM, możemy zorganizować zakup grupowy, jeśli zainteresowanych jest 10 lub 20 osób. Lista części R1 Rezystor 1800 omów (1/8 W) C2, kondensator 3 0,1 uF/10 V + męska listwa stykowa JP1-4 0,1" IC1 DS2431 1-przewodowa pamięć EEPROM 1K TO-92IC4** 24AA014-I/P I2C EEPROM DIP8IC5** 25AA010A-I/P SPI EEPROM DIP8ICS4, 5 8-pinowe gniazdo DIP dla IC5, 6**IC4, IC5 może mieć dowolny rozmiar, połączyliśmy się z małymi chipami, użyliśmy 128 bajtów i 128 KB. Nie mogłem zawrzeć niektórych tabel formatowania i HTML w Instructable, możesz zobaczyć oryginalny post na blogu Dangerous Prototypes.

Krok 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

DemonstracjeWszystkie dema EEPROM wyglądają prawie tak samo. Wypiszemy kilka liczb na chipie, a następnie je odczytamy. Każde urządzenie ma warunki, które mają zastosowanie, gdy chcesz zapisać więcej niż kilka wartości, takich jak rozmiar strony i ograniczenia brzegowe. Przeczytaj więcej na ten temat w arkuszu danych dla konkretnego urządzenia. Jeśli nie możesz uruchomić demonstracji, pobierz pełny dziennik terminala, aby nie przegapić ani jednej rzeczy, którą zrobiliśmy. Rezystory podciągające są najczęstszym problemem, sprawdź napięcie pinów podciągających za pomocą menu 'v' w terminalu Bus Pirate. Chip: 25AA, SPI EEPROM (1Kbyte). Bus:SPI. Rezystory podciągające wymagane tylko w przypadku interfejsu o napięciu mieszanym. Wymagania dotyczące zasilania: 1,8 V do 5,5 V (AA), 2,5 V do 5,5 V (LC). Źródła: arkusz danych, demonstracja Hack a Day. Kompletny dziennik sesji Bus Pirate dla tej demonstracji. Nie mogłem zawrzeć niektórych tabel formatowania i HTML w Instructable, możesz zobaczyć oryginał na blogu Dangerous Prototypes. IC5 to EEPROM I2C serii 25AA firmy Microchip, te EEPROM-y są dostępne w tonie rozmiarów. Części AA mają napięcie od 1,8 V do 5,5 V, podczas gdy części 25LC wymagają minimum 2,5 V. C3 (0,1 uF) oddziela pamięć EEPROM SPI od zasilania. Piny ochrony przed zapisem (WP) i hold mogą być kontrolowane przez mikrokontroler, ale wyłączyliśmy je, trzymając te piny wysoko. Piny magistrali SPI, CS, DO, CLK i DI, są doprowadzone do złącza JP4. Konfiguracja Jeśli używasz Bus Pirate, podłącz go do 3EEPROM lub 25AA-IC, jak pokazano na rysunku poniżej. SPI zwykle nie wymaga rezystorów podciągających. Interfejs W terminalu Bus Pirate naciśnij 'm', aby przejść do menu trybu i wybierz SPI. Skonfiguruj bibliotekę SPI dla normalnego wyjścia pinowego, użyj wartości domyślnych dla wszystkich innych ustawień trybu SPI. Włącz zasilacze (duże „W”) w monicie trybu SPI. Na koniec uzyskaj raport o napięciu, aby upewnić się, że zasilacze działają („v”). Zademonstrujemy, jak połączyć EEPROM bezpośrednio z napięciem 3,3 V przy użyciu biblioteki SPI w normalnym trybie pinów. Rezystory podciągające nie są wymagane do tego demo. Jeśli chcesz połączyć EEPROM zasilany napięciem 5 V, użyj biblioteki SPI w trybie pinów otwartego kolektora (HiZ) i włącz rezystory podciągające z pinem Vpullup (Vpu) podłączonym do zasilania EEPROM. Krok 1, wyłącz ochronę przed zapisem' SPI>[0b110]CS ENABLED <<<chip select enabledWRITE: 0x06 <<<wyłącz polecenie ochrony przed zapisemCS DISABLED <<25AA- jest chroniony przed zapisem po włączeniu zasilania. Opuść chip select (CS) ([), wyślij polecenie wyłączenia ochrony przed zapisem (0x06), a następnie podnieś CS (]), aby włączyć zapis do EEPROM. Polecenie wyłączenia ochrony przed zapisem to 0b00000110 w formacie binarnym, ale możemy je skrócić do 0b110 i Bus Pirate wciąż rozumie. Krok 2, wpisz SPI>[0b10 0 3 2 1]CS ENABLED <<<chip select enabledWRITE: 0x02 <<<wpisz polecenieWRITE: 0x00 <<<wpisz adres początkowyWRITE: 0x03 <<<3 wartości do zapisania (3, 2, 1)ZAPIS: 0x02ZAPIS: 0x01CS WYŁĄCZONY <<Teraz EEPROM jest zapisywalny. Najpierw obniż CS, aby aktywować 25AA- ([). Następnie wyślij polecenie zapisu (0x02) i lokalizację, aby rozpocząć pisanie (0). Wyślij dane do przechowywania (3 2 1), a następnie podnieś CS (]), aby zapisać wartości. Uwaga: użyliśmy maleńkiej pamięci EEPROM o pojemności 128 bajtów, większe układy będą używać adresu 16-bitowego (2 bajty). To polecenie będzie miało postać [0b10 0 '''0''' 3 2 1] dla EEPROMów większych niż 256 bajtów, zanotuj drugie 0. Sprawdź arkusz danych swojej EEPROM, aby się upewnić. Krok 3, odczytaj wartości z powrotem SPI>[0b11 0 r:3]CS ENABLED <<<chip select enabledWRITE: 0x03 <<<polecenie odczytuWRITE: 0x00 <<<odczyt adresu startowego BULK READ 0x03 BYTES: <<<odczyt 3 wartości0x03 0x02 0x01CS WYŁĄCZONY <<Na koniec odczytaj dane z powrotem, aby sprawdzić, czy zapis się powiódł. Wybierz 25AA- ([), wyślij polecenie odczytu (0x03) i adres startowy (0), a następnie odczytaj trzy wartości (r:3). Podnieś CS, aby zakończyć transakcję (]). Wartości się zgadzają, zapis się powiódł. Uwaga: użyliśmy maleńkiej pamięci EEPROM o pojemności 128 bajtów, większe układy będą używać adresu 16-bitowego (2 bajty). To polecenie będzie miało postać [0b11 0 '''0''' r:3] dla EEPROMów większych niż 256 bajtów, zanotuj drugie 0. Sprawdź arkusz danych swojej EEPROM, aby się upewnić.

Krok 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

Chip: 24AA, EEPROM I2C (1 KB). Magistrala: I2C, wymagane rezystory podciągające. Wymagania dotyczące zasilania: 1,8 V do 5,5 V (24AA), 2,5 V do 5,5 V (24LC). Źródła: arkusz danych, demonstracja Hack a Day. Kompletny dziennik sesji Bus Pirate dla tej demonstracji. Nie mogłem zawrzeć niektórych tabel formatowania i HTML w instrukcji Instructable, możesz zobaczyć oryginał na blogu Dangerous Prototypes. IC4 to EEPROM I2C serii 24AA firmy Microchip, te EEPROM są dostarczane mnóstwo rozmiarów. Części AA działają od 1,8 V do 5,5 V, podczas gdy części 24LC wymagają minimum 2,5 V. Kondensator 0,1 uF (C2) oddziela IC4 od zasilania. Pin zabezpieczający przed zapisem (WP) mógłby być sterowany z mikrokontrolera, ale dla tej prostej demonstracji wyłączamy go poprzez połączenie z masą. Piny magistrali I2C, SDA i SCL, są wyprowadzone do nagłówka JP2. Adres większości pamięci EEPROM 24AA to 1010AAAS, z ostatnimi czterema bitami określanymi przez piny adresu (A0, A1, A2) i bit wyboru trybu odczytu/zapisu (S). W tym przykładzie wszystkie bity adresu są uziemione, więc adres zapisu EEPROM to 10100000 (strona 6 arkusza danych). Konfiguracja Jeśli używasz Bus Pirate, podłącz go do 3EEPROM lub 24AA-IC, jak pokazano na poniższym wykresie. I2C to dwukierunkowa magistrala, która wymaga rezystorów podciągających na obu pinach. Możesz użyć wbudowanych rezystorów podciągających Bus Pirate, podłączając pin Vpullup (Vpu) do zasilacza 3,3 V i włączając je w terminalu. Uwaga dotycząca interfejsu: Nie wszystkie EEPROM-y I2C działają tak samo. Na przykład maleńki 24AA01 ma zupełnie inny system adresowania i poleceń. Pamiętaj, aby sprawdzić arkusz danych swojego chipa. Naciśnij 'm' w terminalu Bus Pirate i wybierz I2C z menu trybu. Włącz zasilacze (duże 'W') i rezystory podciągające ('p', opcja 2) po znaku zachęty I2C. Uzyskaj raport o napięciu („v”), aby upewnić się, że zasilacze są włączone, a pin Vpullup jest podłączony do napięcia. I2C>(0) <<(1) <<<użyj makra wyszukiwania adresuPrzeszukiwanie 7-bitowej przestrzeni adresowej I2C. Znalezione urządzenia pod adresem:0xA0 0xA1 <<Wiemy już, że adres I2C to 10100000, ale możemy również użyć makra wyszukiwania I2C Bus Pirata (1), aby wyszukać 24AA-. Makro wyszukiwania znalazło urządzenie pod oczekiwanymi adresami zapisu (0xA0) i odczytu (0xA1). Krok 1, zapisz wartości I2C>[0b10100000 0 0 3 2 1]I2C START CONDITION <<<I2C start condition WRITE: 0xA0 GOT ACK: YES <<<24AA- wpisz adresWRITE: 0x00 GOT ACK: YES <<<wpisz bajt adresu 1WRITE: 0x00 GOT ACK: YES <<<write address byte 2WRITE: 0x03 GOT ACK: YES <<<3 wartości do zapisu (3, 2, 1)WRITE: 0x02 GOT ACK: YESWRITE: 0x01 GOT ACK: YESI2C WARUNEK STOP < <Rozpocznij zapis od warunku początkowego I2C ([), po którym następuje adres zapisu 24AA- (0xa0). Następnie wyślij adres 16-bitowy do zapisu (0 0) i dane do zapisu (3 2 1). Zakończ transakcję I2C z warunkiem zatrzymania (]). Krok 2, ustaw wskaźnik odczytu I2C>[0b10100000 0]I2C START CONDITION <<<I2C start condition WRITE: 0xA0 GOT ACK: YES <<<24AA- adres zapisuWRITE: 0x00 GOT ACK: YES <<<wpisz adres byte 1WRITE: 0x00 GOT ACK: TAK <<<zapisz bajt adresu 2I2C WARUNEK ZATRZYMANIA <<Odczyt z 24AA- wymaga dwóch operacji. Jeden pozycjonuje wskaźnik odczytu/zapisu, a drugi zwraca wartości. Rozpocznij od warunku początkowego I2C ([) i adresu zapisu (0xa0). Wyślij 16-bitowy adres do odczytu (0 0), a następnie warunek zatrzymania (]). Tym razem nie wysłaliśmy żadnych danych do zapisu, po prostu ustawiliśmy wskaźnik odczytu/zapisu z powrotem na początek danych, które zapisaliśmy w kroku 1. Krok 3, odczytaj wartości I2C>[0b10100001 r:3]I2C WARUNEK STARTU <<<I2C start warunek ZAPIS: 0xA1 GOT ACK: TAK <<<24AA- odczytaj adres BULK READ 0x03 BYTES: <<<odczytaj 3 wartości0x03 0x02 0x01I2C STOP WARUNEK <<Krok 2 ustaw wskaźnik odczytu/zapisu na początek danych, które chcemy odczytać. Teraz możemy odczytać dane za pomocą adresu odczytu 24AA-. Zacznij od warunku początkowego I2C ([) i adresu odczytu 24AA- (0xa1). Przeczytaj trzy wartości, które zapisaliśmy w kroku 1 (r:3), i zakończ z warunkiem zatrzymania (]). Jeśli wartości się zgadzają, oznacza to, że zapis się powiódł.

Krok 4: DS2431 1-Wire EEPROM

DS2431 1-przewodowa pamięć EEPROM
DS2431 1-przewodowa pamięć EEPROM
DS2431 1-przewodowa pamięć EEPROM
DS2431 1-przewodowa pamięć EEPROM
DS2431 1-przewodowa pamięć EEPROM
DS2431 1-przewodowa pamięć EEPROM

Układ: DS2431, 1-przewodowa pamięć EEPROM (1 KB). Bus:1-Wire, wymagany rezystor podciągający <2,2Kohm. Wymagania dotyczące zasilania: 2,8 V do 5,25 V. Źródła danych: arkusz danych, demonstracja Hack a Day. Kompletny dziennik sesji Bus Pirate do tej demonstracji. Nie mogłem zawrzeć niektórych tabel formatowania i HTML w instrukcji Instructable, oryginał można zobaczyć na blogu Dangerous Prototypes. DS2431 pobiera energię z rezystora podciągającego i nie potrzebuje zewnętrznego zasilacza ani kondensatora odsprzęgającego. 1-Wire wymaga silnego rezystora podciągającego, maksymalnie 2,2 kiloomów. Wbudowane rezystory podciągające Bus Pirate są 10K, za słabe, aby prawidłowo zasilać DS2431 podczas zapisu. Pomiędzy zasilaniem a pinem magistrali 1-Wire należy użyć zewnętrznego rezystora 2,2 kΩ lub mniejszego. Jeśli masz trudności z zapisem danych, upewnij się, że rezystor podciągający jest wystarczająco duży. Płytka eksploratora 3EEPROM zawiera rezystor podciągający 1800 omów (R1) na magistrali 1-Wire, więc nie jest potrzebny zewnętrzny rezystor. Konfiguracja Jeśli używasz Bus Pirate, podłącz go do płyty 3EEPROM lub DS2431, jak pokazano na poniższym wykresie. DS2431 nie wymaga pinu zasilania, jest on używany na płytce 3EEPROM do zasilania dużego rezystora podciągającego dla magistrali 1-Wire. Interfejs Naciśnij „m” w terminalu Bus Pirate i wybierz tryb 1-Wire. Włącz zasilanie pokładowe (duże „W”) i sprawdź monitor napięcia (v). Krok 1, znajdź adres urządzenia 1-WIRE>(0xf0) <<<1-Wire search macro 1WIRE ROM COMMAND: SEARCH (0xF0) Znalezione urządzenia pod adresem: Macro 1WIRE address1.0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B <<<DS2431 unikalny identyfikator * DS2431 1K EEPROM <<Każde urządzenie 1-Wire ma unikalny 8-bajtowy identyfikator. 1-Wire posiada procedurę wyszukiwania, która wykrywa ID wszystkich podłączonych urządzeń. Bus Pirate implementuje wyszukiwanie 1-Wire jako makro (240). Wpisz „(240)” w terminalu Bus Pirate, aby rozpocząć wyszukiwanie 1-Wire. Każdy adres urządzenia jest drukowany, znane urządzenia są identyfikowane. Pierwsze dziesięć adresów urządzeń 1-Wire jest przechowywanych jako makra, w tym przykładzie nasz adres DS2431 jest dostępny po wpisaniu '(1)' w terminalu. Krok 2, zapisz 8 bajtów do notatnika 1-WIRE>(0x55) (1) 0x0f 0 0 8 7 6 5 4 3 2 11WIRE BUS RESET OK <<<również { komenda 1WIRE WRITE ROM COMMAND: MATCH (0x55) * następnie z adresem 64bit1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B ' WRITE: 0x0F <<<DS2431 polecenie zapisu w notatniku WRITE: 0x00 <<<DS2431 adres zapisu bajt 1 WRITE: 0x00 <<<DS2431 adres zapisu byte 2WR: 0x08 <<Następnie zapiszemy 8 bajtów w tymczasowej lokalizacji w DS2431 zwanej notatnikiem. Rozpocznij transakcję od resetu magistrali 1-Wire i polecenia MATCH (0x55). Oba są dostępne jako makro '(0x55)'. Można to również zrobić bez makra, wpisując „{ 0x55”, { wysyła reset 1-Wire, 0x55 to polecenie MATCH 1-Wire. Po poleceniu MATCH wyślij 8 bajtowy identyfikator urządzenia na adres. Użyliśmy makra (1), które zostało wypełnione identyfikatorem DS2431 w kroku 1. Można również ręcznie wprowadzić 8-bajtowy identyfikator. W tym momencie DS2431 powinien otrzymać swój adres i być gotowy na polecenia. 0x0f to polecenie zapisu w notatniku, mówi DS2431, aby oczekiwał danych. Kolejne dwa bajty mówią, gdzie umieścić dane, zapiszemy je na początku (0 0). Na koniec wysyłamy 8 bajtów wartości do przechowania, liczby od 8 do 1. Musisz zapisać pełne 8 bajtów do DS2431. Ponadto adres zapisu musi znajdować się na granicy 8 bajtów. Zobacz arkusz danych, aby uzyskać pełny przegląd ograniczeń zapisu. Krok 3, zweryfikuj notatnik i uzyskaj kod autoryzacji 1-WIRE>(0x55)(1) 0xaa r:3 r:8 r:2 r:21WIRE BUS RESET OK <<<adres do urządzenia1WIRE WRITE ROM COMMAND: MATCH (0x55) *podaj 64-bitowy adres1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<<odczytaj polecenie z notatnika BULK READ 0x03 BYTES: <<<kod autoryzacji0x00 0x00 0x07BULK READ:0x08<the BY 0x07 0x06 0x05 0x04 0x03 0x02 0x01BULK READ 0x02 BYTES: <<<CRC dla danych0xC8 0x86BULK READ 0x02 BYTES: <<Sprawdź, czy dane zostały odebrane poprawnie i uzyskaj kod autoryzacji zapisu. Rozpocznij ponownie od resetu 1-Wire i makra polecenia MATCH (0x55) oraz makra adresu urządzenia (1). Tym razem wyślij polecenie odczytu notatnika DS2431 (0xAA), a następnie odczytaj łącznie 15 bajtów. Pierwsze 3 odczytane bajty (r:3) to kod autoryzacji zapisu, będziemy go potrzebować w następnym kroku, aby skopiować notatnika do EEPROM. Następne 8 bajtów (r:8) powinno pasować do danych, które wysłaliśmy w kroku 2. Ostatnie 2 bajty (r:2) to CRC16 dla danych. Odczyty po CRC zwracają wszystkie 1s. Krok 4, zapisz notatnik do EEPROM 1-WIRE>(0x55)(1) 0x55 0x00 0x00 0x071WIRE BUS RESET OK <<<adres urządzenia1WIRE WRITE ROM COMMAND: MATCH (0x55) *podaj 64bit adres1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0x55 <<<skopiuj komendę zdrapkaWRITE: 0x00 <<<3 bajtowy kod autoryzacji z kroku 3WRITE: 0x00WRITE: 0x071-WIRE>Mamy wszystko, czego potrzebujemy, aby na stałe przechowywać dane z notatnika w EEPROM. Zaadresuj urządzenie, a następnie wyślij polecenie kopiowania do notatnika DS2431 (0x55), a następnie trzybajtowy kod autoryzacji, który uzyskaliśmy w kroku 3 (0x00 0x00 0x07). Jeśli kod autoryzacji jest poprawny, dane są przenoszone do EEPROM. Krok 5, sprawdź w notatniku write 1-WIRE>(0x55)(1) 0xaa r:31WIRE BUS RESET OK <<<zaadresuj urządzenie1WIRE WRITE ROM COMMAND: MATCH (0x55) *podaj adres 64bit1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<<polecenie odczytu z notatnika BULK READ 0x03 BYTES:0x00 0x00 0x87 <<DS2431 ustawia najwyższy bit kodu autoryzacji zapisu po udanym poleceniu kopiowania notatnika. Wyślij kolejne polecenie odczytu notatnika (0xAA), aby uzyskać zaktualizowany kod autoryzacji, ale po prostu przeczytaj pierwsze trzy bajty (r:3). Poprzednia wartość 0x07 zmieniła się na 0x87, polecenie kopiowania zostało pomyślnie odebrane. Krok 6, odczytaj wartości 1-WIRE>(0x55)(1) 0xf0 0x00 0x00 r:8 r:81WIRE BUS RESET OK <<<zaadresuj urządzenie1WIRE WRITE ROM COMMAND: MATCH (0x55) *podaj adres 64bit1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xF0 <<<DS2431 polecenie odczytuWRITE: 0x00 <<<2 bajty odczyt adresuWRITE: 0x00BULK READ 0x08 BYTES: <<<odczytaj 8 bajtów, które napisaliśmy 0x08 0x07 0x0206 0x05x 0x08 bajtów: <<Sprawdź, czy zapis działał poprawnie, pobierając wartości. Zaadresuj DS2431, a następnie wyślij polecenie odczytu (0xf0) i adres do odczytu (0x00 0x00). Możliwe jest odczytanie całego zakresu pamięci za pomocą jednego polecenia. Odczytujemy osiem bajtów, które napisaliśmy wcześniej (r:8), które zwróciły oczekiwane wartości. Osiem bajtów poza tymi wartościami nie zostało zapisanych i zwraca 0.

Krok 5: Wniosek

Wniosek
Wniosek

Wniosek Ten prototyp uczy o pamięci EEPROM i pokazuje, jak używać Bus Pirate z trzema popularnymi protokołami: 1-Wire, I2C i SPI. Płytka eksploratora 3EEPROM zapewnia prawidłowe połączenia z każdym EEPROM i zapewnia zewnętrzny rezystor podciągający dla bardziej wymagającą magistralę 1-Wire z komponentami zasilanymi pasożytniczo. Możemy mieć płytki PCB 3EEPROM explorer lub zestawy wyprodukowane w Seeed Studio. Obwody drukowane kosztują około 10 USD, zestawy około 15 USD, wysyłane na cały świat. Na początek musimy zorganizować grupowy zakup 10 PCB lub 20 zestawów.

Zalecana: