Spiinterface Tutorial. (Svenska)

SPI-gränssnittet(Serial Peripheral Interface)bussen är en hög hastighet, 3 – tråd, serial communications protocol (4 Om du inkluderar SSn-se nedan). Itsprimiary syfte är att minska på PCB tråddragning genom att ersätta dentraditionella parallell buss med ett seriellt gränssnitt. (Du kan bara aboutmanage en 8 bitars buss dirigera den genom ett flera lager PCB men när youget till 16, 32 bitar och mer blir det mycket svårare).,

anslutningarna är:

  • MOSI (Master Out Slave In) .
  • MISO (Master Slav I Ut) .
  • SCK (Slavklocka) .
  • SS_n (Slav Välj).

– betecknar PIC-nomenklaturen

Obs! den sista signalen SS eller slavval är skild från protokollet och implementeras vanligtvis som en utlösande styrpinne från mikrokontroller. Det ingår här för fullständighet.

SPI PIC-gränssnittet möjliggör anslutning av kringutrustning med ett höghastighets seriellt gränssnitt. SPI FlashMemory och SPI SRAM kan enkelt läggas till alla system., Andra typer av enheter är:

  • ADC.
  • DAC.
  • Flash.
  • EEPROM.
  • Accellerometrar.
  • LCD-skärmar.
  • temperatur& fuktgivare.
  • …och många fler.

Itsonly andra riktiga tävling är I2C-buss, vilket är varför du ofta seethese gränssnitt som finns tillgänglig både på processorer och mikrokontroller.

SPI-gränssnittet designades på 1970-talet av Motorola, som använde det i sin 68000processor, och det antogs snabbt av många andra tillverkare som en defacto-standard.,

detär avsett föröverföring av data från en huvudenhet till en eller flera slavedevices över korta avstånd och vid höga hastigheter (MHz).

hur det fungerar

det fungerar genom att överföra data en bit i taget mellan två enheter med huvudenheten som skickar klocksignalen (sck). Klockan styr tidpunkten för dataöverföringen.

Data (MOSI )skickas ut ur ett skiftregister i Master SPI-enheten tillsammans med en klocksignal (SCK) samtidigt som ett annat skiftregister tar emot data från slaven (MISO ).,

befälhavaren är alltid i kontroll och initierar dataöverföring med hjälp av klocksignalen. Slavenheter väljs med en separat slavvalssignal som är programstyrd, dvs dessa signaler är separata från SPI-hårdvarumodulen.

Obs! antalet bitar definieras inte av protokollet så att du inte är begränsad till att bara använda 8 – Det kan vara valfritt antal bitar. Detta är användbart när daisy chaining SPI slavar som du behöver för att ställa in antalet bitar till summan av alla bitar som krävs av varje enhet.,

Obs! SPI definierar ett enda huvudsystem.

det alternativa protokollet, IIC, tillåter flera bus master operation.

SPI-gränssnittsklockdefinition

SPI-klockan är inte definierad alls – vilket innebär att olika slavenheter kan anta olika klockoperationer; en slav kan kräva en ledig klocka som är hög, medan en annan kan kräva ett tomgångstillstånd av låg. Andra kommer att reagera på den stigande kanten medan andra reagerar på den fallande kanten!,

SPI interface protocl klarar detta genom att låta dig programmera dessa detaljer till spi hardware module.

följande bild visar PIC-gränssnittet för SPI (alla SPI-hårdvarumoduler i andra mikrokontroller tillåter samma operation bara med olika register).,

SPI Interface PIC signals (extract from PIC datasheet DS39582B)

det är upp till dig att ställa in rätt klocka för din enhet när den aktiveras av en slavvalssignal (eller i fallet med en enda slav är det alltid valt så det blir ingen slavvalssignal).

Arduino SPI-anslutning

Följande diagram visar gränssnittet till spi-anslutningarna som också råkar vara programmeringskontakten (ICSP), på Arduino-kortet, som möjliggör direkt programmering av ATmega328p.,p>

5 – Reset

6 – GND

Location of the SPI connector on Arduino Uno R3

Photo Credit : kenming_wang (mod shows ICSP)

Different SPI Interface operational Modes

There are three ways of using the SPI interface

  1. Single Master – Single Slave.,
  2. Single Master – flera slavar – Chip vald.
  3. Single Master – flera slavar – Dasiy kedjade.

Single Master – Single Slave.

här är inställningen för en enda SPI-enhetsanslutning:

Obs: chip select-signalen SS är valfri för ett enda enhetssystemsom du normalt binder SSinput vid slaven låg (om de andra raderna är avsedda för SPI-användning).,

SIP – gränssnitt: med hjälp av chip väljer

med det här systemet styr du varje slavenhet med hjälp avdess chipvalslinje (vanligtvis aktiva lågröda pilar visar kontroller). När datautgången från slaven är inaktiverad övergår den till ett högimpedanstillstånd så att den inte stör den valda slaven och slavens datainmatning ignoreras (checkdatasheet).,
fördelen med detta system är att du kan överväga (kontroll) varje enhetseparat när du jämför det med daisy chain – metoden-vilket möjliggör anslutning av SPI-enheter som kräver olika klockprogram.

om du har SPI-slavar som arbetar med olika klockor (kanter/tomgångstillstånd) kan du programmera om Master SPI-maskinvarumodulen innan du aktiverar en specifik CS så att varje slav har rätt signaler som skickas till den.

om du använder Daisy chain-metoden måste du se till att alla marker använder samma klockkant och inaktiv klockstatus.,

SPIInterface :Daisy chaining

med detta schema flyttas Alla data som skickas av befälhavaren till alla enheter och alla data som skickas från varje enhet flyttas ut till nästa (visas med röd prickad pil). För att detta system ska fungera måste du se till att varje slav använder klockan på samma sätt och du måste få rätt antal bitar, så det finns mer arbete att göra i programvaran.

Obs: fördelen med Daisy-Chain-metoden är att du sparar en chip select-signal för varje slave SPI-enhet.

Mer information om Wikipedia.,

SPI gränssnitt Daisy Chain

SPI Daisy Chain exempel

använd flera hc595 chips, daisy-chain länkade, vilket ger en enkel ökning av antalet utgångar tillgängliga utan att använda många mikrokontroller stift.

driftsgränserna är HC-hastigheten, SPI-utmatningens hastighet. Design också beakta exempelvis Om du kör en uppsättning Lysdioder som måste uppdateras varje 20ms.

Parallella Kontra Seriell SPI

Den avvägning mellan att använda ett parallellt gränssnitt och SPI-gränssnittet är t ex hastighet, om duläs en parallell 12bit ADC vid 200ksps då kan du läsa enheten ata 200kHz hastighet men om du vill få samma datahastighet med SPI dådu behöver en seriell hastighet på 200kHz x 12 = 2.4 MHz. Så den faktiska bytet är hastighet och följdljudet introducerades i kretsen.

sammanfattning

SPI-gränssnittet definierar ett mycket populärt protokoll som fungerar med hög hastighet. Det största problemet är att slavenheter inte är bundna av något särskilt klock-system så att de kan fungera annorlunda mot varandra och det kan göra det svårt att kontrollera dem, dvs, klockan tomgång och kant måste ställas in korrekt för varje enhet.

fördelar:

  • hög hastighet.
  • Exremely enkelt gränssnitt som är lätt att replikera i programvara.

nackdelar:

  • Slavchips är fria att anta alla klock system de kräver.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *