SPI 버스 종료 문제


10

OMAP Linux SPI 마스터가 6 개의 SPI 슬레이브 주변 장치 (5x A / D 변환기 및 단일 자력계)와 상호 작용하는 프로젝트를 진행하고 있습니다.

SPI 클럭 주파수를 설정할 수 있으며 50kHz, 100kHz 및 1MHz로 실험했습니다.

SPI 마스터 및 모든 주변 장치의 길이를 보여주는 배선 / 보드 다이어그램을 첨부했습니다. 마스터와 떨어져있는 SPI 버스 길이 (모든 와이어 길이)는 약 970mm입니다.

여기에 이미지 설명을 입력하십시오

내가 찾은 문제는 버스에 다른 주변 장치를 더 추가 할 때 1 개의 주변 장치와의 통신이 실패한다는 것입니다. 버스의 반대쪽에있는 자력계로 통신이 이루어 지더라도, 자력계 하네스 스터브가 제거되고 A / D 섹션으로 돌아올 때까지 다른 쪽의 A / D 변환기와의 통신에 실패합니다.

나는 여기에서 약간의 독서를했습니다 : SPI 버스 종료 고려 사항 및 여기 : 단거리 보드 대 보드 통신

RC LPF를 모든 구동 노드에 가깝게 배치하는 것이 좋습니다. 따라서 SCLK 및 MOSI는 마스터 측과 각 6x MISO / SOMI 신호에 있습니다. 47pF / 27R RC 네트워크를 사용하여 USB에 대해 비슷한 접근 방식을 수행했습니다. 나의 의도는 날카로운 에지를 ~ 100nsec의 에지 전이를 줄이기 위해 회로에서 시도하는 것입니다.

RC LPF를 추가하여 여기에 따르는 올바른 절차입니까? 이것은 정말 흔들리는 것 같습니다. 더 나은 연습이 있습니까? 더 긴 버스 거리를 위해 SPI를 확장하는 것에 대해 이야기하는 TI의 애플리케이션 노트를 보았습니다. 이것이 적절한 해결책입니까 아니면 내 문제가 단순히 고속 에지 전환에서 고주파 고조파 중 하나입니까? http://www.ti.com/lit/an/slyt441/slyt441.pdf

고마워, 닉

자력계에서 깨끗한 CLK / MISO 측정

CLK 신호의 클록 천이 시간 측정

이 MISO 라인 (채널 # 1)에 반사가 표시됩니까?  계단의 경우 레벨이 디지털처럼 보이지 않습니다.


직렬 저항을 추가하고 배선을 변경할 수 있습니까?
efox29

안녕하세요 efox29, 예. 조금 더러울 것입니다. 내 SPI 마스터가 도터 보드에 장착 된 SOM에 있습니다. 저는 SCK와 MOSI의 트레이스를 자르고 에폭시 / 접착제를 사용하는 각각에 대해 330-ohm / 47pF 0603/0805 RC를 장착하고 MISO를 위해 A / D 및 자력계 보드에서 비슷한 작업을 수행합니다. 나는 GND 스터브를 내가 얻을 수있는 GND 패드 나 평면에 가깝게 만들려고 노력할 것이다. 더 많은 소리가 들릴 때까지 이것을 보류하지만 내일 시도 할 계획입니다. SPI를 데이지 체인 또는 다른 것으로 바꿀 수는 없습니다. 어쨌든 많은 일을하지 않을 것입니다. 보드 요구는 반대쪽 끝에 있습니다.
shraken

50Khz와 같은 느린 클럭을 가진 시스템은 어떻습니까? 사용중인 마이크로 컨트롤러 란 무엇입니까?
efox29

Rs와 Cs를 다른 줄에 추가하기 전에 먼저 SCK 줄부터 시작하는 것이 좋습니다. 결국, 가장자리는 클럭 라인에서만 중요하며 다른 라인은 반사에 더 견딜 수 있습니다.
alex.forencich

2
이런 종류의 문제는 클럭 주파수가 아니라 문제인 에지 슬루 레이트입니다. 클럭 주파수와 상관없이 동일한 문제가 발생하면 빠른 에지가 문제이므로 속도를 늦춰야합니다.
alex.forencich

답변:


5

모든 세부 사항 없이이 답변을하기는 어렵지만 여기 에이 사이트에 더 유용한 유형의 답변 일 수도 있다고 생각되는 문제에 대한 일반적인 내용이 있습니다.

다중 노드 네트는 항상 시뮬레이션되어야합니다. 그들은 예측하기가 어렵습니다. 그리고 디자인이 최적이 아닌 것을 확인하는 데 약 3 분이 걸렸습니다.

다음은 마스터에서 모든 슬레이브 장치로의 클록에 대한 시뮬레이션 설정입니다 (값은 대략적인 추정치입니다. 아무것도 빌드하기 전에 수행 한 경우와 같습니다).

여기에 이미지 설명을 입력하십시오

그리고 결과 시뮬레이션 플롯 (우리는 분명히 가치가 없기 때문에 무엇을, 유닛 등을 무시합니다) :

여기에 이미지 설명을 입력하십시오

염두에 두어야 할 첫 번째 아이디어는 모든 입력의 데이지 체인과 간단한 병렬 종료입니다. 원하는 경우 플라이 바이 방식. 이것은 시뮬레이션 설정에서 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

결과 플롯이 훨씬 멋지게 보입니다.

여기에 이미지 설명을 입력하십시오

베냉 터미네이션의 증가 된 전력 소비와 다양한 장치의 클록 입력에서 감소 된 전압 스윙으로 살아갈 수 있다면 ... (실제로 제약 조건 만 알고 있음) 건물.

작동하는 다른 솔루션이 있지만 핵심은 다중 노드 네트가 예측하기 쉽지 않음을 이해하는 것입니다. 무언가를 만들기 전에 5 분 동안 시뮬레이션하면 나중에 많은 시간을 절약 할 수 있습니다. 불행히도 이러한 유형의 시뮬레이터는 저렴하지 않습니다.

Cadence SigXplorer를 사용하고 있습니다. 일반적인 면책 조항이 적용됩니다. 저는 신호 무결성으로 수업을 가르치고 종종 해당 수업에 대한 Cadence 또는 Mentor 후원 소프트웨어 라이센스를 보유하고 있습니다.


전송 라인을 시뮬레이션하기 위해 어떤 소프트웨어를 사용하고 있습니까?
efox29

@ efox29 Cadence SigXplorer 및 Mentor Hyperlynx.
Rolf Ostergaard

@nickishere (OP) 귀하의 질문에 답변이 되었습니까?
Rolf Ostergaard

안녕 Rolf, 시간을내어이 회로를 시뮬레이션 해 주셔서 감사합니다. 정말 감사합니다. Cadence SigXplorer를 살펴보고 방어 할 것입니다. 다음에이 큰 버스에 접근 할 때와 같은 도구를 찾으십시오. 가장 상세하고 적절한 답변으로 귀하의 답변을 정확하게 표시하고 있습니다. 그러나 토폴로지를 경험적으로 사용하여 작동한다고 말할 수는 없습니다.
0 분 46 초
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.