SPI-grensesnitt gir en alternativ metode for kommunikasjon med µINS, µAHRS, og µIMU. SPI-protokollen bruker mye av den samme strukturen og formatet som den serielle kommunikasjonen binær protokoll som er skissert i Binær Protokoll delen av brukermanual.
Aktiver SPI¶
for Å Aktivere SPI, hold pin-G9 (nSPI_EN) lav ved oppstart.
Merk: Når ekstern GPS-PPS timepulse signal er aktivert på G9, modulen vil ignorere nSPI_EN signal og SPI-modus deaktiveres uavhengig av G9 pin tilstand.,
Maskinvare¶
Treghet Følelse SPI-grensesnittet bruker 5 linjer for å samhandle med andre enheter., id=»c075f8374e»>
dataoverføring¶
For å sikre korrekt oppførsel av mottakeren i SPI-Slave-modus, master-enheten sender rammen må sikre et minimum forsinkelse av en tbit (tbit være den normale tiden det tar å overføre en bit) mellom hvert tegn overføring., Treghet Følelse enheter som ikke krever en fallende kant av å starte et tegn resepsjon, men bare et lavt nivå. Imidlertid, dette lave nivået må være tilstede på minst en tbit før den første seriell klokke syklus tilsvarende MSB bit. (1)
Når du leser uINS og det er ingen data som er klar vil den sende nuller for data.
å Holde CS lav bør ikke føre til noen problemer. Imidlertid, hvis klokkes mellom master og slave-prosessorer kommer ut av sync det er ingenting å få dem tilbake i sync., Bakken sprette eller støy under en overgang kan føre til uINS ser to klokke kantene når det skal bare ha vært en (på grunn av en ESD eller en rask forbigående hendelse). Heve og senke den CS linje tilbakestiller skift-register vil synkronisere klokkene.
Data Klar Pin-Alternativet¶
Det er en data klar pin-alternativet. Dette signalet vil bli hevet når data blir klar. Avhengig av når dette skjer, det kan være 1-4 byte av nuller som vil komme ut før pakken starter. Også denne linjen vil gå inaktiv en byte eller to før slutten av pakken blir sendt., Det er ikke en «ikke i en datapakke» tegn til å sende. Det er strengt gjort av data klar pin-kode og analysere.
Hvis brikken velger linje er senket under en data pakke, byte som overføres (eller som vil bli overført) kan være tapt. Det anbefales å bare lavere chip velg når du er utenfor av en datapakke og dataene klar pin-koden er deaktivert.
Den interne SPI buffer er 4096 bytes. Hvis det er en buffer overflow bufferen blir droppet. Dette er indikert ved en data er klar pin-kode som er høy uten at data blir det., Når et overløp skjer, sletter buffer, slik at systemet kan være i midten av en pakke og uINS ville bare sende nuller. Dersom en anmodning er sendt til uINS eller uINS sender en pakke med jevne mellomrom vil det løse situasjonen.
SPI-grensesnittet støtter opptil 3 Mb data pris. (5 Mbs fungerer hvis dataene klar pin-koden er brukt for å motta data – se B nedenfor.)
Lesing av Data¶
Det er to strategier som kan brukes til å lese data:
A. Lese en fast data størrelse ut hver angitt tidsintervall., Mer data vil bli lest enn uINx vil produsere på et regelmessig intervall, for eksempel, leser 512 byte hver 4 ms.
Pakken vil bli 0x00 polstret hvis byte les overstiger pakkestørrelsen.
B. Lese mens dataene klar pin-koden er aktiv eller vi er inne i en datapakke. En anomali er dataene klar pin-koden vil slippe en byte eller to før slutt blir klokket ut, derfor behov for å se på slutten av pakken.
Pseudo-Kode for lesing av data:¶
- Sjekk data klar pin-kode. Hvis pin-koden er lav, forsinkelse og sjekk pin-koden på nytt.,
- Lavere CS linje og lese en blokk av data. Les størrelser er vilkårlige, men det har en tendens til å fungere bedre dersom les teller er lang nok til å inneholde de fleste av data-pakker.
- Etter å ha lest er ferdig, kan du kontrollere data klar pin-kode. Hvis det er på høy, les mer data. IKKE øke CS linje mens dataene klar pin-kode er høy, vil det føre til tap av data. Hvis data er klar lave, heve CS linje. På en travel system (og avhengig av overføringshastighet), ville dette må skje sammen med data leses som dataene klar pin-kode kan ikke gå lavt i mellom pakker.,
- Analysere data leter du etter start av pakken (0xFF) forkaster data til fant. Når du har funnet den begynner å lagre data.
- Lagre og analysere data leter du etter slutten av pakken (0xFE). Når du har funnet sende pakke av for bruk. Hvis en start på pakken karakter er sett mens du leter etter den slutten, forkaste tidligere data og starter du pakken sparer over.
EVB-2 SPI Dev Kit¶
EVB-2 viser SPI-grensesnitt med uINS. Den EVB-2 ATSAM-E70 (E70) prosessor gir eksempel SPI-grensesnitt med uINS., Den EVB-2 må være satt i CBPreset modus 6 (CONFIG led farge cyan) etterfulgt av et system reset for å aktivere SPI-modus. Den EVB-2 (E70) prosjekt kildekoden er tilgjengelig i SDK for referanse.
Feilsøking¶
Hvis alle andre tegn fra en pakke er tapt, kan det være at CS linje blir slått etter hver byte.
uINS 3.1 bruker en USART SPI peripherial som krever et minimum forsinkelse av en tbit (tbit være den normale tiden det tar å overføre en bit) mellomrom mellom tegn som sendes. Lesing bytes, én etter én, kan det føre signifacnt forsinkelser når streaming data., Avhengig av mengde data streaming, den uINS mable å holde opp og bufferen kan være overløp. Enkelt melding forespørsler skal fungere på riktig måte, men streaming sannsynligvis ikke vil fungere godt. Hvis master maskinvaren ikke kan håndtere forsinkelse, uINS 3.2 maskinvare bør brukes.