Sisukord:

Bussipiraat 3EEPROM Explorer Board: 5 sammu
Bussipiraat 3EEPROM Explorer Board: 5 sammu

Video: Bussipiraat 3EEPROM Explorer Board: 5 sammu

Video: Bussipiraat 3EEPROM Explorer Board: 5 sammu
Video: CREALITY ENDER 3 - Новые проблемы при обновлении ПРОШИВКИ 2024, Juuli
Anonim
Bussipiraat 3EEPROM Explorer Board
Bussipiraat 3EEPROM Explorer Board

Kui teil on üks Hack a Day's Bus Pirates, mida te sellega teete? Tutvuge 1-juhtmeliste, I2C- ja SPI-EEPROM-idega 3EEPROM-i uurimisplaadiga (me nimetame seda THR-EE-PROMiks). EEPROM on teatud tüüpi mälukiip, mis salvestab andmeid ilma pideva toiteallikata. See on kasulik andmete püsivaks salvestamiseks väikestes logiahelates või kohandatud lehtede hoidmiseks mini veebiserveris. EEPROM-e on palju suurusi ja protokolle. 3EEPROM-il on kolm ühist EEPROM-kiipi: DS2431 (1-juhtmeline), 24AA- (I2C) ja 25AA- (SPI). Kõiki kolme demonstreeriti varem Hack a Day'l, kuid iga demo kasutab Bus Pirate riistvara ja püsivara erinevat versiooni, mida on algajal raske jälgida Bus Pirate v2go abil. Jätkake lugemist, et saada värskendatud, samm -sammult juhiseid selle kasutamiseks DS2431, 24AA- ja 25AA-EEPROM-id koos bussipiraadiga v2go. Meil on ka täielikud seansilogid tekstifailidena, nii et te ei jätaks ühtegi detaili tähelepanuta. Meil võib olla SeeEtuudios toodetud 3EEPROM explorerplaadi trükkplaate või komplekte. PCBd on umbes 10 dollarit, komplektid on umbes 15 dollarit, tarnitakse kogu maailmas. Alustamiseks peame korraldama 10 PCB või 20 komplekti rühmaostmise. Kui olete huvitatud bussipiraadist, on tulemas versioon 3. Ma ei saanud mõningaid vorminduselemente ja HTML -tabeleid Instructable'i lisada, näete esialgset postitust ohtlike prototüüpide ajaveebis.

Samm: 3EEPROMi riistvara ülevaade

3EEPROMi riistvara ülevaade
3EEPROMi riistvara ülevaade
3EEPROMi riistvara ülevaade
3EEPROMi riistvara ülevaade
3EEPROMi riistvara ülevaade
3EEPROMi riistvara ülevaade

Selle prototüübi eesmärk on õppida tundma EEPROMi ja kolme tavalist siiniprotokolli. Esiteks vaatame 3EEPROM PCB -d, seejärel demonstreerime iga EEPROM -i Bus Pirate universaalse jadaliidese tööriista abil. Kui teil pole bussipiraati, saate seda siiski jälgida, sest liideste toimingute põhijärjekord jääb samaks, olenemata nende rakendamisest. CircuitFull size skemaatiline [PNG]. Valmistasime vooluringi ja trükkplaadi, kasutades Cadsoft Eagle'i tasuta versiooni. Skeemi ja trükkplaadi saate alla laadida Bus Pirate SVN arhiivist. 3EEPROM PCB sisaldab DS2431 1-juhtmelist EEPROM (IC1), 24AA-I2C EEPROM (IC4) ja 25AA-SPI EEPROM (IC5). DS2431 (IC1) võtab voolu parasiitlikult 1-juhtmelisest bussist, sellel pole välist toiteplokki ja see ei vaja lahtiühendavat kondensaatorit. IC2 ja IC3 on tühjad kohad täiendavate 1-juhtmeliste seadmete jaoks, nagu mõni muu DS2431 või DS1822 temperatuuriandur. C1 (0,01uF) on valikuline ja vajalik ainult siis, kui IC2 või IC3 on varustatud toiteallikaga 1-juhtmelise seadmega. 1-juhtmeline vajab tugevat tõmbetakistust, maksimaalselt 2,2 K oomi. Bus Pirate pardatõmbe takistid on 10K, liiga nõrgad, et kirjutamise ajal DS2431 korralikult toita. 3EEPROM-i uurimisplaadil on 1,8-oomine 1/8-vatine tõmbetakistus (R1) 1-juhtmelisel siinil, nii et täiendavat tõmbetakistust pole vaja. 24AA- (IC4) ja 25AA- (IC5) igaüks saab 0,1uF kondensaatori, et need toiteallikast lahti ühendada (C2, C3). Tõenäoliselt ei vaja te nii lihtsas vooluringis kondensaatoreid, me jätsime need demonstratsioonil prototüüpplaadilt välja. 24AA poolt kasutatav I2C-buss nõuab ka tõmbetakistusi, kuid bussi piraadi pardal olevad 10K oomi tõmbetakistid on piisavad. Kõik komponendid töötavad vahemikus 2,8 volti kuni 5 volti. Vooluahela toiteallikaks on hüppaja 3 VCC ja GND tihvtid. Seal on kaks VCC tihvti, üks on toiteallikaks, teine on bussipiraadi tõmbetakistuse pinge sisendtihvti (Vpullup) jaoks. PCB tasuta versioon Cadsoft Eagle. Skeemi ja trükkplaadi saate alla laadida Bus Pirate SVN arhiivist. Kui soovite professionaalselt valmistatud PCB- või 3EEPROM -komplekti, võime 10 või 20 inimese huvides korraldada grupi ostu. Osade loend R1 1800 oomi takisti (1/8 vatti) C2, 3 0,1uF kondensaator/10 volti+JP1-4 0,1 "isaspinniga päisIC1 DS2431 1K 1-juhtmeline EEPROM TO-92IC4 ** 24AA014-I/P I2C EEPROM DIP8IC5 ** 25AA010A-I/P SPI EEPROM DIP8ICS4, 5 8-pin DIP-pistikupesa IC5, 6 ** IC4, IC5 jaoks võib olla mis tahes suurusega, oleme linkinud väikeste kiipidega, kasutasime 128baiti ja 128Kbaiti. Ma ei saanud lisada mõningaid vormindus- ja HTML-tabeleid Instructable'is näete originaalpostitust ohtlike prototüüpide ajaveebis.

2. etapp: 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

Kõik EEPROM -i demod näevad välja peaaegu ühesugused. Kirjutame kiibile mõned numbrid ja loeme need siis läbi. Igal seadmel on tingimused, mis kehtivad, kui soovite kirjutada rohkem kui paar väärtust, näiteks lehe suurus ja piiripiirangud. Lugege nende kohta lisateavet oma konkreetse seadme andmelehelt. Kui teil ei õnnestu demonstratsiooni tööle saada, laadige alla täielik terminalilogi, et te ei jätaks ühtegi asja tegemata. Tõmbetakistid on kõige levinum probleem, kontrollige tõmbetihvti pinget Bus Pirate terminali menüü "v" abil. Kiip: 25AA, SPI EEPROM (1Kbyte). Buss: SPI. Tõmbetakistid on vajalikud ainult segapingega liideste jaoks. Võimsusnõuded: 1,8–5,5 volti (AA), 2,5–5,5 volti (LC). Viited: andmeleht, häkkimise päeva demonstratsioon. Selle demonstratsiooni täielik bussipiraatide seansside logi. Ma ei saanud mõnda vormindamis- ja HTML-tabelit Instructable'i lisada, näete originaali ohtlike prototüüpide ajaveebis. IC5 on 25AA-seeria I2C EEPROM Microchipilt, neid EEPROM-e on palju. AA osad töötavad vahemikus 1,8 volti kuni 5,5 volti, samas kui 25LC osade miinimumnõue on 2,5 volti. C3 (0,1uF) lahutab SPI EEPROM toiteallikast. Kirjutuskaitset (WP) ja hoidmisnõelu saab juhtida mikrokontrolleriga, kuid me keelasime need, hoides neid tihvte kõrgel. SPI siini tihvtid CS, DO, CLK ja DI tuuakse päisesse JP4. Seadistamine Kui kasutate bussipiraati, ühendage see 3EEPROM või 25AA-IC-ga, nagu on näidatud alloleval diagrammipildil. SPI ei vaja tavaliselt tõmbetakistusi. Liidesed Bus Pirate terminalis vajutage režiimimenüü kuvamiseks nuppu „m” ja valige SPI. Konfigureerige SPI -teegi tavaliseks pin -väljundiks, kasutage kõigi muude SPI -režiimi seadete vaikeväärtusi. Luba toiteallikad (suur „W”) SPI -režiimi viipal. Lõpuks hankige pingearuanne, et veenduda toiteallikate töötamises („v”). Me demonstreerime, kuidas ühendada EEPROM otse 3,3 voltiga, kasutades SPI raamatukogu tavalises tihvtirežiimis. Tõmbetakistid pole selle demo jaoks vajalikud. Kui soovite liidestada 5-voldise toitega EEPROM-i, kasutage SPI-teeki avatud kollektori (HiZ) pin-režiimis ja lubage tõmbetakistused, kui Vpullup-tihvt (Vpu) on ühendatud EEPROM-i toiteallikaga. 1. samm, lülitage kirjutuskaitse välja 'SPI> [0b110] CS LUBATUD <<< kiibi valimine lubatud WRITE: 0x06 <<< keela kirjutuskaitse käsk CS DISABLED <<25AA- on sisselülitamisel kirjutuskaitsega. Alumine kiibi valimine (CS)

3. samm: 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

Kiip: 24AA, I2C EEPROM (1Kbyte). Buss: I2C, nõutavad tõmbetakistid. Võimsusnõuded: 1,8–5,5 volti (24AA), 2,5–5,5 volti (24LC). Viited: andmeleht, Hack a Day demonstratsioon. Selle demonstratsiooni jaoks täielik bussipiraatide seansilogi. Ma ei saanud mõnda vormindamis- ja HTML-tabelit Instructable'i lisada, originaali näete ohtlike prototüüpide ajaveebis. IC4 on 24AA-seeria I2C EEPROM Microchipilt, need EEPROM-id on saadaval tonni suurusi. AA osad töötavad 1,8 kuni 5,5 volti, samas kui 24LC osade miinimumnõue on 2,5 volti. 0,1 uF kondensaator (C2) lahutab IC4 toiteallikast. Kirjutuskaitse tihvti (WP) saab juhtida mikrokontrolleri abil, kuid selle lihtsa näitlikkuse huvides keelame selle maandusühendusega. I2C siini tihvtid, SDA ja SCL, on toodud päisesse JP2. Enamiku 24AA EEPROM -ide aadress on 1010AAAS, kusjuures viimased neli bitti määravad aadressi tihvtid (A0, A1, A2) ja lugemis-/kirjutamisrežiimi valimisbitt (S). Selles näites on kõik aadressibittid maandatud, seega on EEPROM -i kirjutusaadress 10100000 (andmelehe leht 6). Seadistamine Kui kasutate bussipiraati, ühendage see 3EEPROM või 24AA-IC-ga, nagu on näidatud alloleval diagrammipildil. I2C on kahesuunaline siin, mis nõuab mõlema tihvti tõmbetakistusi. Bus Pirate pardal olevaid tõmbetakistusi saate kasutada, ühendades Vpullup (Vpu) tihvti 3,3-voldise toiteallikaga ja lubades need terminalis. Liidesed Märkus. Mitte kõik I2C EEPROM -id ei tööta ühtemoodi. Näiteks pisikesel 24AA01 -l on täiesti erinev aadressi- ja käsusüsteem. Kontrollige kindlasti oma kiibi andmelehte. Vajutage Bus Pirate terminalis 'm' ja valige režiimimenüüst I2C. Luba toiteallikad (suur 'W') ja tõmbetakistid ('p', valik 2) I2C viipal. Hankige pingearuanne („v”), et veenduda, et toiteallikad on sisse lülitatud ja Vpullupi tihvt on pingega ühendatud. I2C> (0) <<(1) <<< kasutage aadressiotsingu makrootsingut 7 -bitise I2C -aadressiruumi otsimine. Leitud seadmed: 0xA0 0xA1 <<Me juba teame, et I2C aadress on 10100000, kuid 24AA- otsimiseks võime kasutada ka bussipiraadi I2C otsingu makro (1). Otsingumakro leidis seadme oodatud kirjutamis- (0xA0) ja lugemisaadressil (0xA1). Etapp 1, kirjutage mõned väärtused 1KIRJUTA: 0x00 GOT ACK: JAH <<< kirjutage aadressbait 2WRITE: 0x03 GOT ACK: JAH <<< 3 kirjutatavat väärtust (3, 2, 1) KIRJUTAGE: 0x02 GOT ACK: YESWRITE: 0x01 GOT ACK: YESI2C STOP CONDITION < <Alustage kirjutamist I2C starditingimusega ([), millele järgneb 24AA kirjutamisaadress (0xa0). Seejärel saatke 16 -bitine aadress (0 0) ja andmed kirjutamiseks (3 2 1). Lõpetage I2C tehing peatustingimusega (]). Samm 2, asetage lugemisosuti I2C> [0b10100000 0 0] I2C START TINGIMUS <<< I2C käivitustingimus KIRJUTAGE: 0xA0 VASTUS: JAH <<< 24AA- kirjutage aadress Kirjutage: 0x00 GOT ACK: JAH <<< kirjutage aadressbait 1KIRJUTAGE: 0x00 GOT ACK: JAH <<< kirjutage aadressbait 2I2C STOP TINGIMUS <<24AA- lugemiseks kulub kaks toimingut. Üks positsioneerib lugemis-/kirjutamiskursorit, teine tagastab väärtused. Alustage I2C algusseisundiga

Samm: DS2431 1-juhtmeline EEPROM

DS2431 1-juhtmeline EEPROM
DS2431 1-juhtmeline EEPROM
DS2431 1-juhtmeline EEPROM
DS2431 1-juhtmeline EEPROM
DS2431 1-juhtmeline EEPROM
DS2431 1-juhtmeline EEPROM

Kiip: DS2431, 1-juhtmeline EEPROM (1Kbyte). Buss: 1-juhtmeline, nõutav <2,2 Khm tõmbetakisti. Võimsusnõuded: 2,8 volti kuni 5,25 volti. Viited: andmeleht, Hack a Day demonstratsioon. Täielik bussipiraatide seansilogi Selle demonstratsiooni jaoks. Ma ei saanud mõnda vormindamis- ja HTML-tabelit Instructable'i lisada, näete originaali ohtlike prototüüpide ajaveebis. DS2431 ammutab jõudu tõmbetakistist ega vaja välist toiteallikat ega lahtiühendavat kondensaatorit. 1-Wire vajab tugevat tõmbetakistit, maksimaalselt 2,2 kΩ. Bus Pirate pardatõmbe takistid on 10K, liiga nõrgad, et kirjutamise ajal DS2431 korralikult toita. Toite ja 1-juhtmelise siini tihvti vahel peate kasutama 2,2Kohm või väiksemat välist takistit. Kui teil on andmete kirjutamisega raskusi, veenduge, et tõmbetakisti on piisavalt suur. 3EEPROMi uurimisplaadil on 1800-oomine tõmbetakisti (R1) 1-juhtmelisel siinil, nii et välist takistit pole vaja. Seadistamine Kui kasutate bussipiraati, ühendage see 3EEPROM -plaadiga või DS2431 -ga, nagu on näidatud alloleval diagrammipildil. DS2431 ei vaja toiteplokki, seda kasutatakse 3EEPROM-plaadil, et toita 1-juhtmelise bussi suurt tõmbetakistit. Liidestamine Vajutage bussipiraadi terminalis 'm' ja valige 1-juhtmeline režiim. Lülitage pardal olevad toiteallikad (suur 'W') ja kontrollige pingemonitori (v). 1. samm, leidke seadme aadress 1-WIRE> (0xf0) <<< 1-wire search macro 1WIRE ROM COMMAND: SEARCH (0xF0) Found devices at: Makro 1WIRE address1.0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B <<< DS2431 kordumatu ID*DS2431 1K EEPROM <<Igal 1-juhtmelisel seadmel on ainulaadne 8-baidine ID. 1-Wire'il on otsinguprotseduur, mis tuvastab kõigi ühendatud seadmete ID. Bussipiraat rakendab 1-juhtmelise otsingu makrona (240). 1-juhtmelise otsingu alustamiseks tippige bussipiraadi terminali „(240)”. Iga seadme aadress trükitakse, tuvastatakse teadaolevad seadmed. Esimesed kümme 1-juhtmelist seadme aadressi salvestatakse makrodena, selles näites on meie DS2431 aadress saadaval, tippides terminalis '(1)'. Samm 2, kirjutage kriimustusplaadile 8 baiti 1-WIRE> (0x55) (1) 0x0f 0 0 8 7 6 5 4 3 2 11 WIRE BUS RESET OK <<< ka {käsk 1WIRE WRITE ROM COMMAND: MATCH (0x55) * 64 -bitise aadressiga: 0x08 <<Järgmisena kirjutame 8 baiti DS2431 ajutisse asukohta, mida nimetatakse kriimustusplaadiks. Alustage tehingut 1-juhtmelise bussi lähtestamise ja käsuga MATCH (0x55). Mõlemad on saadaval makro '(0x55)' kujul. Seda saab teha ka ilma makrota, sisestades '{0x55', {saadab 1-juhtmelise lähtestamise, 0x55 on 1-juhtmeline MATCH-käsk. Pärast käsku MATCH saatke aadressile seadme 8-baitne ID. Kasutasime 1. etapis DS2431 ID -ga täidetud makro (1). 8 -baidise ID saate sisestada ka käsitsi. Sel hetkel oleks DS2431 pidanud oma aadressi saama ja käskudeks valmis olema. 0x0f on kirjutuskraadi käsk, mis käsib DS2431 -l andmeid oodata. Järgmised kaks baiti ütlevad, kuhu andmed panna, salvestame need alguses (0 0). Lõpuks saadame salvestamiseks 8 baiti väärtusi, numbrid 8 kuni 1. Peate DS2431 -le kirjutama 8 baiti. Lisaks peab kirjutamisaadress olema 8 -baidisel piiril. Täieliku ülevaate kirjutamispiirangutest leiate andmelehelt. Samm 3, kontrollige kriimustusplaati ja hankige autoriseerimiskood 1-WIRE> (0x55) (1) 0xaa r: 3 r: 8 r: 2 r: 21WIRE BUS RESET OK <<< aadress seadmele1WIRE WRITE ROM COMMAND: MATCH (0x55) *järgige 64 -bitise aadressiga 0x07 0x06 0x05 0x04 0x03 0x02 0x01BULK READ 0x02 BYTES: <<< CRC for data0xC8 0x86BULK READ 0x02 BYTES: <<Veenduge, et andmed oleksid õigesti vastu võetud, ja hankige kirjutamisõiguse kood. Alustage uuesti 1-juhtmelise lähtestamise ja käsuga MATCH (0x55) ning seadme aadressi makroga (1). Seekord saatke DS2431 lugemisnupp (0xAA) ja lugege seejärel kokku 15 baiti. Esimesed kolm loetud baiti (r: 3) on kirjutamisloa kood, vajame seda järgmisel sammul kopeerimiseks kriimustuspadi EEPROM -i külge. Järgmised 8 baiti (r: 8) peaksid vastama sammuga 2 saadetud andmetele. Viimased 2 baiti (r: 2) on andmete CRC16. Loeb pärast seda, kui CRC tagastab kõik 1. Samm 4, kirjutage kriimustusalus EEPROM 1-WIRE> (0x55) (1) 0x55 0x00 0x00 0x071WIRE BUS RESET OK <<< aadress seadmele1WIRE WRITE ROM COMMAND: MATCH (0x55) *follow with 64bit address1WIRE ADDRESS MACRO 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0x55 <<< kopeeri kriimustuspadja käsk EEPROM. Aadresseerige seadet, seejärel saatke DS2431 kopeerimispuldi käsk (0x55), millele järgneb kolme baidi autoriseerimiskood, mille hankisime sammus 3 (0x00 0x00 0x07). Kui autoriseerimiskood on õige, teisaldatakse andmed EEPROM -i. Samm 5, kontrollige kriimustuspadi kirjutamist 1-WIRE> (0x55) (1) 0xaa r: 31WIRE BUS RESET OK <<< aadress seadmele 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<< loe kriimustuspadja käsku BULK READ 0x03 BYTES: 0x00 0x00 0x87 <<DS2431 määrab pärast edukat kopeerimisnuppude käsku kirjutusõiguse koodi ülemise osa. Värskendatud autoriseerimiskoodi saamiseks saatke teine lugemisnupp (0xAA), kuid lugege lihtsalt esimesed kolm baiti (r: 3). Eelmine väärtus 0x07 on muutunud väärtuseks 0x87, kopeerimiskäsu vastuvõtmine õnnestus.6. samm, lugege tagasi väärtused 1-WIRE> (0x55) (1) 0xf0 0x00 0x00 r: 8 r: 81WIRE BUS RESET OK <<< adresseerige seade 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xF0 <<< DS2431 lugemise käsk Kirjutage: 0x00 <<< 2 baiti lugemisaadress WRITE: 0x00BULK READ 0x08 BYTES: <<< loe 8 baiti, mida me kirjutasime 0x08 BYTES: <<Väärtuste toomisega veenduge, et kirjutamine toimiks õigesti. Aadress DS2431, seejärel saatke lugemiskäsk (0xf0) ja aadress (0x00 0x00). Ühe käsklusega on võimalik lugeda kogu mälupiirkonda. Lugesime varem kirjutatud kaheksa baiti (r: 8), mis tagasid oodatud väärtused. Neid väärtusi ületavaid kaheksa baiti pole kirjutatud ja need tagastavad 0.

5. samm: järeldus

Järeldus
Järeldus

See prototüüp õpetab EEPROM-mälu kohta ja näitab, kuidas kasutada bussipiraati kolme tavalise protokolliga: 1-Wire, I2C ja SPI. 3EEPROM-i uurimisplaat tagab iga EEPROM-iga korralikud ühendused ja pakub välist tõmbetakistust nõudlikuma 1-juhtmelise bussiga, millel on parasiiditoitega komponendid. Meil võib olla Seeepi stuudios toodetud 3EEPROM explorerplaadi trükkplaate või komplekte. PCBd on umbes 10 dollarit, komplektid on umbes 15 dollarit, tarnitakse kogu maailmas. Alustamiseks peame korraldama 10 PCB või 20 komplekti rühmaostmise.

Soovitan: