Ontwerpen met Discrete SPI Flash-geheugen (5 / 7 stap)

Stap 5: Code Code Code!


Ik schreef een schets die me toestaat om te communiceren met de Uno via seriële TTY communicatie via de seriële Monitor (of zelfs een Unix-prompt, zoals u goed zien). Dit is een nuttige methode voor het debuggen van nieuwe hardware, zoals ik opdrachten interactief kan uitgeven.

De "serialEvent()"-functie is een ingebouwde terugbellen, aangeroepen wanneer iets op het standaard seriële-object gebeurt. Ik gebruik deze terugbellen te bouwen een opdrachtreeks en stelt u een Boole-vlag (de bouw van de byte-door-byte van de tekenreeks is voltooid wanneer de callback als puntkomma ";" van de stream leest; Ik gebruik dit in plaats van een newline aangezien er geen manier om een nieuwe regel van de seriële monitor). Wanneer de callback de tekenreeks construeert en stelt u de vlag, uitvoert de "loop"-functie een decoder. De decoder bepaalt welke aan te roepen functie op basis van de opdrachtreeks, en eventuele extra parameters van de opdrachtreeks parseert en die functie aanroept.

Elke functie is in wezen een wrapper rond een low-level implementatie van een diagram van de functionele timing WinBond SPI. Ik gebruikte een wrapper zodat de low-level functies generieke blijven: ik ze opnieuw kunt gebruiken in andere schetsen met een eenvoudig knippen en plakken. Plus drukt de wrapper wat feedback aan de gebruiker, wat zeer handig is voor debug.

De bovenstaande screenshot toont een interactieve sessie met de seriële Monitor. Ik heb afgegeven vier opdrachten, "get_jedec_id;", "read_page 0;", "write_byte 0 2 8;", en "read_page 0;" Je zie niet echt de opdrachten (de seriële monitor hoeft niet een echo en ik niet de exacte opdracht afdrukken... Ik waarschijnlijk zou moeten hebben), maar u ziet de reactie. Moet het meest duidelijk wanneer ik lezen/schrijven/lezen pagina 0. De "read_page;" opdracht wordt gewoon gedumpt in de opgegeven pagina (in decimaal). De "write_byte;" functie is een beetje raar, zoals de parameters geven aan een paginanummer, een offset naar die pagina, waarna de byte. Aangezien er geen native 32-bits register in de 16-bits Atmega is, ik heb niet de moeite doen logische fysieke vertaling, maar moet u overwegen deze vertaling op een bepaald punt. Anyways, merk op dat de derde byte van pagina nul is nu "08h".

Ik kon hebben ook uitgegeven "chip_erase;" en vervolgens "read_page 0;" ter illustratie van een cyclus van wissen, maar hopelijk krijg je de foto.

De lage functies beginnen met "_", en heten "_read_page" of "_write_page" of "_erase_chip". Deze functies expliciet volgnummer uit de opdrachten van de SPI gevonden in het gegevensblad timing diagrammen. Elke functie eindigt met een oproep tot "not_busy()" om te voorkomen dat de uitvoering van de procedure, voordat de chip heeft voltooid zijn interne werking.

BEWERKEN (11-MAR-2014): er was een probleem met de low-level functie van _read_page, ik was vergeten te trekken CS hoge voordat trekken het laag aan het begin van de functie, net als de andere functies. Dit betekent dat als _read_page is de eerste functie die u aanroept, CS kan niet al hoog, dus zonder een geldig /CS 1 -> 0 overgang _read_page niet behoorlijk zal functioneren, de eerste keer het heet. De tweede keer het zou prima werken omdat het laat /CS als 1. Klein maar vervelend Boeg.

Gerelateerde Artikelen

Afbeeldingen converteren naar Flash-geheugen pictogrammen/beelden voor TFT (zonder SD kaart)

Afbeeldingen converteren naar Flash-geheugen pictogrammen/beelden voor TFT (zonder SD kaart)

Vele malen om elke gebruiker interface of mooi weer te geven inhoud, dat we gebruiken pictogrammen/beelden. In dit Instructable, u zal worden weergegeven pictogrammen of afbeeldingen of logo's op het TFT-scherm van Arduino met behulp van de ATmega (g
Zet uw 5de Gen iPod Video Flash geheugen te gebruiken!

Zet uw 5de Gen iPod Video Flash geheugen te gebruiken!

