USB sbi 프로토콜 사양은 무엇인가요?
sbi가 아니라 spi겠죠?
SPI는 English Serial Peripheral Interface의 약자로 이름에서 알 수 있듯이 Serial Peripheral Interface를 의미합니다. SPI는 칩 핀에서 4개의 라인만 차지하는 고속, 전이중, 동기식 통신 버스로, 칩 핀을 절약하고 PCB 레이아웃에서 공간을 절약하므로 간편하고 사용하기 쉽습니다. 기능으로 인해 이제 P89LPC900과 같은 이 통신 프로토콜이 점점 더 많아지고 있습니다.
SPI는 고속, 전이중, 동기식 통신입니다. 버스에는 마스터 모드와 슬레이브 모드의 두 가지 작동 모드가 있습니다. 어떤 모드에서든
3Mbit/s의 속도를 지원하고 전송 완료 플래그와 쓰기 충돌 방지 플래그도 있습니다. 지금까지 내가 사용한 SPI 버스 장치는 메모리 칩 Eprom: at25128입니다. 사용 중에 이 버스의 장점을 발견했습니다. 다음은 P89LPC900 마이크로컨트롤러의 SPI 버스를 사용하여 SPI 버스의 일반적인 사용 규칙을 설명합니다.
LPC900 마이크로 컨트롤러의 SPI 인터페이스는 주로 SPICLK, MOSI, MISO 및 /SS의 4개 핀으로 구성됩니다. SPICLK는 전체 SPI 버스의 공통 클록이고 MOSI 및 MISO는 입력 및 출력입니다. 호스트와 슬레이브 기호 중 MOSI는 호스트의 출력과 슬레이브의 입력이고, MISO는 호스트의 입력과 슬레이브의 출력입니다. /SS
는 슬레이브의 플래그 핀입니다. 서로 통신하는 두 SPI 버스 장치 중 /SS 핀의 레벨이 낮은 것이 슬레이브입니다. /SS 핀의 값이 높습니다. SPI 통신 시스템에는 호스트가 있어야 합니다.
SPI 버스는 단일 마스터와 단일 슬레이브, 단일 마스터와 다중 슬레이브, 상호 마스터와 슬레이브로 구성할 수 있습니다. 오늘은 상호 마스터-슬레이브 모드를 설명으로 사용하겠습니다.
SPI 상호 마스터-슬레이브 작업을 수행하려면 다음 단계를 따라야 합니다.
1 A와 B를 초기화하고 둘 다 호스트로 설정합니다. (다음 작업이 필요합니다.)
a) SPI 포트는 준양방향으로 초기화됩니다.
b) SPCTL은 0x50, SSIG=0, SPEN=1, MSTR=1로 구성됩니다.
c) SPSTAT의 SPIF 및 WCOL 플래그를 0으로 지웁니다.
d) SPI 인터럽트를 사용해야 하는 경우 해당 인터럽트 비트를 활성화할 수 있습니다.
2 A의 이전 핀을 B의 /SS 핀에 연결한 다음 /SS를 로우로 당겨서 B를 슬레이브 모드로 강제 전환합니다. 동시에 B는 다음과 같은 변경을 겪게 됩니다. >
a) 머신 B의 MSTR 비트는 자동으로 0으로 지워집니다.
b) 머신 B의 MOSI와 SPICLK는 강제로 입력 모드로 변경되고, MISO는 출력 모드로 변경됩니다.
c) 머신 B의 SPIF 비트가 설정됩니다.
d) SPI 인터럽트가 활성화되면 머신 B는 SPI 인터럽트 서비스 루틴을 실행합니다.
3 머신 B는 쿼리 수신 또는 인터럽트 수신 모드로 설정되어 머신 A에서 전송된 데이터를 항상 수신할 준비가 되어 있을 수 있습니다. 머신 B를 호스트로 복원하려면 1단계가 완전히 실행되어야 합니다. 이 예에서는 SPI 상호 마스터-슬레이브 테스트 시스템이 두 개의 DP932 실험 보드를 통해 구성됩니다.
프로그램에서 주의해야 할 사항:
1. 프로그램에서 SS 핀의 첫 번째 풀다운: 기계 A가 설정될 때 주의해야 합니다. 머신 B를 처음으로 B_SS를 통해 슬레이브로 설정하면 슬레이브의 SBIF 비트가 설정됩니다(이전에 SPI 인터럽트가 활성화된 것으로 간주됨). 슬레이브는 해당 인터럽트 서비스 루틴을 실행합니다. 이 예제 프로그램에서는 기계 B의 SS 핀이 로우로 당겨지고 기계 B의 SBIF가 처음으로 처리를 위해 설정될 때입니다.
2 슬레이브 머신이 마스터 머신으로 되돌아가는 문제에 대해: 상호 마스터-슬레이브 모드에서 머신 B가 머신 A에 의해 슬레이브로 설정되면 CPCTL 레지스터의 MSTR 비트가 클리어됩니다. 0으로 설정되고 SPIF는 1로 설정됩니다. MOSI 및 SPICLK는 강제로 입력 모드로 설정되고 MISO는 강제로 출력 모드로 설정됩니다. 호스트로 복원하려면 다음 작업을 수행해야 합니다.
a) MSTR 비트를 1로 설정하고 SPIF 비트를 0으로 지웁니다.
b) MOSI, SPICLK, MISO 및 SS를 준양방향 포트로 복원합니다.
c) a)와 b) 이전에 B_SS를 높게 끌어올리는 데 주의가 필요합니다. 만약 a)와 b) 작업이 완료되더라도 B_SS가 항상 로우인 경우에는 B 머신이 재설정됩니다. 노예 기계로.
3 SPI 버스를 사용하는 동안 DORD(SPI 데이터 시퀀스 선택 비트), CPOL(SPI 클럭 극성 선택 비트), CPHA(SPI 클럭 위상 선택 비트)를 통해 마스터/슬레이브를 제어할 수 있습니다. 전송 형식. 이 실험에서는 이러한 비트의 영향을 무시할 수 있지만 다른 SPI 장치를 사용할 때는 슬레이브 장치 데이터 시트의 요구 사항에 따라 SPI 데이터 전송 시퀀스, SPI 클록 극성 및 SPI 클록 위상을 수정해야 합니다. 위로.
4 일부 SPI 응용 시스템에서는 하드웨어 설계가 그다지 합리적이지 않기 때문에 때때로 SPI 통신이 비정상적입니다(전송 데이터 오류 또는 기타 상황). SPI 버스의 전송 속도를 줄이려고 시도할 수 있습니다. 또는 일부 SPI 클록 극성과 위상을 조정하여 전송을 안정적으로 만듭니다.
기사 출처: 인터넷