Verplaatsbaar Wild Lessenaar (ARM MCU Team) (4 / 6 stap)

Stap 4: MCU Interface - FPGA Xilinx Spartan 6


We ontwierpen de MCU-interface op een manier kunnen gegevens worden gedeeld tussen de STM32 microcontroller en de Nexys 3 FPGA. Om te verzekeren van een volledig functionele grafische kaart, moeten de gegevens ontvangen van de STM32 gericht naar het juiste register of naar de DMA-controller zonder elke discontinuïteit of verloren gegane gegevens. De STM32 moet ook kunnen lezen van de gegevens uit de registers zonder het schrijven proces in gevaar te brengen.

De MCU Interface Protocol

De LCD connector gebruikt de STM32 microcontroller verbinden met het Nexys 3 FPGA is een 17 door 2 Raad van bestuur tot bestuur connectoren.

Om de FSMC asynchrone SRAM protocol gebruiken, moeten we:

  • Een 16-bits gegevensbus, direct beschikbaar via de LCD connector (D0 aan D15)
  • De NOE, NWE en NE4 signalen, ook beschikbaar vanaf de LCD connector (RD, WR en CS)
  • Een 26-bits adres niet beschikbaar op de LCD connector, daar alleen de A [0] bit. Deze waarom moesten we maken onze eigen protocol zodat we de FSMC gebruiken kunnen om gegevens van de STM32 microcontroller.

Dekking van de onbeschikbaarheid van de 26 bits adresbus, besloten we te verdelen van een transactie (lezen of schrijven) in drie opeenvolgende transacties. De eerste is een schrijven transactie met daarin het adres van het register die we willen lezen of schrijven. De tweede is een lees- of een transactie schrijven afhankelijk van het soort operatie dat we moeten doen. In het geval van een transactie schrijven de databus zal worden dat de gegevens bevat die we willen schrijven in de registers welk adres is opgegeven in de vorige transactie. Aangezien de GPU registers 32-bits registers zijn, moeten we twee schrijven (of lezen) 16 bit transactie.

Als u wilt hervatten het protocol om te schrijven in een register, moeten we drie schrijven transactie. Het ene bedrijf het adres en de twee anderen met de gegevens van de 32-bits (LSB en MSB). In het geval dat we willen lezen van de gegevens uit de registers, zal de eerste transactie worden een schrijven met het adres. De andere twee houden de gegevens uit de registers (LSB en MSB).

Gegevens- en bus-beheer

Het gegevens- en bus beheer blok
de gegevensbuffer van 32-bits en de 16-bits adres buffer bijgewerkt. Op de eerste transactie van de STM32, worden de 16-bits gegevens doorgegeven aan de buffer adres. De volgende twee transacties worden overgebracht naar de buffer van de gegevens van de 32-bits.

In geval van een DMA-controller gegevensoverdracht is er geen behoefte aan een transactie drie schrijven want er geen adres is en de databus alleen 16-bits is. In dat geval de STM32 16 bits gegevensbus worden overgebracht naar de DMA-databus. We gebruikten de LSB van de 26 bits adresbus van de FSMC, genaamd RS, ten behoeve van het identificeren van de locatie van de data-overdracht (DMA-controller of kaart registreren).

Gegevens worden overgebracht van de buffers naar de beschikbare bus afhankelijk van het type van de overdracht, opgespoord met behulp van de NOE, NWE signalen van de FSMC, zoals in de vorige sectie. Aangezien deze signalen asynchrone zijn, wij toegevoegd aan de MCU-interface een synchrone signaalgenerator die kan worden gebruikt voor het synchroniseren van de andere blokken, maar met een vertraging van 10 tot 20 ns.

Bus verzoek beheer

In het geval van een overdracht van de gegevens van of naar het blok kaart registreert heeft de databus te verlenen voor de transactie met succes worden verwerkt. Als de bus niet beschikbaar is, een verzoek moet worden verzonden naar RegisterMap en de STM32 inactief moet blijven totdat de bus beschikbaar.

Daarom gebruikte een van de algemene doel input/output (GPIO), beschikbaar vanaf de LCD connector, is geconfigureerd voor het verzenden van een signaal genaamd bezet thats de STM32 vertelt dat de FPGA bezig is en niet kan de transactie voortzetten totdat de bezettoon is weer op '0'. Deze eenvoudige procedure waarborgen dat elke overdracht naar of van de kaart registreert met succes en zonder enig gegevensverlies worden verwerkt. Wanneer de bus beschikbaar is, is het inschakelen van een uitgang naar registers in het geval van een lees transactie gestuurd. Als er een schrijf-transactie, wordt een belasting-signaal verzonden naar registers in dezelfde tijd als de adresbus.

Demo

In deze demo ziet u hoe we erin geslaagd beurt in- en uitschakelen LEDs op het bord Nexys 3 van het MCU-bord.

Gerelateerde Artikelen

Verplaatsbaar Wild Lessenaar (GPU Team)

Verplaatsbaar Wild Lessenaar (GPU Team)

ContextOnze docenten gezocht voor ons project voor procestechniek, ons om de uitdagingen van het ontwerpen van een real-time systeem met relatief hoge prestaties op beperkte hulpbronnen (geheugen, bandbreedte).De specificaties vereisen een gokkenplat
Wederopbouw van een open haard Surround