u kan heb gezien mijn andere Instructables over hoe om te zetten van uw iPod Mini en 4G iPods gebruik van CF en vroeg me af als je zou kunnen hetzelfde met de iPod Video doen. Nou kan je!Opmerking: Sommige van de instructies zijn zeer vergelijkbaar (
Converteren van uw 4de Gen iPod voor het gebruik van Flash-geheugen

Converteren van uw 4de Gen iPod voor het gebruik van Flash-geheugen

We allemaal hebben of weet van iemand die een iPod met een dode harde schijf heeft. Uiteraard kunt u gewoon een ander station kopen maar je bent terug naar de dezelfde power-honger, storing-gevoelig, kwetsbaar roterende media. In plaats daarvan bijwe
Arduino - TFT weergave van pictogrammen en beelden van FLASH-geheugen

Arduino - TFT weergave van pictogrammen en beelden van FLASH-geheugen

Dit Instructable moet u vind een bibliotheek en schets u wilt uitzetten van afbeeldingen die zijn opgeslagen in de Arduino FLASH-geheugen op een TFT-scherm.Hier gebruiken we mijn favoriet 2.2" 320 x 240 pixel ILI9341 gebaseerde TFT display. Dit displ
ESP-03 Upgrade Flash geheugen tot 128 M bit

ESP-03 Upgrade Flash geheugen tot 128 M bit

ESP-03 is de kleinste ESP8266 bestuur die aan boord van de antenne, het kan voor vele projecten met ruimte, zoals draagbare of draagbare apparaat beperkte passen. De enige beperking is het opslag, er slechts 4 M bit (512 KB) flash-geheugen. ESP8266 m
Overdracht van ontwerpen met behulp van waspapier en een Ink-Jet

Overdracht van ontwerpen met behulp van waspapier en een Ink-Jet

Als u een inkjetprinter hebt, kunt u gemakkelijk overbrengen tekst en afbeeldingen aan een stuk hout, met sommige waspapier, tape en een credit card.Het zou ook moeten werken overbrengen naar een textiel (zoals een T-shirt) maar het materiaal moet va
T-shirt ontwerpen met Stencils en bleekmiddel (bijgewerkt met robot afbeelding om te downloaden)

T-shirt ontwerpen met Stencils en bleekmiddel (bijgewerkt met robot afbeelding om te downloaden)

maken van uw eigen geweldige t-shirt ontwerpen met behulp van stencils en een eenvoudige oplossing van bleekmiddel en water.Dit project vereist minimale instrumenten, en het komt samen vrij gemakkelijk.** update **De robot stencil weergegeven is nu b
* Inleiding * SPI op de Pi: communiceren met een SPI 3-assige versnellingsmeter met behulp van een Raspberry Pi

* Inleiding * SPI op de Pi: communiceren met een SPI 3-assige versnellingsmeter met behulp van een Raspberry Pi

stap voor stap handleiding over het opzetten van Raspbian, en communiceren met een SPI-apparaat met behulp van bcm2835 SPI bibliotheek (niet beetje geneukt!)Dit is nog steeds zeer voorlopige... Ik moet toevoegen van betere foto's van fysieke hookup,
MOV converteren naar Flash SWF FLV met MOV naar Flash converter

MOV converteren naar Flash SWF FLV met MOV naar Flash converter

MOV naar Flash converter---convert MOV naar Flash met een paar muisklikkenMOV naar Flash converter---wat betekent het voor u kan betekenen en waarom u dit programma nodig? De MOV naar Flash converter is in staat om het bestaande bestand MOV converter
USB-sigaar Flash geheugen (met LEDs)

USB-sigaar Flash geheugen (met LEDs)

gloed rood wanneer aangesloten, helderder op schijftoegang.Een vleugje van onderscheid voor uw computer!BIJGEWERKTE VIDEO:(de muziek is opgeslagen op de sigaar, maar gespeeld door de PC zodra de USB-schijf is aangesloten en erkend)Voor de liefhebbers
Upgrade uw iPod Mini met Flash-geheugen - No meer harde schijf!

Upgrade uw iPod Mini met Flash-geheugen - No meer harde schijf!

In plaats van een harde schijf, zal uw nieuwe bijgewerkte iPod flashgeheugen gebruiken met geen bewegende delen voor sneller opstarten & toegangstijden en lager energieverbruik.(Ik liep mijn iPod continu voor meer dan 20 uur op een lading!).U krijgt
Elastisch-gespierd mechanische arm met 3 spier-paren, 3 laser-gesneden gewrichten en 18 lagers

Elastisch-gespierd mechanische arm met 3 spier-paren, 3 laser-gesneden gewrichten en 18 lagers

dit instructable is een mechanische arm door antagonistische elastische spier paren bediend. Het is bedoeld voor het verkennen hoe levende wezens leren om te gaan. In tegenstelling tot conventionele rigide robots leren levende dingen om controle van
Hoe etch aluminium panel etiketten/ontwerpen met een herbruikbare zure mix

Hoe etch aluminium panel etiketten/ontwerpen met een herbruikbare zure mix

deze tutorial zal u tonen hoe om uw eigen ontwerpen/labels etch in aluminium panelen met een herbruikbare zure mix in plaats van met behulp van elektriciteit (de meest voorkomende methode).Het is een vrij goed en goedkoper alternatief aan profesional
Experiment: Ontwerpen met zijderupsen

Experiment: Ontwerpen met zijderupsen

Bent u geïnteresseerd in verhogen & experimenteren met zijde wormen? Dit instructable is voor jou! Als onderdeel van mijn onderzoek van de graduate school had ik een kans om te experimenteren met verhogen en het creëren van stof met zijde wormen.Zijd