Talaan ng mga Nilalaman:

Bus Pirate 3EEPROM Explorer Board: 5 Hakbang
Bus Pirate 3EEPROM Explorer Board: 5 Hakbang

Video: Bus Pirate 3EEPROM Explorer Board: 5 Hakbang

Video: Bus Pirate 3EEPROM Explorer Board: 5 Hakbang
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Hulyo
Anonim
Bus Pirate 3EEPROM Explorer Board
Bus Pirate 3EEPROM Explorer Board

Kung mayroon kang isa sa Mga Pirates ng Bus sa Isang Araw, ano ang gagawin mo rito? Alamin ang tungkol sa 1-wire, I2C, at SPI EEPROMs na may 3EEPROM explorer board (tinatawag naming THR-EE-PROM). AngEEPROM ay isang uri ng memory chip na nag-iimbak ng data nang walang tuluy-tuloy na suplay ng kuryente. Kapaki-pakinabang para sa permanenteng pag-iimbak ng data sa maliliit na mga circuit ng logger, o paghawak ng mga pasadyang pahina sa isang mini web server. Ang EEPROMs ay nagmula sa maraming laki at mga protokol. Ang 3EEPROM ay may tatlong karaniwang mga EEPROM chips: ang DS2431 (1-Wire), 24AA- (I2C), at 25AA- (SPI). Ang lahat ng tatlo ay dating ipinakita sa Hack a Day, ngunit ang bawat demo ay gumagamit ng iba't ibang bersyon ng hardware at firmware ng Bus Pirate, mahirap para sa isang nagsisimula na sundin ang paggamit ng Bus Pirate v2go. Magpatuloy na basahin para sa isang na-update, sunud-sunod na gabay sa paggamit ang DS2431, 24AA-, at 25AA- EEPROMs na may Bus Pirate v2go. Nakuha rin namin ang buong mga tala ng session bilang mga file ng teksto upang hindi ka makaligtaan ang isang solong detalye. Maaari kaming magkaroon ng 3EEPROM explorer board PCB o mga kit na ginawa sa Seeed Studio. Ang mga PCB ay halos $ 10, ang mga kit ay halos $ 15, naipadala sa buong mundo. Kailangan naming ayusin ang isang pagbili ng pangkat ng 10 PCB o 20 kit upang makapagsimula. Kung interesado ka sa isang Bus Pirate, darating ang bersyon 3. Hindi ko maisama ang ilang mga elemento ng pag-format at mga talahanayan ng HTML sa isang Maituturo, maaari mong makita ang orihinal na post sa blog na Dangerous Prototypes.

Hakbang 1: Pangkalahatang-ideya ng Hardware ng 3EEPROM

Pangkalahatang-ideya ng 3EEPROM Hardware
Pangkalahatang-ideya ng 3EEPROM Hardware
Pangkalahatang-ideya ng 3EEPROM Hardware
Pangkalahatang-ideya ng 3EEPROM Hardware
Pangkalahatang-ideya ng 3EEPROM Hardware
Pangkalahatang-ideya ng 3EEPROM Hardware

