28377D 컨트롤 수트 예제 공부 (can_loopback.c)
Loopback Mode (Technical reference 22.4.3.2 절)
Loopback 모드에선 CAN 코어가 내부 피드백을 통해 Tx의 출력을 Rx 입력으로 사용할 수 있다. 해서, 전송된 메세지가 수신된 메세지로도 취급 받음. 송신된 메세지는 CAN_TX 핀에 의해 모니터할 수 있음.
(LBack 레지스터를 1로 세팅하여 Loopback 모드를 active할 수 있음)
External Loopback 은 Rx신호가 TX pin 을 거치긴함.
![]() |
![]() |
Loopback | External Loopback |
TX메세지, RX메세지 구조체 선언 (can.h 에 정의)
gpio 포트 CANRXA,CANTXA 맞게 핀 먹스 변경
CANA 이니셜라이징
CANA를 클락소스로 선정
비트레이트 설정 CANBitRateSet(CAN controller 베이스주소, CAN 클락 주파수, 비트레이트)
external loop test 모드 설정
중요함
TX와 RX 메세지의 ID (MsgID) 와 메세지 길이 (pucMsgData) 동일하게 설정.
CANMessageSet (baseadress, objectnumber (메일박스), structure pointer, message type)
--> CANA 받는메세지 함 2번에 설정.
for문 (CAN 통신 실행문)
동일한 CANA : 1번 메세지함으로 메세지 송신
더 알아봐야할 내용중
CANMessageGet(uint32_t ui32Base, uint32_t ui32ObjID, tCANMsgObject *pMsgObject,
bool bClrPendingInt)
-플래그 류로 오류있는지 없는지 확인한 후, CANDataRegRead(pMsgObject->pucMsgData,
(uint32_t *)(ui32Base + CAN_O_IF2DATA),
pMsgObject->ui32MsgLen); 실행
can.h 에 지정되어있는 내용이라 그냥 써도 무방하긴한데, 그래도 레지스터 하나씩 까봐서 이해해야겠다.
'TI C2000' 카테고리의 다른 글
28377d CPU1, CPU2 간 변수 공유 (0) | 2021.11.03 |
---|---|
TI C2000 - 28377D CLA 공부 Part2 .현재 막히는 부분 (0) | 2021.10.11 |
TI C2000 - 28377D CLA 공부 Part 1. CLA 특징 (0) | 2021.09.21 |
TI C2000 28377D 모듈 공부 (0) | 2021.09.08 |
댓글