WIZnet Developer Forum

[WIZ550io] SPI 속도, 시간

WIZ550io를 msp432p401r을 사용해서 개발했습니다.

SPI 속도는 12MHz로 설정했습니다.
(이 부분도 혹시 아시는 분 계시면 확인 부탁드립니다. 12MHz 이상 속도에서는 정상적으로 동작을 하지 않았습니다. 더 빠른 속도가 가능할까요?)

통신은 정상적으로 동작하는데, 속도가 생각보다 느립니다.
현재 82byte를 500Hz로 보내려고 하는데 원하는대로 되지 않아 스코프로 확인해보니
send 함수에서 1.3ms 정도 소비됩니다.

물론 시스템에 따라 다르긴 하겠지만 대충 저 정도의 시간이 걸리는게 정상인가요?
아니면 제가 코드에서 뭔가 잘못 하고 있는 부분이 있는걸까요?

우선 더 빠르게 이용하시려면 DMA로 SPI를 구현해보시길 추천드립니다.
STM 보드로는 DMA로 SPI를 구현하여 속도가 올라간 것을 확인하였으나, 아쉽게도 msp 로는 확인해보지 않았습니다.
또한 사용하고 계시는 드라이버에 따라 영향이 있을 수 있습니다.
말씀하신대로 시스템에 따라 속도는 다르지만 상황에 따라 나올 수 있는 속도로 생각됩니다.

82byte를 500Hz로 보낸다는 말이 잘 이해가 안갑니다.
CS를 Control 하며 사용하고 계신가요?
캡쳐하신 스코프와 작성하신 코드를 첨부해주시면 개선하는데 더 도움이 될 것 같습니다.

MSP의 TI 드라이버가 SPI 사용 시 DMA 구현 되어 있는 걸로 알고있습니다.(TI 문의 결과)

82byte, 500Hz는 원하는 시스템의 스펙이고
시스템 구조는 ADC 계측 후, 데이터를 전송하는 것이고 그걸 1초에 500번 계측/전송하는 것이 목표인데
현재는 계측에 2ms, 전송에 1.3ms 소비되어 약 300Hz 동작 밖에 안 됩니다.

CS는 GPIO 연결하여 Control하고 있습니다.

제가 예상하기에는
TI의 답변은 SPI사용할때 DMA를 사용할수 있게 펌웨어가 구성되어 있는 답변일것 같고, DMA를 사용하려면 별도로 펌웨어 작업을 해야 합니다.

또한 SPI를 DMA를 이용한다면 CS를 Soft control로 사용해야하고, CS핀을 Hardware control를 한다면 DMA가 아니라, 일반 SPI를 쓰는것으로 판단됩니다.

그럴수도 있겠네요
다시 확인해볼게요

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.