Ang layunin ng prototype na ito ay upang malaman ang tungkol sa EEPROM at tatlong karaniwang mga protokol ng bus. Una, tinitingnan namin ang 3EEPROM PCB, pagkatapos ay ipinapakita namin ang bawat EEPROM gamit ang isang Bus Pirate unibersal na serial interface tool. Kung wala kang isang Bus Pirate, maaari mo pa ring sundin dahil ang pangunahing pagkakasunud-sunod ng mga pagpapatakbo ng interface ay mananatiling pareho kahit na paano mo ipatupad ang mga ito. CircuitFull size eskematiko [PNG]. Ginawa namin ang circuit at PCB gamit ang bersyon ng freeware ng Cadsoft Eagle. Maaari mong i-download ang eskematiko at PCB mula sa archive ng Bus Pirate SVN. Ang 3EEPROM PCB ay nagtataglay ng DS2431 1-Wire EEPROM (IC1), isang 24AA- I2C EEPROM (IC4), at isang 25AA- SPI EEPROM (IC5). Ang DS2431 (Ang IC1) ay kumukuha ng lakas na parasitiko mula sa 1-Wire bus, wala itong panlabas na power supply pin at hindi nangangailangan ng decoupling capacitor. Ang IC2 at IC3 ay walang laman na mga spot para sa karagdagang mga aparato na 1-Wire, tulad ng isa pang DS2431 o isang sensor ng temperatura ng DS1822. Ang C1 (0.01uF) ay opsyonal at kinakailangan lamang kung ang IC2 o IC3 ay pinunan ng isang pinalakas na aparato na 1-Wire.1-Wire ay nangangailangan ng isang malakas na resistor na pull-up, isang maximum na 2.2K ohms. Ang on-board pull-up resistors ng Bus Pirate ay 10K, masyadong mahina upang maayos na ma-power ang DS2431 habang nagsusulat. Ang board ng explorer ng 3EEPROM ay may kasamang 1.8k ohm, 1 / 8th watt pull-up risistor (R1) sa 1-Wire bus upang hindi na kailangan ng karagdagang pull-up risistor. Ang 24AA- (IC4) at 25AA- (IC5) bawat isa ay nakakakuha ng isang 0.1uF capacitor upang mai-decouple ang mga ito mula sa power supply (C2, C3). Marahil ay hindi mo kailangan ang mga capacitor sa isang simpleng circuit, tinanggal namin ang mga ito mula sa prototype board sa demonstrasyon. Ang I2C bus na ginamit ng 24AA- ay nangangailangan din ng mga pull-up resistor, ngunit ang on-board na 10K ohm pull-up resistors ng Bus Pirate ay sapat. Ang lahat ng mga sangkap ay gagana mula 2.8volts hanggang 5volts DC. Ang circuit ay pinalakas sa pamamagitan ng mga pin ng VCC at GND ng jumper 3. Mayroong dalawang mga pin ng VCC, ang isa ay para sa lakas, ang isa pa ay para sa pull-up resistor voltage input pin ng Bus Pirate (Vpullup). Ginawa namin ng PCB ang circuit at PCB gamit ang bersyon ng freeware ng Cadsoft Eagle. Maaari mong i-download ang eskematiko at PCB mula sa archive ng Bus Pirate SVN. Kung nais mo ng isang handa na propesyonal na PCB o 3EEPROM kit, maaari kaming magayos ng isang pagbili ng pangkat kung 10 o 20 katao ang interesado. Listahan ng mga bahagi R1 1800 ohm risistor (1 / 8th watt) C2, 3 0.1uF capacitor / 10volts + JP1-4 0.1 "male pin headerIC1 DS2431 1K 1-wire EEPROM TO-92IC4 ** 24AA014-I / P I2C EEPROM DIP8IC5 ** 25AA010A-I / P SPI EEPROM DIP8ICS4, 5 8 pin DIP socket para sa IC5, 6 ** IC4, IC5 ay maaaring maging anumang laki, naka-link kami sa maliliit na chips, gumamit kami ng 128bytes at 128Kbytes. Hindi ko maisama ang ilang pag-format at mga talahanayan ng HTML sa isang Maituturo, maaari mong makita ang orihinal na post sa blog na Dangerous Prototypes.

Hakbang 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

