SPI-grænsefladen giver en alternativ kommunikationsmetode med µin ,ahahrs og µIMU. SPI-protokollen bruger meget af den samme struktur og format som den serielle kommunikations binære protokol, som er skitseret i afsnittet binær protokol i brugermanualen.

aktiver SPI

for at aktivere SPI, hold pin G9 (nSPI_EN) lav ved opstart.

Bemærk: Når ekstern GPS-PPS timepulse signal er aktiveret på G9, vil modulet ignorere nSPI_EN signal-og SPI-tilstand deaktiveres, uanset G9 pin-tilstand.,

hard .are Hardware

Inertial Sense SPI interface bruger 5 linjer til at interface med andre enheder., id=”c075f8374e”>

Ur Polaritet Tomgang Høj (CPOL = 1) Clock Phase Faldende Kant (CPHA = 1) Chip Select Aktiv Lav Data Klar Aktiv Høj

Data Overførsel¶

For at sikre korrekt adfærd af modtageren i SPI Slave-tilstand, master-enhed afsendelse af rammen skal sikre en minimal forsinkelse på en tbit (tbit er den nominelle tid, der kræves for at overføre en bit) mellem hvert tegn transmission., Inertial Sense-enheder kræver ikke en faldende kant af for at starte en karaktermodtagelse, men kun et lavt niveau. Dette lave niveau skal dog være til stede på mindst en tbit før den første serielle urcyklus svarende til MSB-biten. (1)

Når du læser UIN ‘ erne, og der ikke er nogen data klar, sender den nuller for dataene.

at holde CS lav bør ikke forårsage nogen problemer. Men hvis uret mellem master-og slaveprocessorerne kommer ud af synkronisering, er der intet at få dem tilbage til synkronisering., Ground bounce eller støj under en overgang kan forårsage, at UIN ‘ erne ser to urkanter, når der kun skulle have været en (på grund af en ESD eller en hurtig forbigående begivenhed). Hævning og sænkning af CS-linjen nulstiller skiftregistret vil synkronisere urene igen.

data Ready Pin Option

Der er en data ready pin option. Dette signal hæves, når data bliver klar. Afhængigt af hvornår dette sker, kan der være 1-4 byte nuller, der kommer ud, før pakken starter. Også denne linje vil gå inaktiv en byte eller to inden udgangen af pakken bliver sendt., Der er ikke et” ikke i en datapakke ” – tegn, der skal sendes. Det er strengt udført af data klar pin og parsing.

Hvis chip select-linjen sænkes under en datapakke, kan den byte, der overføres (eller som ville blive overført), gå tabt. Det anbefales kun at sænke chip select, når den er uden for en datapakke, og data ready-pin ‘ en er inaktiv.

den interne SPI buffer er 4096 bytes. Hvis der er et bufferoverløb, bliver bufferen tabt. Dette er angivet med en data klar pin, der er høj uden data er der., Når et overløb sker, rydder det bufferen, så systemet kunne være midt i en pakke, og UIN ‘ erne ville bare sende nuller. Hvis en anmodning sendes til uINS eller uINS sender en pakke med jævne mellemrum, vil det løse situationen.

SPI-grænsefladen understøtter op til 3 Mbs datahastighed. (5 Mbs virker, hvis data ready pin bruges til at modtage data – Se B nedenfor.)

Reading Data

Der er to strategier, der kan bruges til at læse dataene:

A. Læs en fast datastørrelse ud hvert sæt tidsinterval., Flere data vil blive læst end uINx vil producere på en regelmæssig interval, for eksempel, læse 512 bytes hver 4 ms.

Pakke vil blive 0x00 polstret hvis bytes, der læses overstiger pakke størrelse.

B. Læs mens data ready pin er aktiv, eller vi er inde i en datapakke. En anomali er, at data ready-pin ‘ en vil droppe en byte eller to, før slutningen bliver klokket ud, og dermed behøver at holde øje med slutningen af pakken.

pseudokode til læsning af data: pseud

  1. Kontroller data klar pin. Hvis pin-koden er lav, skal du forsinke og kontrollere pin-koden igen.,
  2. lavere CS linje og læse en blok af data. Læsestørrelser er vilkårlige, men det har en tendens til at fungere bedre, hvis læsetællingen er lang nok til at indeholde de fleste datapakker.
  3. når læst er afsluttet, skal du kontrollere data klar pin. Hvis det er højt, Læs flere data. Må ikke hæve CS linje, mens data klar pin er høj, vil det medføre tab af data. Hvis data klar er lav, hæve CS linje. På et travlt system (og afhængigt af baudhastighed) skulle dette ske sammen med dataene, der læses, da data ready-pin ‘ en muligvis ikke går lavt mellem pakkerne.,
  4. Parse data på udkig efter start af pakke (0 .ff) kassere data indtil fundet. Når fundet begynde at gemme data.
  5. Gem og parse data på udkig efter slutningen af pakken (0 .fe). Når fundet sende pakke ud til brug. Hvis der ses en start af pakketegn, mens du leder efter slutningen, skal du kassere tidligere data og starte pakkebesparelsen igen.

EVB-2 SPI Dev Kit

EVB-2 demonstrerer SPI interface med UIN ‘ erne. EVB-2 atsam-E70 (E70) processor giver eksempel SPI interface med uINS., EVB-2 skal sættes i cbpreset mode 6 (CONFIG led color cyan) efterfulgt af en system nulstilling for at aktivere SPI-tilstand. EVB-2 (E70) – projektets kildekode er tilgængelig i SDK som reference.

fejlfinding

Hvis alle andre tegn fra en pakke går tabt, kan det være, at CS-linjen skiftes efter hver byte.

UINs 3.1 bruger et USART SPI-periferiudstyr, der kræver en minimumsforsinkelse på en tbit (tbit er den nominelle tid, der kræves for at transmittere en bit) afstand mellem sendte Tegn. Læsning bytes BYN efter mayn kan forårsage signifacnt tidsforsinkelser, når streaming af data., Afhængig af ammount af data streaming, uINS mable at holde op og bufferen kunne være overløb. Anmodninger om enkeltmeddelelser skal fungere korrekt, men streaming fungerer sandsynligvis ikke godt. Hvis master hard .are ikke kan håndtere forsinkelsen, skal UINs 3.2 hard .are bruges.