어떤 생각 STM32 하드웨어 SPI 데이터는 손실 간섭을받은

최근 수신 SPI 시뮬레이션 소프트웨어는 처음에 생각한 우리에게 데이터를 전송하는 SPI 클럭의 4MHz의 클라이언트와 프로젝트를 수행하고, 그 결과는 너무 젊은 너무 간단했다.

이 4MHz의 속도를 보이지만이 수십 나노초의, 그냥 다스 명령어 사이클을 중단 응답 할 필요가 높지는 않지만, 레벨 기간에 해당 간단하게 할 수 없어, STM32 라이브러리 함수에 의해 읽기, 125ns이다 밖으로, 다음 상태를 판단하는 혼자 읽기 수준을 수 있습니다.

내가 회로 기판을 변경해야합니다 그래서, 하드웨어 SPI를 사용하는 운명을 받아 들일 수 밖에 없었다. 이전 STM32 하드웨어 IIC이 문제가 알고 있기 때문에, 그들은 자신의 시뮬레이션이 모든 시뮬레이션 소유 할 수있다, 이것은 단점의 SCM이며, 이미 여전히 시간, 하드웨어가 그렇지 않은 변화, 당신은 결국 그 안에 무슨 일이 있었는지 모르는 수 있습니다 행하신 FPGA는 정말 향기 생각합니다.

구성을 수행 한 후, 사용 FPGA는 수신 인터럽트 웨이브, STM32 사용 SPI3 정상 수신 문제 없음을 시작했다. 이 옆.

몇 시간 후, 프로젝트의 시작은, 고객은 모든 200US 데이터 일단 우리를 보내야한다 (끔찍하지만, 다행스럽게도 소프트웨어 SPI를 사용하지 않았거나, 다른 사람들은 어떤 문제가하지 말았어야), 문제가 등장이 시간 : 패킷 손실을.

다음과 같은 가능한 요소 문제 해결 :

  1. 주파수 수신 하드웨어 SPI와 계속 할 수있는 능력의 결과로, 너무 높은 여부?
  2. LE는 SPI 신호와 판정 SPI에 STM32 짧은 리드 타임 간의 간격 클록 신호를 사용하는지 여부?
  3. 간섭 신호 전송?

첫 번째 가능성 , 전송 주파수를 줄이기 위해 시도 효과는, 수신 주파수, 효과 없음을 절감하려고하지;

제 가능한 들어 , 신호 CLK와 연장 NSS 시험 영향을 시작하려고;

그것은 인터럽트를 너무 자주 수신에 장애가 발생하지 생각하는 시간이다, SPI와 DMA 수신이 그것을 시도 있도록 구성이 성공하지 않았기 때문에 포기. 물론, 제공하는 이유는 데이터가 DMA에 의해 수신되는 경우에도, 이해 할 것입니다, 그래서 존재 또는 중단 된 즉시 응답해야합니다.

그 때 나는 엠마뉴엘 라인입니다. 뿐만 아니라 자발적인 자기 개발 보드와 함께 닫으려고 하는가? ?

이 프로그램 테스트를 구성하면, 어떤 패킷 손실을 찾을 수 없습니다! ! ! 이것은 완전히 계속 전송 주파수를 강화하기 위해 시도 할 수 있습니다 속도는 문제가되지 않습니다, STM32 하드웨어 SPI는 문제가되지 않습니다 보여줍니다.

세번째 가능성이 있다는

  1. 임시 플레이트 고객에게 판 사이의 연결 여부가 너무 지저분 원인을 너무 많이 방해 등의 판독이 실패 클럭 신호 라인에 와이어를 용접하고있다?
  2. 인해 다층 통해 마이크로 IO 포트 어댑터 사이의 단단한 구조, 기판 커넥터와 고객의 연결에 너무 교란 신호를 일으키는?
  3. 동료는 간섭 신호가 너무 큰 받았습니다 원인이 더 많은 경우가 라인에 직각으로 이동이 있었다 아니라 매우 전문 PCB 기판을 그릴?

다음 파형 마이크로 컨트롤러 IO 포트 뿌리를 잡아, 또는 무엇 손을 흔들어, LE 지터 신호, 나머지 신호를 모르는, 다음, 로직 분석기 데이터를 파악, 우리는 첫 번째 줄에 뿌리를 연결 플레이트 클라이언트 판을 파악, 정상 파형을 발견 더 정상. 특정 핵심의 지금 아무 생각까지 무엇에 거짓말,하지만 확실히 보드는 설계 문제를 결정합니다.

이 때, 우리는 고객을 생각 나게 클럭의 하강 에지에서 잡아 데이터 종종 있기 때문에 떨어지는이 때문에 PCB 또는 지터를 나타날 수 있습니다 라인의 상승 에지의 깨끗한입니다.

그래서 클럭의 하강 에지에 프로그램에서 데이터, 과연이 현상 ~의 손실을 캡처

 

요약 :이 현상의 설명은, 기판 설계 자체가 불안정 상승하고 보드가 기능을 실현하기 위해, 이후 완료되었습니다로 이어지는 문제가있다, 그것은 클럭의 상승 에지에 떨어지는 캡처 데이터를해야했다 는 전송의 신뢰성을 향상시킬 수 그래서, 데이터를 캡처합니다.

그래서 다시 결국 내가 생각 한 질문, STM32 SPI 하드웨어 설계에 문제가 없다? 대답은 결정된다. 는 NSS STM32 끝이 하드웨어 모드로 설정하면 SPI 하드웨어가 알고 사용, 다음, 전체 통신이 전체 과정을 완료 할 수 없습니다는 NSS는 낮은 레벨 상태 일 것이다. 다른 관련 정보에 의해 상기 NSS 제대로 출력 타이밍에 외부로부터 풀업 저항에 접속한다 STM32. 이 디자인은 더 아픈 사람들이지만, 나는 결론을 내리지 얻을 수없는 특정 테스트가 없습니다. 당신은 테스트 할 수 있습니다.

发布了13 篇原创文章 · 获赞 23 · 访问量 5万+

추천

출처blog.csdn.net/shizhibuyi1234/article/details/104697676