Mga Pagpapakita Lahat ng mga demo ng EEPROM ay mukhang pareho. Susulat kami ng ilang mga numero sa maliit na tilad, at pagkatapos ay basahin ang mga ito. Ang bawat aparato ay may mga kundisyon na nalalapat sa sandaling nais mong magsulat ng higit sa ilang mga halaga, tulad ng laki ng pahina at mga limitasyon sa hangganan. Magbasa nang higit pa tungkol sa mga ito sa datasheet para sa iyong tukoy na aparato. Kung hindi ka makakakuha ng isang demonstrasyon upang gumana, i-download ang kumpletong log ng terminal upang hindi mo makaligtaan ang isang bagay na ginawa namin. Ang mga pull-up resistor ang pinakakaraniwang problema, suriin ang boltahe ng pull-up na pin gamit ang menu na 'v' sa terminal ng Bus Pirate. Kopya: 25AA, SPI EEPROM (1Kbyte). Bus: SPI. Kinakailangan lamang ang mga pull-up resistor para sa interfacing na may halong boltahe. Mga kinakailangan sa kapangyarihan: 1.8volts hanggang 5.5volts (AA), 2.5volts hanggang 5.5volt (LC). Mga Sanggunian: datasheet, Hack a Day demonstration. Kumpletuhin ang log ng Pirate ng Bus para sa demonstrasyong ito Hindi ko maisama ang ilang mga pag-format at talahanayan ng HTML sa isang Maituturo, maaari mong makita ang orihinal sa blog na Dangerous Prototypes. Ang IC5 ay isang serye na 25AA- na I2C EEPROM mula sa Microchip, ang mga EEPROM na ito ay may isang toneladang laki. Ang mga bahagi ng AA ay tumatakbo mula sa 1.8volts hanggang 5.5volts, habang ang 25LC- na bahagi ay may 2.5volt minimum na kinakailangan. Ang C3 (0.1uF) ay pinalalabas ang SPI EEPROM mula sa power supply. Ang pagsulat na protektahan (WP) at hawakan ang mga pin ay maaaring kontrolin ng isang microcontroller, ngunit hindi namin pinagana ang mga ito sa pamamagitan ng pagpindot sa mga pin na ito nang mataas. Ang mga SPI bus pin, CS, DO, CLK, at DI, ay dinadala sa header JP4. Pag-setup Kung gumagamit ka ng isang Bus Pirate, ikonekta ito sa 3EEPROM o 25AA- IC tulad ng ipinakita sa imahe ng tsart sa ibaba. Karaniwang hindi nangangailangan ang SPI ng mga pull-up resistor. Pag-interfacing Sa terminal ng Bus Pirate pindutin ang 'm' para sa menu menu at piliin ang SPI. I-configure ang SPI library para sa normal na output ng pin, gamitin ang mga default para sa lahat ng iba pang mga setting ng mode na SPI. Paganahin ang mga power supply (malaki 'W') sa prompt ng SPI mode. Sa wakas, kumuha ng isang ulat ng boltahe upang matiyak na gumagana ang mga power supply ('v'). Ipapakita namin kung paano direktang i-interface ang EEPROM sa 3.3volts gamit ang SPI library sa normal na mode ng pin. Ang mga pull-up resistor ay hindi kinakailangan para sa demo na ito. Kung nais mong i-interface ang isang EEPROM na pinalakas ng 5volts, gamitin ang SPI library sa open collector (HiZ) pin mode at paganahin ang mga pull-up resistors na may Vpullup pin (Vpu) na konektado sa power supply ng EEPROM. Hakbang 1, patayin ang pagsulat-protektahan ang 'SPI> [0b110] CS ENABLED <<< chip select pinaganaWRITE: 0x06 <<< huwag paganahin ang sumulat protektahan ang mga commandCS DISABLED <<Ang 25AA- ay isinusulat na protektado sa power-on. Piliin ang mas mababang chip (CS) ([), ipadala ang huwag paganahin ang sumulat ng protektahan ang utos (0x06), at pagkatapos ay itaas ang CS (]) upang paganahin ang mga pagsusulat sa EEPROM. Ang hindi paganahin ang sumulat ng proteksyon ng utos ay 0b00000110 sa binary, ngunit maaari natin itong paikliin upang 0b110 at naiintindihan pa rin ng Bus Pirate. Hakbang 2, isulat ang ilang mga halagang 'SPI> [0b10 0 3 2 1] CS ENABLED <<< chip select pinaganaWRITE: 0x02 <<< sumulat ng commandWRITE: 0x00 <<< isulat ang start addressWRITE: 0x03 <<< 3 mga halaga upang isulat (3, 2, 1) WRITE: 0x02WRITE: 0x01CS DISABLED <<Ngayon ang EEPROM ay nasusulat. Una, babaan ang CS upang buhayin ang 25AA- ([). Susunod, ipadala ang sumulat na utos (0x02) at ang lokasyon upang simulang magsulat (0). Ipadala ang data upang maiimbak (3 2 1), pagkatapos itaas ang CS (]) upang mai-save ang mga halaga. Tandaan: gumamit kami ng isang maliit na 128byte EEPROM, ang mas malaking chips ay gagamit ng isang 16bit (2 byte) na address. Ang utos na ito ay magiging [0b10 0 '' '0' '' 3 2 1] para sa mga EEPROM na mas malaki sa 256bytes, tandaan ang pangalawang 0. Suriin ang datasheet para masiguro ang iyong EEPROM. Hakbang 3, basahin ang mga halaga pabalik SPI> [0b11 0 r: 3] CS ENABLED <<< chip select pinaganaWRITE: 0x03 <<< read commandWRITE: 0x00 <<< read start addressBULK READ 0x03 BYTES: <<< read 3 values0x03 0x02 0x01CS NAKA-disable <<Panghuli, basahin muli ang data upang ma-verify na matagumpay ang pagsulat. Piliin ang 25AA- ([), ipadala ang read command (0x03) at simulan ang address (0), at pagkatapos ay basahin ang tatlong halaga (r: 3). Taasan ang CS upang makumpleto ang transaksyon (]). Tumutugma ang mga halaga, matagumpay ang isinulat. Tandaan: gumamit kami ng isang maliit na 128byte EEPROM, ang mas malaking chips ay gagamit ng isang 16bit (2 byte) na address. Ang utos na ito ay magiging [0b11 0 '' '' '' r: 3] para sa mga EEPROM na mas malaki sa 256bytes, tandaan ang pangalawang 0. Suriin ang datasheet para masiguro ang iyong EEPROM.

