다이오드 타버림
파워 다이오드가 날라갔지만 stm32f4 칩은 무사했다
굴러다니는 다이오드 장착
다행이 st link도 잘 작동함.
can 통신을 할 때 통신 속도를 맞춰주어야 하는데, bitrate를 맞추기 위해서 디스커버리 칩의 클럭을 알맞은 값 을 설정해 주어야 한다. 디스커버리 보드에서 can1 은 APB1 클럭에 영향을 받는다. 먼저 APB1을 42MHz로 세팅한다.
STM32CubeMX 프로그램을 이용하여 원하는 클럭을 만들어 낼 수 있다.
/************************* PLL Parameters *************************************/ /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */ #define PLL_M 4 #define PLL_N 168 /* SYSCLK = PLL_VCO / PLL_P */ #define PLL_P 2 /* USB OTG FS, SDIO and RNG Clock = PLL_VCO / PLLQ */ #define PLL_Q 7 /******************************************************************************/ | cs |
PLL을 수정하여 APB1 42MHz 세팅
CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; CANInitStructure.CAN_BS1 = CAN_BS1_3tq; CAN_InitStructure.CAN_BS2 = CAN_BS2_1tq; CAN_InitStructure.CAN_Prescaler = 840; |
BS와 프리스케일러를 수정하여 can통신 bitrate를 10Kbs로 설정
data[0] = 0x01; data[1] = 0xFF; data[2] = 0xFF; data[3] = 0xFF; data[4] = 5; data[5] = 6; data[6] = 7; data[7] = 8; Can_TxMessage(0x014, 1, data); | cs |
0x014 의 식별자로 1바이트의 데이터 date[0]을 보냈다.
값 을 받아낸다. 이제 오실로스코프로 찍어본다.
can 통신은 can_H선과 can_L선의 전압차이를 이용해서 데이터 통신을 한다. 위 사진은 can_H선과 can_L선의 파형을 오실로스코프에 나타낸 것이다. 아래 파형은 can_H선과 can_L선 사이의 전압차이를 반전시킨 파형이다. 결국 아래파형이 통신 데이터 파형이다.
can 트랜시버에서 나온 데이터 파형
'공부 > stm32' 카테고리의 다른 글
stm32f4 VCP(virtual com port) (0) | 2016.08.30 |
---|---|
stm32f4 can 통신 무작정 (2) | 2016.07.25 |
stm32f4 클럭상태 출력하기 (0) | 2016.07.25 |