본문 바로가기

[ST_MICRO]

(264)
STM32G0 SSM - STM32CubeIDE SPI DMA 테스트 STM32CubeIDE 를 이용해서 STM32G031의 SPI DMA 테스트를 진행 해 보자. 우선 STM32CubeIDE에서 STM32G031용 프로젝트를 생성하고 기본 페리를 설정한다. SPI 클럭은 최대 32Mhz 까지 가능하다. SPI DMA 채널을 추가 SPI DMA 인터럽트 추가 GPIO 핀 스피드 설정 SPI클럭을 최대 주파수로 사용하기 때문에 GPIO 스피드 설정도 VeryHigh 로 설정해 주어야 한다. STM32G031 SPI DMA 처기 테스트 코드 일반 SPI통신과 DMA 통신의 차이를 확인하기 위해 두가지 방식이 가능하도록 코드를 작성 했다. #define _SPI_DMA_USE1 #define hSPIhspi2 #define SPIx_TIMEOUT_MAX ((uint32_t)0x..
STM32G031J 8핀 CortexM0+ 코어 MCU 보드 제작 STM32G0 시리즈 중 작은 사이즈를 찾아 보면 8핀 SOIC 타입의 STM32G031J 가 있다. 사이즈는 패키지에 따라 더 작은 것이 있지만 일단 핀이 적은 MCU는 ST에서 STM32G031J가 유일한것 같다. 8핀 MCU중 성은은 상당히 좋은것 같다. Cortex-M0+ 32 Kbytes of Flash memory 8 Kbytes RAM 64 MHz CPU 2x USART timers ADC 가격도 저렴하고 핀수가 적어서 간단한 프로젝트 진행시 사용하기 좋을것 같아 소형 모듈 보드로 제작해 보았다. 적은 핀수에 많은 기능을 포함하고 있어서 핀맵 설정이 중요한것 같다. 한가지 아쉬운 점은 JTAG가 GPIO와 동시에 사용할수 없다는 점이다. JTAG를 GPIO로 설정하면 그다음 JTAG로 접근이..
STM32H7 SPI - W5500 TCP/IP 전송속도 테스트 에러 문제 해결 STM32F7 evm 보드에서 테스트 했던 W5500 소스코드를 이용하여 STM32H7 보드에서 테스트 중인데 컴파일 에러가 발생한다. STM32F7 에서 W5500제어 테스트 에서 사용 했던 코드와 동일한데 왜 에러가 발생할까? #문제발생 에러코드 설명 자원 경로 위치 유형 expected identifier or '(' before numeric constant w5500.h /ex24_spi_w5500/Src 행 70 C/C++ Problem F7 코드에서는 문제가 없었는데... 에러를 찾아 가 보니 헤더파일의 선언 순서가 문제가 된다. 같은 컴파일러 인데 왜 문지가 되지? #문제해결 w5500.c #include "w5500.h" #include "config.h" #include "config...
#STM32G030 EVM - I2C 테스트 (TMP275 온도 센서의 온도 측정) #STM32G030 EVM - I2C 테스트 (TMP275 온도 센서의 온도 측정) STM32G-SSM EVM 보드는 표준 핀맵을 통일화 해서 다양한 확장보드에 공용으로 테스트 할 수 있도록 제작한 보드 이다. I2C도 핀 맵핑에 따라 동일한 위치에서 테스트 가능하다. SSM EVM표준 핀맵 SSM EVM 확장 테스트 보드 연결SSM EVM 표준 핀맵을 테스트 할수 있는 다양한 확장 테스트 보드를 이용해서 I2C 테스트를 진행 해 볼수 있다. 우선 I2C로 온도 값을 읽을 수 있는 TMP275 온도 센서 모듈을이용하여 SSM EVM 확장 테스트 보드에 연결하여 I2C를 테스트 해 보자. STM32CubeIDE를 이용하여 기본 핀맵 설정하고 I2C 셋팅을 한 후 코드 생성하면 자동으로 I2C 설정 코드가 ..
#STM32G030 EVM - UART 테스트 (STM32CubeIDE 에서 printf 사용하기) #STM32G030 EVM - UART 테스트 (STM32CubeIDE 에서 printf 사용하기) STM32g030F6에는 3채널의 UART포트가 있고 UART1(Tx-PB3, Rx-PB7) 포트가 보드상의 UART커넥터에 할당되어 있다. STM32CubeIDE에서 새로운 프로젝트를 생성하고 UART탭의 핀맵과 보레이트 등을 설정한다. STM32CubeIDE 로 코드 생성하면 자동 코드가 생성되고 기존 STM32 HAL코드와 동일하게 작성하면 UART 통신 테스트를 할 수 있다. int main(void){ /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------..
#STM32G0 STM32CubeIDE Timer Test - 1% HSI 이용 #STM32G0 STM32CubeIDE Timer Test - 1% HSI 이용 STM32G0 스펙을 보면 HSI클럭 부분에서 1%를 강조 하고 있다. 기존 칩보다 강점 이라고 내새우니 한번 테스트 해 봐야 겠다. Core: Arm® 32-bit Cortex®-M0+ CPU, frequency up to 64 MHz-40°C to 85°C/125°C operating temperatureUp to 64 Kbytes of Flash memory8 Kbytes of SRAM with HW parity check Voltage range: 1.7 V to 3.6 V 4 to 48 MHz crystal oscillator32 kHz crystal oscillator with calibrationInternal ..
STM32H7 EXTI 외부 인터럽트 테스트 STM32H7 EVM 보드에는 6개의 입력 스위치가 있고 5개의 외부 인터럽트를 테스트 할 수 있다. STM32CubeMx 를 이용하여 HAL 코드를 생성한다. 우선 핀맵에서 스위치가 연결되어 있는 포트 PC13을 GPIO_EXTI13 으로 설정한다. STM32CubeMx의 GPIO 탭에서 PC13을 풀업 설정을 해준다. 인터럽트를 설정하기 위해 EXTI line [15:10] interrupts 를 체크 한다. STM32CubeMx 에서 생성된 코드를 보면 GPIO초기화와, 인터럽트 초기화 코드가 생성된 것을 확인할 수 있다. static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable..
STM32H7 EVM - USB 메모리 스틱, SD Card 동시 테스트 STM32 EVM 보드의 USB와 SD Card 를 동시에 제어해서 2개의 드라이버 제어를 해 보았다.STM32 CubeMX에서 FATFS설정을 SD Card와 USB Disk 를 동시에 체크하면 된다. 그리고 VOLUME이 2개로 자동 설정되어 있다. CubeMX 자동 생성된 코드에서 fatfs.c 파일의 MX_FATFS_Init() 함수를 보면 SD Card와 USB가 동시에 Link되어 있는것을 확인 할 수 있다. 여기서 드라이버 순서를 수정하면 되겠다.uint8_t retSD; /* Return value for SD */char SDPath[4]; /* SD logical drive path */FATFS SDFatFS; /* File system object for SD logical driv..

반응형