Hakbang 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, I2C EEPROM (1Kbyte). Bus: I2C, mga pull-up resistor kinakailangan. Mga kinakailangan sa kapangyarihan: 1.8volts hanggang 5.5volts (24AA), 2.5volts hanggang 5.5volt (24LC). Mga Sanggunian: datasheet, Hack a Day demonstration. Kumpletuhin ang log ng session ng Pirate ng Bus para sa demonstrasyong ito. Hindi ko maisama ang ilang pag-format at mga talahanayan ng HTML sa isang Maituturo, maaari mong makita ang orihinal sa blog na Dangerous Prototypes. Ang IC4 ay isang serye na 24AA- na I2C EEPROM mula sa Microchip, ang mga EEPROM na ito ay dumating sa isang tonelada ng laki. Ang mga bahagi ng AA ay gumagana mula sa 1.8volts hanggang 5.5volts, habang ang 24LC- na bahagi ay may 2.5volt minimum na kinakailangan. Ang isang 0.1uF capacitor (C2) ay nagpapalabas ng IC4 mula sa power supply. Ang panulat na protektahan ang pin (WP) ay maaaring makontrol mula sa isang microcontroller, ngunit para sa simpleng demonstrasyong ito hindi namin ito pinagana sa isang koneksyon sa lupa. Ang mga pin ng bus ng I2C, SDA at SCL, ay inilabas sa header JP2. Ang address ng karamihan sa 24AA EEPROMs ay 1010AAAS, na may huling apat na piraso na tinukoy ng mga address pin (A0, A1, A2) at ang read / write mode na pumili ng kaunti (S). Ang lahat ng mga address bit ay pinagbatayan sa halimbawang ito, kaya ang sulatin na address ng EEPROM ay 10100000 (pahina ng datasheet 6). Pag-setup Kung gumagamit ka ng isang Bus Pirate, ikonekta ito sa 3EEPROM o 24AA- IC tulad ng ipinakita sa imahe ng tsart sa ibaba. Ang I2C ay isang bidirectional bus na nangangailangan ng mga pull-up resistors sa parehong mga pin. Maaari mong gamitin ang on-board pull-up resistors ng Bus Pirate sa pamamagitan ng pagkonekta sa Vpullup (Vpu) pin sa 3.3volt power supply at paganahin ang mga ito sa terminal. Tandaan sa Pag-interface: Hindi lahat ng I2C EEPROM ay gumagana nang pareho. Ang maliit na maliit na 24AA01, halimbawa, ay may isang ganap na iba't ibang mga addressing at command system. Tiyaking suriin ang datasheet para sa iyong maliit na tilad. Pindutin ang 'm' sa terminal ng Bus Pirate at piliin ang I2C mula sa menu menu. Paganahin ang mga power supply (malaking 'W') at ang mga pull-up resistors ('p', pagpipilian 2) sa I2C prompt. Kumuha ng isang ulat ng boltahe ('v') upang matiyak na nakabukas ang mga power supply at ang Vpullup pin ay konektado sa isang boltahe. I2C> (0) <<(1) <<< gumamit ng address ng paghahanap ng macroSearching 7bit I2C address space. Makahanap ng mga aparato sa: 0xA0 0xA1 <<Alam na natin na ang I2C address ay 10100000, ngunit maaari din naming gamitin ang Icr sa paghahanap ng I2C ng Bus Pirate (1) upang maghanap para sa 24AA-. Natagpuan ng search macro ang aparato sa inaasahang pagsulat (0xA0) at basahin (0xA1) ang mga address. Hakbang 1, isulat ang ilang mga halagang I2C> [0b10100000 0 0 3 2 1] I2C Start CONDITION <<< I2C simulang kondisyonWRITE: 0xA0 GOT ACK: YES <<< 24AA- sumulat ng addressWRITE: 0x00 GOT ACK: YES <<< isulat ang address byte 1WRITE: 0x00 GOT ACK: YES <<< sumulat ng address byte 2WRITE: 0x03 GOT ACK: YES <<< 3 mga halaga upang isulat (3, 2, 1) SULAT: 0x02 GOT ACK: YESWRITE: 0x01 GOT ACK: YESI2C STOP CONDITION < <Simulan ang pagsulat sa isang kundisyong pagsisimula ng I2C ([), na sinusundan ng 24AA- sulat na address (0xa0). Susunod, ipadala ang address ng 16bit upang isulat sa (0 0) at ang data na isusulat (3 2 1). Tapusin ang transaksyon sa I2C na may kundisyon ng paghinto (]). Hakbang 2, iposisyon ang nabasa na pointer I2C> [0b10100000 0 0] I2C Start CONDITION <<< I2C start conditionWRITE: 0xA0 GOT ACK: YES <<< 24AA- wrote addressWRITE: 0x00 GOT ACK: YES <<< isulat ang address byte 1WRITE: 0x00 GOT ACK: YES <<< sumulat ng address byte 2I2C STOP CONDITION <<Kailangan ng dalawang operasyon upang mabasa mula sa 24AA-. Ang isang posisyon ang nabasa / sumulat na pointer, ang iba ay nagbabalik ng mga halaga. Magsimula sa isang kundisyon ng pagsisimula ng I2C ([) at ang address ng pagsulat (0xa0). Ipadala ang address ng 16bit upang mabasa (0 0), at pagkatapos ang kundisyon ng paghinto (]). Hindi kami nagpadala ng anumang data upang isulat sa oras na ito, inilagay lamang namin ang binasa / isulat na pointer pabalik sa simula ng data na isinulat namin sa hakbang 1. Hakbang 3, basahin ang ilang mga halagang I2C> [0b10100001 r: 3] I2C Start CONDITION <<< I2C simulan ang kundisyonSULAT: 0xA1 GOT ACK: YES <<< 24AA- basahin ang addressBULK BASAHIN 0x03 BYTES: <<< basahin ang 3 mga halaga0x03 0x02 0x01I2C STOP CONDITION <<Hakbang 2 itakda ang binasa / isulat na pointer sa simula ng data na nais naming basahin. Maaari na nating basahin ang data gamit ang 24AA- read address. Magsimula sa kundisyon ng pagsisimula ng I2C ([) at 24AA- read address (0xa1). Basahin ang tatlong halagang isinulat namin sa hakbang 1 (r: 3), at tapusin sa isang kundisyon ng paghinto (]). Kung tumutugma ang mga halaga, naging matagumpay ang iyong pagsusulat.

