많은 분들이 CAN에 대해서 궁금해 하고 있으셔서,
이제 직접 인피니언 TC275 MCU를 이용해서 구현 및 동작확인을 수행해 보는 시간을 가져보도록 하겠습니다.
먼저 CAN 구현에 앞서서
미리 읽어 보시고 오셔야 할 글들이 있습니다.
CAN에 대한 개념적인 글이니, 한번 꼭 읽어보시고
그 다음에 동작 구현에 대한 글을 읽어 보세요.
1) CAN이란 무엇인가?
https://embeddedchallenge.tistory.com/57
2) CAN의 CAN Controller/Transceiver 전압 레벨 (High Speed CAN)
https://embeddedchallenge.tistory.com/59
3) CAN 정보전달 방식
https://embeddedchallenge.tistory.com/60
4) CAN Frame 분석
https://embeddedchallenge.tistory.com/61
5) CAN Arbitration
https://embeddedchallenge.tistory.com/62
참고로 MCU는 CAN이 주변기기로 있는 MCU를 선택하시면 됩니다.
CAN 주변기기를 동작시키는 방법은 MCU마다 조금씩 다르지만
CAN이라는 주변기기의 속성은 동일하기 때문에
제가 지금 개발하려는 MCU가 아니더라고 이 글을 읽는 과정에서
Insight가 생기실수 있으니?ㅎㅎ
참고해 주세요!
저는 인피니언 MCU를 이용해서 CAN의 동작을 구현할 것입니다.
인피니언사에서는 개발자에게 필요한 예제코드를 사이트에서 제공해 주고 있습니다.
따라서 저는 아래의 예제코드를 이용해서 CAN을 구현해 보도록 하겠습니다.
그리고 제가 사용할 보드는 TC275입니다.
이 보드는 6만원대에서 구매할수 있는 저렴한 보드로
이러한 보드를 직접 구매해서 다양한 주변기기를 동작시켜 보시면
많은 도움이 되실 것입니다.
보드 관련 회로도 및 정보가 있는 파일을 첨부합니다.
그러면 위의 파일을 한번 열어 보도록 하겠습니다.
T275안에 CAN Tranciever가 존재합니다.
6만원대 MCU안에 정말 많은 것들이 들어 있네요 ㅎㅎ
그렇다면 지금 이 Tranceiver와 연결된
RX,TX 핀이 MCU와 어떻게 연결되어 있는지를 확인해 보도록 하겠습니다.
p20_7 : Rx
p20_8 : Tx
위와 같이 연결이 되어 있는 것을 확인 할 수 있습니다.
이제 포팅을 해서 동작을 시켜 보도록 하겠습니다.
그런데, TC275보드를 사용하시는 분들은 아시겠지만
위의 예제코드를 포팅해도 동작이되지 않는 것을 확인하실 수 있습니다.
위와 같이 레지스터를 전부 확인하였는데
이상이 없는데도 동작을 수행하지 않습니다.
CAN관련하여 Tx라인을 Logic Analyzer로 계측을 하여 확인하여도
비정사적인 프레임이 나오고 있습니다.
이러한 경우는 보통 CAN Tranceiver에 Enable Pin이 Disable 되어져 있을때
나오는 현상입니다.
아래 회로도에서 Tranceiver를 보시면
8번 핀이 STB라고 적혀 있는 것을 확인하실 수 있습니다.
그리고, Tranceiver 칩인 TLE9251VSJ datasheet를 구글에서 검색하여
다운을 받아본뒤에 저 핀이 어떤 역할을 하고 있는지를 살펴 보도록 하겠습니다.
저 Pin이 Normal-Operation mode로 동작하기 위해서는 Low의 입력이 있어야 한다고 적혀 있습니다.
저 Pin은 MCU의 p20.6번 핀과 연결이 되어 있습니다.
따라서 MCU에서 p20.6번을 Digital Output Pin으로 속성을 변경하고
p20.6번 Pin을 Ground로 잡아주면
이제 Tranceiver가 정상적으로 동작할 것입니다.
그리고, 이제 한번 CAN을 날려보도록 하겠습니다.
CAN이 잘 나가는 것을 확인하실 수 있나요?
지금 나가고 있는 것이 CAN Frame 입니다.
그러면 지금부터, CAN을 계측하는 환경을 어떻게 구성했는지를
정리해 보도록 하겠습니다.
'Embedded SW > Embedded SW Introduction' 카테고리의 다른 글
CAN 구현 및 동작 수행 3편 (CAN 초기화 코드 분석) (0) | 2022.09.14 |
---|---|
CAN 구현 및 동작 수행 2편 (CAN 측정 환경 및 장비 설명) (0) | 2022.09.13 |
SPI를 설계할때 꼭 알아야할 핵심 사항 정리(TC275 MCU) (0) | 2022.09.12 |
SPI 예제 코드를 포팅, 동작 확인 2편 (T275 인피니언 MCU) (0) | 2022.09.12 |
SPI 예제 코드를 포팅, 동작 확인 1편 (T275 인피니언 MCU) (0) | 2022.09.12 |
댓글