Stap 1: Wat is SPI Flash geheugen?
Ik ga dit volgende deel pijnlijk snel uitleggen. Mijn eerste baan bij Intel was in het flash-geheugen-groep in 1993, en in de twintig jaar sinds die tijd is er veel veranderd met de technologie, maar sommige concepten consistent blijven.
Flash-geheugen is een soort niet-vluchtig geheugen gebaseerd op MOSFET-technologie. Niet-vluchtige betekent dat het apparaat behoudt zijn waarde als het niet aangedreven-up.
MOSFET
Als u niet vertrouwd met de werking van een MOSFET transistor, zal ik proberen uit te leggen in één zin: een plaat van silicium met twee terminals aan beide zijden elektriciteit niet uitvoeren als u een potentiaalverschil tussen hen plaatst, maar als je stok een ander stuk metaal daarbovenop slab en een diëlektrische tussen het sandwich en past u vervolgens een spanning op dat stuk van het metaal wordt dan een veld gemaakt en huidige tussen de twee terminals stromen kan. De terminals worden genoemd de bron- en afvoer, en het metaal wordt genoemd de poort. Dat is een super eenvoudige uitleg die bulldozes 50 jaar van de kwantumfysica, maar van een Michael Farady point-of-view, het redelijkerwijs haalbaar is.
FLASH TRANSISTOR
Flash-geheugen werkt door stralen een heleboel gratis vervoerders op de diëlektrische tussen de poort en het substraat. Dit heet programmering, en wordt meestal gedaan met een veel hogere spanning. Het daadwerkelijk schade aan het materiaal, en na 100k programma cycli, de poort zal mislukken. Als u wilt verwijderen van de lading dragers rom de diëlektricum, en de even hoge spanning, maar de omgekeerde potentieel, trekt de vervoerders uit de poort. Dit heet wissen.
Een geprogrammeerde flash beetje heeft waarde 0 en een gewiste bit de waarde 1 heeft, een gewiste flash byte is 0xFF in hex. (Tegenwoordig, flash-geheugen kan opslaan meerdere bits per cel met behulp van meerdere spanningsniveaus, maar die krijgt echt ingewikkeld.)
FLASH HET PLATFORM
Een flash-geheugen bevat meestal een gigantische scala aan transistoren die kan worden afzonderlijk geprogrammeerd, maar alleen gewist in groepen (sectoren, in blokken, of de hele chip). Dit is gewoon een neveneffect van de werking van de circuits wissen: per-bits wissen teveel metalen dichtheid zou vereisen, en niet alles wat nuttig is (in de praktijk, wissen in grotere brokken werkt prima).
Omdat het programmeren van één transistor traag als gevolg van speedramp up die hoogspanning en alle van het besturingselement dat samen met dat is gaat, is flitser meestal geprogrammeerd in pagina's. Een flash-apparaat zal hebben meestal een kleine SRAM paginabuffer (256 bits) die de host eerst snel met gegevens vullen zal, en dan de host een pagina commando ' write ' kwesties, en de flash-chip schrijft alle bytes van de pagina uit in een grote batchverwerking. Dit batch circuits amortizes de opstarten schrijven latentie over een groter aantal bits. Het aanbieden van twee of meer pagina-buffers, Hiermee kan de host gebruiken een dubbele-buffer techniek om te verbergen van de latentie schrijven van de flash-apparaat.
SPI
De Serial Peripheral Interface is een briljante uitvinding. Het is een eenvoudige seriële interface die gebruikt een chip select, een klok, een gegevens IN en een uit. Er zijn vele soorten van SPI apparaten, want het is een zeer populaire interface en alle SPI-apparaten maken gebruik van een algemene bibliotheek: als je eenmaal hoe om te praten met een SPI-apparaat weet, kunt u praten met een SPI-apparaat.
Het voordeel van SPI is het software eenvoud, de code in principe verschuivingen van gegevens binnen en buiten de DI en pinnen respectievelijk aan de stijgende rand van een klok. De klok wordt bestuurd door de host en het niet nodig een fancy klok circuit: de fasen kunnen zo asymmetrisch als je wilt, zolang u aan de vereisten van de breedte minimum cyclus van het apparaat voldoen.
FLASH SPI
Geheugen van de flits SPI gewoon combineert het beste van beide werelden. Merk op dat SD-kaarten zowel SPI als deze discrete chip gebruiken. Verrassing! De programmeerinterface is niet zeer verschillend, maar de werkelijke instructies en tijdsinstellingen verschillen.