새로운 MCU 보드를 받고서는 가장 먼저 해 볼 수 있는 테스트는 GPIO 컨트롤일 것입니다. 펌웨어를 배우던 시기 LED 점멸에 성공했을 때의 기쁨이 생각나네요.

목적

NUCLEO-F767ZI 보드의 MCU(STM32F767ZI) GPIO를 설정하여 LED를 점멸할 수 있다.

준비물

  • NUCLEO-F767ZI 보드 및 회로도
  • STM32CubeMX
  • IAR WB for ARM

1. 회로도 확인

ST 사이트에서 NUCLEO-F767ZI 보드의 회로도를 확인한다.

테스트에 사용할 LED인 LD2는 GPIO 포트 B의 7번 핀에 연결되어 있음을 확인했다.

2. CubeMX 설정

STM32CubeMX에서 PB7에 대해 아래와 같이 설정해준다.

이후 전체 코드를 생성한다.

3. 코딩

100ms 간격으로 high와 low를 반복하는 코드를 작성한다. delay 함수는 HAL 라이브러리를 이용했다.

4. 확인

 

 

😊😘😭 글이 많이 부족합니다. 보시고 궁금하신 점 댓글로 남겨주시면 최대한 답변 드리겠습니다. 😔😏😁

목적

STM32CubeMX를 이용하여 NUCLEO-F767ZI 보드에서 원하는 주파수로 타이머(TIMER3) 설정을 하고, ISR에서 GPIO 토글을 구현하여 이를 확인할 수 있다.  

준비물

  • NUCLEO-F767ZI 
  • STM32CubeMX
  • IAR WB for ARM
  • Digilent Analog Discovery 2

1. 주파수 설정

타이머의 업데이트 주기를 설정해 준다. 여기서는 임의로 100ms로 정하고 설정을 해본다.

먼저 데이터쉬트에서 블록다이어 그램을 찾아 Timer3가 어떤 버스에 연결되어 있는지 확인한다.

위 블록다이어그램의 일부에서 확인 가능하듯이 Timer3는 APB1 버스에 연결되어 있다.

 

다음엔, STM32Cube-MX Clock Configuration에서 APB1 버스의 클럭이 얼마로 설정되어 있는지 확인한다. (디바이더로 조정 가능하다)

확인 결과 96MHz.

 

아래 공식에 의거 Prescaler 와 ARR 값을 정한다.

우리가 원하는 update frequency는 10Hz (100ms마다 한번) 이므로 ARR = 59999, Prescaler = 159 로 설정한다.

아래와 같이 CubeMX에서 입력한다.

여기까지가 타이머의 주파수 설정이다. 이후에는 인터럽트와 GPIO를 이용해 설정이 제대로 되었는지 확인해준다.

2. 인터럽트 설정

코드에 Timer3에 해당하는 ISR을 생성하기 위해 아래와 같이 NVIC Settings에서 체크박스에 클릭! 만 하면 끝.

이제 CubeMX에서 전체 코드를 생성하고 Timer3 설정부분의 코드가 아래와 같은지 확인한다.

또한 Timer3 ISR에 아래와 같이 토글 코드를 추가해 준다.

3. 실행 및 확인

오실로스코프로 우리가 원하는 100ms 이벤트가 발생하는지 확인한다.

위 그림에서 확인 가능하듯이 우리가 원하는 100ms 이벤트가 발생하고 있다.

끝.

STMicroelectronics사의 EVB는 대부분 ST-Link를 내장하고 있고, 해당 펌웨어는 자주 업데이트되기 때문에 EVB를 구매하면 최신 ST-Link 펌웨어로 업데이트 해주는 것이 좋습니다. 아래 링크에서 펌웨어 업데이트 프로그램을 다운로드한 후 USB 케이블을 연결하고 'Device Connect' (표시정보확인), 'Yes' 버튼을 눌러 업데이트 해줍니다.

https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-link007.html

 

STSW-LINK007 - STMicroelectronics

STSW-LINK007 - ST-LINK, ST-LINK/V2, ST-LINK/V2-1, STLINK-V3 boards firmware upgrade, STSW-LINK007, STMicroelectronics

www.st.com

'Device Connect'를 눌러 EVB와 연결이 되면 현재 EVB ST-Link 펌웨어 버전인 V2.J33.M25가 위쪽에 표시되고 아래쪽에는 업그레이드할 펌웨어의 버전인 V2.J35.M26이 표시됩니다. 'Yes'를 눌러 업그레이드 합니다.

펌웨어를 업그레이드 했다면 이제는 호스트와 ST EVB를 연결할 준비가 완료되었습니다.

+ Recent posts