SPI 인터페이스는 대체 방법을 제공합 통신 µINS,µAHRS 및 µIMU. SPI 프로토콜은 사용자 설명서의 이진 프로토콜 섹션에 설명 된 직렬 통신 이진 프로토콜과 동일한 구조 및 형식을 많이 사용합니다.

Spi 활성화¶

SPI 를 활성화하려면 시작시 핀 G9(nSPI_EN)를 낮게 잡으십시오.

참고:외부 GPS PPS timepulse 신호가 활성화에 G9,모듈을 무시하 nSPI_EN 신호 및 SPI 사이의 G9 핀 상태입니다.,

하드웨어¶

관성 감각 SPI 인터페이스는 다른 장치와 인터페이스하기 위해 5 라인을 사용합니다., id=”c075f8374e”>

시계극 유휴 고(CPOL=1) 시계 단계 하강 에지(CPHA=1) 칩 선택 Active Low 데이터 준비 Active 고

데이터 전송¶

올바른 동작을 보장하려면 수신기의 SPI 슬레이브 모드 마스터를 보내는 장치 프레임지 확인해야 합 최소 지연의 tbit(tbit 는 명목하는 데 필요한 시간을 전송 비트)사이의 각 문자를 전송합니다., 관성 감지 장치는 문자 수신을 시작하기 위해 떨어지는 가장자리가 필요하지 않지만 낮은 수준 만 필요합니다. 그러나,이 낮은 레벨은 MSB 비트에 대응하는 제 1 직렬 클록 사이클 전에 적어도 하나의 tbit 상에 존재해야 한다. (1)

을 읽을 때 uINS 과 데이터 준비를 보낼 것입니다 제로에 대한 데이터이다.

CS 를 낮게 유지하면 문제가 발생하지 않아야합니다. 그러나 마스터 프로세서와 슬레이브 프로세서 간의 클럭킹이 동기화되지 않으면 다시 동기화 할 수있는 것이 없습니다., 지상 반송하거나 소환 중에 발생할 수 있습 uINS 보는 두 개의 가장자리에 시계가 있을 때가 있어야만 하나의(인 ESD 또는 고속 과도 응답 가능) CS 라인 재설정을 올리거나 내리면 시프트 레지스터가 클럭을 다시 동기화합니다.

데이터 준비 핀 옵션¶

데이터 준비 핀 옵션이 있습니다. 이 신호는 데이터가 준비 될 때 발생합니다. 이런 일이 발생하는시기에 따라 패킷이 시작되기 전에 나올 1-4 바이트의 0 이있을 수 있습니다. 또한이 줄은 패킷의 끝이 전송되기 전에 바이트 또는 두 개의 비활성 상태로 이동합니다., 보낼”데이터 패킷에 없음”문자가 없습니다. 데이터 준비 핀 및 구문 분석에 의해 엄격하게 수행됩니다.

데이터 패킷 중에 칩 선택 라인이 낮아지면 전송되는 바이트(또는 전송되는 바이트)가 손실 될 수 있습니다. 데이터 패킷 외부와 데이터 준비 핀이 비활성 상태일 때만 칩 선택을 낮추는 것이 좋습니다.

내부 SPI 버퍼는 4096 바이트입니다. 버퍼 오버플로가 있으면 버퍼가 삭제됩니다. 이는 데이터가 존재하지 않고 높은 데이터 준비 핀으로 표시됩니다., 오버플로가 발생하면 버퍼를 지우므로 시스템이 패킷의 중간에있을 수 있고 uINS 는 0 을 보내면됩니다. Uins 에 요청을 보내거나 uINS 가 패킷을 주기적으로 보내면 상황이 해결됩니다.

SPI 인터페이스는 최대 3Mbs 데이터 속도를 지원합니다. (5Mbs 는 데이터 준비 핀이 데이터를 수신하는 데 사용되는 경우 작동합니다-아래 B 를 참조하십시오.)

데이터를 읽¶

두 가지 전략을 사용할 수 있는 데이터를 읽:

A. 읽 고정 데이터 크기의 모든 설정된 시간 간격입니다., 더 많은 데이터를 읽을 수 있다 uINx 생산에 일정 간격,예를 들어,읽기 512 개의 바이트는 모든 4ms.

패킷을 것입 0x00 패딩면 읽은 바이트를 초과하는 패킷 크기입니다.

B. 데이터 준비 핀이 활성 상태이거나 데이터 패킷 내부에있는 동안 읽습니다. 중 하나 이상의 데이터 준비 pin 도가 바이트 또는 두 개의 끝나기 전에 가져오는 클럭으로,따라서 필요로하는계의 종료에 대한 패킷을 전송합니다.

데이터를 읽는 의사 코드:¶

  1. 데이터 준비 핀을 확인하십시오. 핀이 낮 으면 지연하고 핀을 다시 확인하십시오.,
  2. Cs 라인을 낮추고 데이터 블록을 읽습니다. 읽기 크기는 임의적이지만 읽기 횟수가 대부분의 데이터 패킷을 포함 할만큼 충분히 길면 더 잘 작동하는 경향이 있습니다.
  3. 읽기가 완료되면 데이터 준비 핀을 확인하십시오. 그것이 높으면 더 많은 데이터를 읽으십시오. 데이터 준비 핀이 높은 동안 CS 라인을 제기하지 마십시오,그것은 데이터 손실의 원인이됩니다. 데이터 준비가 낮 으면 CS 라인을 올리십시오. 에서 바쁜 시스템(과에 따라 전송 속도)이 필요로 하는 일이와 함께 데이터를 읽으로 데이터 준비 pin 지 않을 수도 있습 낮은 이동에 사 패킷입니다.,
  4. 찾을 때까지 데이터를 폐기하는 패킷(0xFF)시작을 찾는 데이터를 구문 분석합니다. 일단 발견되면 데이터 저장을 시작하십시오.
  5. 패킷 끝(0xFE)을 찾는 데이터를 저장하고 구문 분석합니다. 일단 사용을 위해 패킷을 보내 발견. 끝을 찾는 동안 패킷 문자의 시작이 보이면 이전 데이터를 버리고 패킷 저장을 시작하십시오.

EVB-2SPI Dev Kit¶

EVB-2 는 uINS 와의 SPI 인터페이스를 보여줍니다. EVB-2ATSAM-E70(E70)프로세서는 uINS 와 예제 SPI 인터페이스를 제공합니다., EVB-2 는 CBPreset 모드 6(CONFIG led 컬러 시안 색)에 넣어야하며 spi 모드를 활성화하기 위해 시스템을 재설정해야합니다. EVB-2(E70)프로젝트 소스 코드는 참조 용으로 SDK 에서 사용할 수 있습니다.

문제를 해결¶

경우 다른 모든 문자에서 패킷을 잃었습니다 수 있습 CS 되고 있는 전환 후에는 모든 바이트.

uINS3.1 사용 USART SPI peripherial 필요한 최소 지연의 tbit(tbit 는 명목하는 데 필요한 시간을 전송 비트)사이의 간격을 문자를 보냈습니다. 바이트를 하나씩 읽으면 데이터를 스트리밍 할 때 signifacnt 시간 지연이 발생할 수 있습니다., 데이터 스트리밍의 양에 따라 uins mable 이 유지되고 버퍼가 오버플로 될 수 있습니다. 단일 메시지 요청이 제대로 작동해야하지만 스트리밍은 아마도 잘 작동하지 않을 것입니다. 마스터 하드웨어가 지연을 처리 할 수없는 경우 uINS3.2 하드웨어를 사용해야합니다.