Deze eenvoudige tutorial begeleidt gebruikers door het proces van een EEPROM interfacing chip om een Raspberry Pi met behulp van de GPIO pinnen en bewerkingen met Python scripts.
Laten we beginnen met de basics op EEPROM:
1) CE, OE, WE - wat betekent het allemaal?
Om te lezen, schrijven en wissen van gegevens uit een chip van de EEPROM, moeten wij eerst de chip op de juiste stand brengen. Dit gebeurt meestal met behulp van 3 controle pinnen genaamd Chip inschakelen, uitvoer inschakelen en schrijven inschakelen.
Chip inschakelen bepaalt u of de chip is ingeschakeld. Afhankelijk van het type van chip, zal deze pin aansluit op de grond of aan spanning uitschakelen een chip. Onnodig te zeggen, dat als wij willen elke bewerking die we nodig hebben om de chip uit te voeren. De chip uit te schakelen stelt ons in staat om de macht van de chip terwijl het elektrisch aangesloten op ons circuit. Op deze manier de chip verbruikt minder stroom.
Inschakelen van de output is een pin gebruikt om te vertellen van de chip die u wilt lezen van het. Nogmaals, afhankelijk van de chip, deze pin aansluit op de grond of aan spanning zal vertellen de chip te presenteren u met de inhoud van bepaalde geheugenadres (daarover later meer). Het uitschakelen van de Output is voltooid de leesbewerking.
Schrijven dat inschakelen is vergelijkbaar met de uitvoer inschakelen maar gebruikt voor het schrijven van gegevens naar de chip. Afhankelijk van het type van chip maakt het aansluit op grond of aan spanning de chip Schrijf gegevens naar een geselecteerde geheugenadres (daarover later meer).
2) dus hoe bepaal ik de pinnen?
It's easy! Afhankelijk van uw EEPROM-chip, u of uitschakelen deze pinnen door deze te verbinden aan een spanningsbron of aan de grond. Het jargon gebruikt voor de werking is "pull up" voor het verbinden van spannings- en "pull down" voor het aansluiten op de grond. In sommige gevallen (en in ons geval in het bijzonder), te trekken tot een PIN-code zorgt ervoor dat de overeenkomstige staat in plaats van ingeschakeld worden uitgeschakeld. Dit klinkt misschien teller intuïtief omdat u willen optrekken om te schakelen op iets, maar zo is het leven soms.
Waarschuwing!!!: het verlaten van een van deze pinnen losgekoppeld van het circuit is niet gelijk aan het worden afgebroken! Als een van de pinnen zitten losgekoppeld van het circuit dat noemen we "drijvende" en in wezen hun toestand is willekeurig en onbepaald. Bijvoorbeeld, kan RF-interferentie veroorzaken van een hoge of lage signaal en daarom maken de pin doen alsof het is ingeschakeld of uitgeschakeld. Altijd verbinding maken van alle de pinnen met uw circuit!
3) draait het rangschikken!
Stel dat ik wil enkele gegevens lezen vanaf mijn EEPROM, wat heb ik nodig om te doen met deze pinnen maken het allemaal werken? Uitvoeren van bewerkingen op EEPROM is alles over dingen te doen in de juiste volgorde. Dus als we lezen van de chip willen, onze volgorde zou zijn als volgt:
Instellen van het geheugenadres (pull omhoog/omlaag adres bus pinnen te vormen van een adres in de binaire indeling)
Inschakelen van chip (energie)
Inschakelen van de output (lees dat adres)
Lees het geheugenadres (de Data bus pinnen zal nu worden ingesteld hoog/laag volgens de gegevens in het adres)
Uitvoer (de Data bus output is nog steeds ingeschakeld op dit punt dus ik kan de gegevens lezen) uitschakelen
Uitschakelen van chip (kracht omlaag, geen output op de databus op dit punt)
Herhaal het bovenstaande voor het volgende adres dat u wilt lezen.
4) wat was die u hebt gesproken over bus?
Databus en adresbus. De EEPROM-chip, samen met de CE, OE en wij pinnen, moeten ook een aantal pinnen voor het instellen van een adres en een aantal pinnen voor lezen/schrijven van gegevens naar het geselecteerde adres. Het aantal pinnen voor de adresbus is afhankelijk van de capaciteit van de chip. Hoe hoger de capaciteit, de meer adressen nodig zijn en dus de meer pinnen de bus zal hebben. Als u een adres wilt trekken we omhoog/omlaag de pinnen te vertegenwoordigen 1/0. Elk adres vertegenwoordigd door een willekeurige combinatie van bits bevat 1 byte. Zo zal een chip met 2048 adressen 2048 byte capaciteit hebben. De pinnen op de adresbus worden meestal genummerd als volgt: A0, A1, A2, A3,... A(n)
De gegevensbus, in tegenstelling tot de adresbus, ofwel kunnen worden ingevoerd of uitvoer, afhankelijk van de bewerking geselecteerd. Als we ervoor kiezen om te schrijven naar de chip, we stellen het adres dat we schrijven willen naar via de adresbus waarna we set de databus door te trekken van haar pinnen op/neerbeweging vertegenwoordigen één byte. Als we kiezen voor het lezen van de chip, wordt dan de Data Bus pinnen hoog/laag voor de 1/0 van de byte voorkomt in het adres dat we geselecteerd ingesteld. De pinnen op de Data Bus Als genummerde: D0, D1, D2,... D7
5) een laatste ding: meest significante Bit
Meeste significante Bit is in wezen de bit die de hoogste waarde van een byte vertegenwoordigt. Verschillende chips kunnen het gebruik van een ander bestellen schema als bytes op te slaan. De documentatie van uw chip zal definiëren als de meest significante Bit op het hoogste of laagste pin-nummer op de Data-Bus is. Als je eenmaal weet welke pin heeft de MSB, de rest van de pinnen vertegenwoordigen de rest van de bits in oplopende of aflopende volgorde. Bijvoorbeeld, als de MSB op pin D7 van de Data-Bus is, vervolgens het minst significante Bit gaat het worden op pin D0.