Wederopbouw van een open haard Surround

dit Instructable (Instructanovel) gegevens het proces ging ik door naar een bestaande open haard surround gemaakt van flagstone slopen en te vervangen door een veel aantrekkelijker (althans in mijn ogen) een op maat gemaakt.Toen ik naar mijn huis ver
De naam tekenen CNC

De naam tekenen CNC

Dit instructable ontstond vervulling de project-eis van de Makecourse bij de Universiteit van Zuid-Florida (www.makecourse.com).Met dat in gedachten is het eindresultaat van dit project een CNC dat volledig kan worden uitgevoerd op GRBL, maar om te v
Slimme huis met arduino en jubito

Slimme huis met arduino en jubito

jubito is een software dat ik ontwikkelen op basis van jaNET kader. Een slimme Thuisserver waarmee interfaces tussen verschillende hardware (zoals arduino) en softwareonderdelen, geven de mogelijkheid om elkaar te communiceren en laat me toegang auto
Externe gecontroleerde relay

Externe gecontroleerde relay

In dit project ga ik om u te tonen hoe maak je een goedkope remote gecontroleerde relay met een zender en ontvanger. Deze draadloze relay kan worden gebruikt op om het even wat kunt u en prank uw vrienden door het te koppelen aan een lamp schrikken h
Brei je eigen Instructables Robot

Brei je eigen Instructables Robot

Gebreide Instructables RobotVergeten speelgoed dat zal praten met u, of dans voor u, of batterijen worden gespeeld met nodig. Laten we terug naar de basis met een goede oude ouderwetse plushie speelgoed. Iets om te knuffelen, maar iets dat past in de
Macht van uw Arduino/AVR met een batterij Hand-Cranked

Macht van uw Arduino/AVR met een batterij Hand-Cranked

als u ooit hebt willen macht uw Arduino of AVR uit een batterij voor het testen van de ontwikkeling (batterijen hebben verschillende macht levering kwaliteiten dan, zeg, getransformeerde AC of zelfs een gereglementeerde muur wrat in DC) testen maar w
Zinderende zeepokken, een andere fiets aanhangwagen!

Zinderende zeepokken, een andere fiets aanhangwagen!

ik wilde een eenvoudige fiets aanhangwagen dat zou sterk, lichtgewicht, weerbestendig en eenvoudig te maken. Mijn ontwerp werd beïnvloed door het materiaal dat ik had bij de hand van andere (huis) bouwprojecten, dus er kan beter ijzerhandel onderdele
Een ander Arduino teller

Een ander Arduino teller

Adaptieve rapportage delen batch tellerEen teller die zich aan de machine het aanpassen kan is gemonteerd op en rapportgegevens terug naar andere locaties bijvoorbeeld supervisor ReceptieHier is teller die ik gebouwd als een werkend prototype voor ee
DIY LED bord met MAX7219 Dot Matrix Module STM8S003F3 MCU voor AVR PIC MSP430 Arduino ARM STM32

DIY LED bord met MAX7219 Dot Matrix Module STM8S003F3 MCU voor AVR PIC MSP430 Arduino ARM STM32

om te voldoen aan de elektronische DIY hobbyisten, ICStation MAX7219 Dot Matrix Moduleheeft ontwikkeld. Het gebruikt de Max7219-chip die een geweldige job op besparing van MCU i/o. Het kan geen alleen controle over elk punt afzonderlijk, maar ook kan
MIJN GEWELDIGE TAMIYA WILD ONE!!

MIJN GEWELDIGE TAMIYA WILD ONE!!

this is my awesome tamiya wild one, it was released in 1985 and still runs like ice-cream on a sunny day.een van mijn vader's vrienden vond het op het puntje en ik ben herstellen, modding en re bouwen.met de slicks aan de achterkant zijn zo zacht dat
Edison Robotic Arm

Edison Robotic Arm

Welkom bij mijn eerste ooit Instructable. Voordat ik aan de slag, zou ik willen het Instructables team bedanken voor mij te voorzien van de Intel Edison kit met de geweldige add-ons in de recente Intel weggeven. Robotica is altijd verbaasd me dus het
Androïde slimme telefoon Bluetooth afstandsbediening intelligente slimme auto 51 MCU (Code STC89C52)

Androïde slimme telefoon Bluetooth afstandsbediening intelligente slimme auto 51 MCU (Code STC89C52)

aan het begin van het nieuwe jaar, Robot/Smart auto hobbyisten en studenten (zoals jullie allemaal) over techniek, wetenschap en technologie zijn bezig met de voorbereiding voor de robot wedstrijden nu.Het is de geweldige tijd om te laten zien de wer
Hoe Arm een schaal Model slagschip van kras te bouwen

Hoe Arm een schaal Model slagschip van kras te bouwen

Welkom in de fascinerende wereld van R/C grote GEWEER oorlogsschip bestrijden. Dus wat is precies R/C oorlogsschip bestrijden? Het is een hobby waar schaal model oorlogsschepen, bewapend met lagedruk CO2 kanonnen, brand kleine kogellagers op een tege