• 카테고리

    질문 & 답변
  • 세부 분야

    임베디드 · IoT

  • 해결 여부

    미해결

포트 설정 문제

22.05.04 16:56 작성 조회수 282

0

안녕하세요?. 

보내 주신 보드로 열심히 공부 중인 1인입니다.

한 가지 질문이 있습니다만..

SPI나 UART Port을 설정시 일부 다른 포트을 Output으로 설정해 놓으면 Conflict가 발생한다는

메세지가 나옵니다.

통신 포트 설정시  어떤 포트를 같이 사용하지 말아야 하는지에 대한 내용을 알 수 가 있을까요?.  

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

답변 1

답변을 작성해보세요.

0

안녕하세요!

CubeMX로 설정 시 위와 같이 충돌 (conflict) 이 발생하는 이유는, 다른 peripheral 에서 해당 핀을 사용하기 때문입니다. 즉, 핀이 겹쳐서 그런거죠.

질문 주신 경우는 UART를 동기식 모드로 사용할 때 flow control에 사용되는 핀이 다른 용도로 이미 사용되고 있기 때문에 핀이 겹쳐서 그런 걸 겁니다.

충돌을 피하기 위해서 핀이 겹치지 않도록 하드웨어 회로 구성을 해야하는데요,

STM32는 이런 충돌을 최소화하기 위해 peripheral 기능이 하나의 핀에만 할당되지 않고 여러 핀에 할당되어있습니다. (몇몇 peripheral은 하나의 핀에만 할당되어있기도 합니다.)

예를 들어, STM32F407의 UART1 Tx가  PA9에도 할당되어있지만 PB6에도 할당되어있습니다. 만약 PA9가 다른 기능으로 사용되고 있다면, PB6을 UART1 Tx로 사용하면 되는 것이죠.

이걸 확인하기 위해서 칩의 데이터시트를 확인해야 합니다.

데이터시트에 Alternate function mapping 에 대한 표가 정리되어있습니다. 그걸 보시면 어떤 핀에 어떤 peripheral 기능이 할당되어있는지를 확인할 수 있습니다.

표는 이렇게 생겼는데, 보시면 모든 핀이 어떤 peripheral 로 사용될 수 있는지 정리되어있습니다.

데이터시트를 찾아서 확인해보세요!