Hakbang 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

Chip: DS2431, 1-wire EEPROM (1Kbyte). Bus: 1-Wire, <2.2Kohm pull-up resistor kinakailangan. Mga kinakailangan sa kapangyarihan: 2.8volts hanggang 5.25volts. Mga Sanggunian: datasheet, Hack a Day demonstration. Kumpletuhin ang log ng Pirate ng Bus para sa demonstrasyong ito. Hindi ko maisama ang ilang mga pag-format at talahanayan ng HTML sa isang Maituturo, maaari mong makita ang orihinal sa blog na Dangerous Prototypes. Ang DS2431 ay kumukuha ng lakas mula sa pull-up risistor at hindi nangangailangan ng panloob na supply o decoupling capacitor. Ang 1-Wire ay nangangailangan ng isang malakas na resistor na pull-up, isang maximum na 2.2Kohms. Ang on-board pull-up resistors ng Bus Pirate ay 10K, masyadong mahina upang maayos na ma-power ang DS2431 habang nagsusulat. Dapat kang gumamit ng isang 2.2Kohm o mas maliit na panlabas na risistor sa pagitan ng lakas at ng 1-Wire bus pin. Kung nahihirapan kang magsulat ng data, tiyakin na ang iyong pull-up risistor ay sapat na malaki. Ang 3EEPROM explorer board ay nagsasama ng isang 1800 ohm pull-up risistor (R1) sa 1-Wire bus kaya hindi kinakailangan ng panlabas na risistor. Pag-setup Kung gumagamit ka ng isang Bus Pirate, ikonekta ito sa board ng 3EEPROM o DS2431 tulad ng ipinakita sa imahe ng tsart sa ibaba. Ang DS2431 ay hindi nangangailangan ng power supply pin, ginagamit ito sa board ng 3EEPROM upang mapagana ang malaking pull-up risistor para sa 1-Wire bus. Interfacing Press 'm' sa terminal ng Bus Pirate at piliin ang 1-Wire mode. Paganahin ang mga on-board power supply (malaking 'W') at suriin ang boltahe monitor (v). Hakbang 1, hanapin ang address ng aparato 1-WIRE> (0xf0) <<< 1-Wire search macro 1WIRE ROM Command: SEARCH (0xF0) Mga nahanap na aparato sa: Macro 1WIRE address1.0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B <<< DS2431 natatanging ID * DS2431 1K EEPROM <<Ang bawat 1-Wire na aparato ay may natatanging 8 byte ID. Ang 1-Wire ay may pamamaraan sa paghahanap na nakakakita ng ID ng lahat ng mga nakalakip na aparato. Ipinatupad ng Bus Pirate ang paghahanap na 1-Wire bilang macro (240). I-type ang '(240)' sa terminal ng Bus Pirate upang simulan ang paghahanap na 1-Wire. Ang bawat address ng aparato ay naka-print, nakilala ang mga kilalang aparato. Ang unang sampung mga address ng 1-Wire device ay nakaimbak bilang macros, sa halimbawang ito ang aming address ng DS2431 ay magagamit sa pamamagitan ng pag-type ng '(1)' sa terminal. Hakbang 2, isulat ang 8 bytes sa scratch pad 1-WIRE> (0x55) (1) 0x0f 0 0 8 7 6 5 4 3 2 11WIRE BUS RESET OK <<< din {command 1WIRE WRITE ROM Command: MATCH (0x55) * sundin ang 64bit address1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B 'WRITE: 0x0F <<< DS2431 sumulat ng scratch pad command WRITE: 0x00 <<< DS2431 wrote address byte 1 WRITE: 0x00 <<< DS2431ITE address byte 1 WRITE: 0x00 <<< DS2431ITE address byte 2 WRITE: 0x00 <<< DS2431ITE address byte 1 WRITE: 0x00 <<< DS2431ite address byte 2 WRITE: 0x00 <<< DS2431ite address byte 2 WRITE: 0x00 <<< DS2431ite address byte 2 WRITE: 0x00 <<< DS2431ITE address byte 2 WRITE: 0x00: 0x08 <<Susunod magsusulat kami ng 8 bytes sa isang pansamantalang lokasyon sa DS2431 na tinatawag na scratch pad. Simulan ang transaksyon sa isang 1-Wire bus reset at MATCH command (0x55). Parehong magagamit bilang macro '(0x55)'. Magagawa rin ito nang walang isang macro sa pamamagitan ng pag-type ng '{0x55', {nagpapadala ng 1-Wire reset, 0x55 ang utos na 1-Wire MATCH. Matapos ang MATCH command, ipadala ang 8 byte ID ng aparato upang matugunan. Ginamit namin ang macro (1) na pinuno ng DS2431 ID sa hakbang 1. Maaari mo ring ipasok nang manu-mano ang 8 byte ID. Sa puntong ito ang DS2431 ay dapat na natanggap ang address nito at maging handa para sa mga utos. Sasabihin sa susunod na dalawang byte kung saan ilalagay ang data, i-save namin ito sa simula (0 0). Panghuli, nagpapadala kami ng 8 bytes ng mga halaga upang maiimbak, ang mga numero 8 hanggang 1. Dapat kang magsulat ng isang buong 8 bytes sa DS2431. Bilang karagdagan, ang sumulat ng address ay dapat na nasa isang 8 byte na hangganan. Tingnan ang datasheet para sa isang kumpletong pangkalahatang ideya ng mga limitasyon sa pagsulat. Hakbang 3, i-verify ang gasgas na pad at kunin ang code ng pagpapahintulot 1-WIRE> (0x55) (1) 0xaa r: 3 r: 8 r: 2 r: 21WIRE BUS RESET OK <<< tugunan ang aparato1WIRE WRITE ROM CONSA: MATCH (0x55) * sundin ang address ng 64bit1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<< read scratch pad commandBULK READ 0x03 BYTES: <<< code ng pagpapahintulot0x00 0x00 0x07BULK BY0000000 ang0000000000000 0x07 0x06 0x05 0x04 0x03 0x02 0x01BULK BASAHIN 0x02 BYTES: <<< CRC para sa data0xC8 0x86BULK BASAHIN 0x02 BYTES: <<I-verify na natanggap nang tama ang data, at kumuha ng isang code ng pagpapahintulot sa pagsulat. Magsimula muli sa isang 1-Wire reset at MATCH command macro (0x55), at address ng address ng macro (1). Sa oras na ito ipadala ang utos ng DS2431 na binasa ang simula ng pad (0xAA), at pagkatapos ay basahin ang isang kabuuang 15 byte. Ang unang 3 byte na nabasa (r: 3) ay ang sulat ng pahintulot sa pagsulat, kakailanganin namin ito sa susunod na hakbang upang kopyahin ang gasgas pad sa EEPROM. Ang susunod na 8 bytes (r: 8) ay dapat na tumutugma sa data na ipinadala namin sa hakbang 2. Ang huling 2 bytes (r: 2) ay isang CRC16 para sa data. Basahin pagkatapos ibalik ng CRC ang lahat ng 1s. Hakbang 4, isulat ang gasgas pad sa EEPROM 1-WIRE> (0x55) (1) 0x55 0x00 0x00 0x071WIRE BUS RESET OK <<< tugunan ang aparato 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0x55 <<< kopya ang scratch pad commandWRITE: 0x00 <<< 3 byte authorization code mula sa hakbang 3WRITE: 0x00WRITE: 0x071-WIRE> Mayroon kaming lahat na kailangan upang maiimbak ang data ng gasgas na pad sa permanenteng sa EEPROM. Address ang aparato, pagkatapos ay ipadala ang utos ng DS2431 copy scratch pad (0x55) na sinusundan ng tatlong byte authorization code na nakuha namin sa hakbang 3 (0x00 0x00 0x07). Kung tama ang code ng pahintulot, inililipat ang data sa EEPROM. Hakbang 5, i-verify ang gasgas na pad isulat ang 1-WIRE> (0x55) (1) 0xaa r: 31WIRE BUS RESET OK <<< i-address ang aparato 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<< read scratch pad commandBULK READ 0x03 BYTES: 0x00 0x00 0x87 <<Itinatakda ng DS2431 ang pinakamataas na bit ng code ng pahintulot sa pagsulat pagkatapos ng isang matagumpay na kopya ng pad ng pad ng pad. Magpadala ng isa pang basahin na pad pad na utos (0xAA) upang makuha ang na-update na code ng pagpapahintulot, ngunit basahin lamang ang unang tatlong byte (r: 3). Ang dating halaga na 0x07 ay nabago sa 0x87, matagumpay na natanggap ang command na kopya. Hakbang 6, basahin muli ang mga halagang 1-WIRE> (0x55) (1) 0xf0 0x00 0x00 r: 8 r: 81WIRE BUS RESET OK <<< i-address ang aparato 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xF0 <<< DS2431 read commandWRITE: 0x00 <<< 2 byte read addressWRITE: 0x00BULK READ 0x08 BYTES: <<< read the 8 bytes we wrote0x08 0x0x 0x0x 0x0x 0x0x 0x0x 0x0x 0x0x 0x0x 0x0x 0x0x 0x0x 0x0x 0x0x 0x0x 0x 0x 0x08 BYTES: <<Patunayan ang pagsulat na gumana nang maayos sa pamamagitan ng pagkuha ng mga halaga. Address sa DS2431, pagkatapos ay ipadala ang read command (0xf0) at ang address na basahin mula sa (0x00 0x00). Posibleng basahin ang buong saklaw ng memorya na may isang solong utos. Nabasa namin ang walong byte na isinulat namin kanina (r: 8), na nagbalik ng inaasahang mga halaga. Ang walong byte na lampas sa mga halagang ito ay hindi pa nakasulat at naibalik ang 0.

Hakbang 5: Konklusyon

Konklusyon
Konklusyon

Pagtatapos Ang prototype na ito ay nagtuturo tungkol sa memorya ng EEPROM, at ipinapakita kung paano gamitin ang Bus Pirate na may tatlong karaniwang mga protokol: 1-Wire, I2C, at SPI. Tinitiyak ng 3EEPROM explorer board ang tamang mga koneksyon sa bawat EEPROM, at nagbibigay ng isang panlabas na pull-up na risistor para sa ang mas hinihingi na 1-Wire bus na may mga sangkap na pinalakas ng parasitiko. Maaari kaming magkaroon ng 3EEPROM explorer board PCB o mga kit na ginawa sa Seeed Studio. Ang mga PCB ay halos $ 10, ang mga kit ay halos $ 15, naipadala sa buong mundo. Kailangan naming ayusin ang isang pagbili ng pangkat ng 10 PCB o 20 kit upang makapagsimula.

Inirerekumendang: