Raspberry Pi Python EEPROM programmerare (1 / 4 steg)
Steg 1: Låt oss sätta saker tillsammans
Jag bifoga GPIO layouten av Raspberry Pi B + tillsammans med pin-anslutningar till chipet. Vara mycket försiktig med 5v stiftet på Pi-eftersom även om din EEPROM chip fungerar på 5v, det också kommer ut 5v på databussen när du läser från den. Och detta innebär att det kommer att ligga 5v till GPIO av Pi som är riktigt dåliga nyheter eftersom Pi använder 3.3V logik och du kommer att steka din Pi.
Så vill inte använda 5v stiften på Pi!!! Driva din chip från de 3.3V pins!
1) OK, Visa mig din utrustning
Resten av guiden bygger på kontakt Pi till det EEPROM chip som jag har. Det är en SST 39SF020A som jag rensas från en gammal digital förstärkare. Du kan söka på nätet för dokumentationen för chip. Det är fritt tillgängliga från många källor. Jag bifoga inte det här vid upphovsrättsliga frågor. Det finns tre olika versionen av detta chip, var och en med olika kapacitet och därför olika antal adress stift. Om du kan få en av de tre modellerna av mitt chip, kan du följa denna guide noga. Om du har ett annat chip, måste du hitta dokumentation av ditt chip från tillverkaren och skapa en tabell som kartlägger ditt chip pins till gruvan. Notationen för adress, Data och aktivera pins är standard i branschen, så det inte borde vara svårt. Det är också värt att notera att mitt chip anser CE, OE och vi pins aktiveras när de dras. Därför, för att aktivera chipet, jag behöver dra CE ner. Om jag vill inaktivera chippet, måste jag dra CE upp. Detta görs genom att ange GPIO stiften på/av. Detta gäller inte för Data- och pins. Så för Data- och pins är "1" en "på" signal på det anslutna GPIO stiftet. Du ser där det går, rätt?
2) JEDEC skrivskyddet: att hålla våra data säker och att göra våra liv hårdare!
Kom ihåg när jag sa att det handlar om sekvensering när du vill utföra åtgärder på chip? Ja ibland bara händer det att ett chip på grund av störningar eller spänning spikar eller andra oönskade händelser i kretsen, kan sättas i "Skriv läge" och tappar oavsiktligt några av dina data. Undvik detta genom har JEDEC kommit upp med en standard för att skydda data. Allt det betyder är att chipet inte kommer in "skriva mode" genom att helt enkelt aktivera WE PIN-koden. Det förväntar sig en sekvens av adresser och byte innan chip "låser upp" sin "write-läge" och du kan skriva data till en adress. Ditt chip dokumentation kommer att definiera vad denna sekvens är och det kommer allt mer meningsfullt när du har en titt på koden. För nu, bara hålla i ditt sinne att denna mekanism komplicerar saker lite när vi vill skriva data eftersom det lägger till en overhead i operationen.
3) vi fick allt vi behöver, låt oss göra detta!
Jag antar du vet hur man använder en skärbräda och kablar för att ansluta ditt chip till GPIO stiften som visas i det bifogade diagrammet. Eftersom mitt chip råkar ha mer stift än min Pi GPIO, har jag valt att permanent fästa tre högsta stiften på adress bussen permanent till marken. Därför dessa stift läsa alltid 0 och jag kommer inte åt hela minnet av mitt chip. Känn dig fri att göra samma sak om ditt chip har också alltför många adress stift. Du kan också välja att permanent dra ner CE stiftet så chipet är alltid på. Det är helt upp till dig. Så, för att förtydliga, jag permanent fästa A17, A16 och A15 på mitt chip till marken och genom den Pi GPIO stift, styra jag stift A15 till A0. Så jag har bitars en 16-bitars adress buss och 8 databuss. Jag också styra CE, OE och vi. Och en sista sak, på min chip, den mest signifikanta biten är alltid högsta numrerade PIN-koden.